mirror of
				https://github.com/django/django.git
				synced 2025-11-03 21:25:09 +00:00 
			
		
		
		
	Fixed #22816 -- Corrected Oracle feature flag and fixed introspection test
This commit is contained in:
		
							parent
							
								
									06c0e740a4
								
							
						
					
					
						commit
						612290400f
					
				
					 3 changed files with 6 additions and 4 deletions
				
			
		| 
						 | 
					@ -576,6 +576,10 @@ class BaseDatabaseFeatures(object):
 | 
				
			||||||
    can_introspect_max_length = True
 | 
					    can_introspect_max_length = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Can the backend determine reliably if a field is nullable?
 | 
					    # Can the backend determine reliably if a field is nullable?
 | 
				
			||||||
 | 
					    # Note that this is separate from interprets_empty_strings_as_nulls,
 | 
				
			||||||
 | 
					    # although the latter feature, when true, interferes with correct
 | 
				
			||||||
 | 
					    # setting (and introspection) of CharFields' nullability.
 | 
				
			||||||
 | 
					    # This is True for all core backends.
 | 
				
			||||||
    can_introspect_null = True
 | 
					    can_introspect_null = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Confirm support for introspected foreign keys
 | 
					    # Confirm support for introspected foreign keys
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -111,7 +111,6 @@ class DatabaseFeatures(BaseDatabaseFeatures):
 | 
				
			||||||
    supports_tablespaces = True
 | 
					    supports_tablespaces = True
 | 
				
			||||||
    supports_sequence_reset = False
 | 
					    supports_sequence_reset = False
 | 
				
			||||||
    can_introspect_max_length = False
 | 
					    can_introspect_max_length = False
 | 
				
			||||||
    can_introspect_null = False
 | 
					 | 
				
			||||||
    can_introspect_time_field = False
 | 
					    can_introspect_time_field = False
 | 
				
			||||||
    atomic_transactions = False
 | 
					    atomic_transactions = False
 | 
				
			||||||
    supports_combined_alters = False
 | 
					    supports_combined_alters = False
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -73,15 +73,14 @@ class IntrospectionTests(TestCase):
 | 
				
			||||||
            [30, 30, 75]
 | 
					            [30, 30, 75]
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # The following test fails on Oracle. Since it forces null=True under the
 | 
					 | 
				
			||||||
    # hood in some cases, its idea about null_ok is different from ours.
 | 
					 | 
				
			||||||
    @skipUnlessDBFeature('can_introspect_null')
 | 
					    @skipUnlessDBFeature('can_introspect_null')
 | 
				
			||||||
    def test_get_table_description_nullable(self):
 | 
					    def test_get_table_description_nullable(self):
 | 
				
			||||||
        with connection.cursor() as cursor:
 | 
					        with connection.cursor() as cursor:
 | 
				
			||||||
            desc = connection.introspection.get_table_description(cursor, Reporter._meta.db_table)
 | 
					            desc = connection.introspection.get_table_description(cursor, Reporter._meta.db_table)
 | 
				
			||||||
 | 
					        nullable_by_backend = connection.features.interprets_empty_strings_as_nulls
 | 
				
			||||||
        self.assertEqual(
 | 
					        self.assertEqual(
 | 
				
			||||||
            [r[6] for r in desc],
 | 
					            [r[6] for r in desc],
 | 
				
			||||||
            [False, False, False, False, True, True]
 | 
					            [False, nullable_by_backend, nullable_by_backend, nullable_by_backend, True, True]
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Regression test for #9991 - 'real' types in postgres
 | 
					    # Regression test for #9991 - 'real' types in postgres
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue