mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	Added test for reraising backend-specific database exceptions.
This commit is contained in:
		| @@ -1,7 +1,10 @@ | ||||
| import unittest | ||||
|  | ||||
| from django.core.exceptions import ImproperlyConfigured | ||||
| from django.db import connection | ||||
| from django.db.backends.utils import truncate_name | ||||
| from django.db.utils import load_backend | ||||
| from django.test import SimpleTestCase | ||||
| from django.db.utils import ProgrammingError, load_backend | ||||
| from django.test import SimpleTestCase, TestCase | ||||
|  | ||||
|  | ||||
| class TestLoadBackend(SimpleTestCase): | ||||
| @@ -24,3 +27,16 @@ class TestLoadBackend(SimpleTestCase): | ||||
|         self.assertEqual(truncate_name('username"."some_table', 10), 'username"."some_table') | ||||
|         self.assertEqual(truncate_name('username"."some_long_table', 10), 'username"."some_la38a') | ||||
|         self.assertEqual(truncate_name('username"."some_long_table', 10, 3), 'username"."some_loa38') | ||||
|  | ||||
|  | ||||
| @unittest.skipUnless(connection.vendor == 'postgresql', 'PostgreSQL specific tests') | ||||
| class TestDatabaseErrorWrapper(TestCase): | ||||
|     def test_reraising_backend_specific_database_exception(self): | ||||
|         cursor = connection.cursor() | ||||
|         msg = 'table "X" does not exist' | ||||
|         with self.assertRaisesMessage(ProgrammingError, msg) as cm: | ||||
|             cursor.execute('DROP TABLE "X"') | ||||
|         self.assertNotEqual(type(cm.exception), type(cm.exception.__cause__)) | ||||
|         self.assertIsNotNone(cm.exception.__cause__) | ||||
|         self.assertIsNotNone(cm.exception.__cause__.pgcode) | ||||
|         self.assertIsNotNone(cm.exception.__cause__.pgerror) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user