Loading tests/postgres_tests/array_default_migrations/0001_initial.py +1 −41 Original line number Diff line number Diff line Loading @@ -12,27 +12,7 @@ class Migration(migrations.Migration): operations = [ migrations.CreateModel( name='CharArrayModel', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('field', django.contrib.postgres.fields.ArrayField(models.CharField(max_length=10), size=None)), ], options={ }, bases=(models.Model,), ), migrations.CreateModel( name='DateTimeArrayModel', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('field', django.contrib.postgres.fields.ArrayField(models.DateTimeField(), size=None)), ], options={ }, bases=(models.Model,), ), migrations.CreateModel( name='IntegerArrayModel', name='IntegerArrayDefaultModel', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('field', django.contrib.postgres.fields.ArrayField(models.IntegerField(), size=None)), Loading @@ -41,24 +21,4 @@ class Migration(migrations.Migration): }, bases=(models.Model,), ), migrations.CreateModel( name='NestedIntegerArrayModel', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('field', django.contrib.postgres.fields.ArrayField(django.contrib.postgres.fields.ArrayField(models.IntegerField(), size=None), size=None)), ], options={ }, bases=(models.Model,), ), migrations.CreateModel( name='NullableIntegerArrayModel', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('field', django.contrib.postgres.fields.ArrayField(models.IntegerField(), size=None, null=True, blank=True)), ], options={ }, bases=(models.Model,), ), ] tests/postgres_tests/array_default_migrations/0002_integerarraymodel_field_2.py +1 −1 Original line number Diff line number Diff line Loading @@ -13,7 +13,7 @@ class Migration(migrations.Migration): operations = [ migrations.AddField( model_name='integerarraymodel', model_name='integerarraydefaultmodel', name='field_2', field=django.contrib.postgres.fields.ArrayField(models.IntegerField(), default=[], size=None), preserve_default=False, Loading tests/postgres_tests/test_array.py +12 −2 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ from django.contrib.postgres.forms import SimpleArrayField, SplitArrayField from django.core import exceptions, serializers from django.core.management import call_command from django.db import IntegrityError, connection, models from django.test import TestCase, override_settings from django.test import TestCase, TransactionTestCase, override_settings from django.utils import timezone from .models import ( Loading Loading @@ -243,7 +243,9 @@ class TestChecks(TestCase): self.assertEqual(errors[0].id, 'postgres.E002') class TestMigrations(TestCase): class TestMigrations(TransactionTestCase): available_apps = ['postgres_tests'] def test_deconstruct(self): field = ArrayField(models.IntegerField()) Loading Loading @@ -278,7 +280,15 @@ class TestMigrations(TestCase): }) def test_adding_field_with_default(self): # See #22962 table_name = 'postgres_tests_integerarraydefaultmodel' with connection.cursor() as cursor: self.assertNotIn(table_name, connection.introspection.table_names(cursor)) call_command('migrate', 'postgres_tests', verbosity=0) with connection.cursor() as cursor: self.assertIn(table_name, connection.introspection.table_names(cursor)) call_command('migrate', 'postgres_tests', 'zero', verbosity=0) with connection.cursor() as cursor: self.assertNotIn(table_name, connection.introspection.table_names(cursor)) @unittest.skipUnless(connection.vendor == 'postgresql', 'PostgreSQL required') Loading Loading
tests/postgres_tests/array_default_migrations/0001_initial.py +1 −41 Original line number Diff line number Diff line Loading @@ -12,27 +12,7 @@ class Migration(migrations.Migration): operations = [ migrations.CreateModel( name='CharArrayModel', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('field', django.contrib.postgres.fields.ArrayField(models.CharField(max_length=10), size=None)), ], options={ }, bases=(models.Model,), ), migrations.CreateModel( name='DateTimeArrayModel', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('field', django.contrib.postgres.fields.ArrayField(models.DateTimeField(), size=None)), ], options={ }, bases=(models.Model,), ), migrations.CreateModel( name='IntegerArrayModel', name='IntegerArrayDefaultModel', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('field', django.contrib.postgres.fields.ArrayField(models.IntegerField(), size=None)), Loading @@ -41,24 +21,4 @@ class Migration(migrations.Migration): }, bases=(models.Model,), ), migrations.CreateModel( name='NestedIntegerArrayModel', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('field', django.contrib.postgres.fields.ArrayField(django.contrib.postgres.fields.ArrayField(models.IntegerField(), size=None), size=None)), ], options={ }, bases=(models.Model,), ), migrations.CreateModel( name='NullableIntegerArrayModel', fields=[ ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), ('field', django.contrib.postgres.fields.ArrayField(models.IntegerField(), size=None, null=True, blank=True)), ], options={ }, bases=(models.Model,), ), ]
tests/postgres_tests/array_default_migrations/0002_integerarraymodel_field_2.py +1 −1 Original line number Diff line number Diff line Loading @@ -13,7 +13,7 @@ class Migration(migrations.Migration): operations = [ migrations.AddField( model_name='integerarraymodel', model_name='integerarraydefaultmodel', name='field_2', field=django.contrib.postgres.fields.ArrayField(models.IntegerField(), default=[], size=None), preserve_default=False, Loading
tests/postgres_tests/test_array.py +12 −2 Original line number Diff line number Diff line Loading @@ -9,7 +9,7 @@ from django.contrib.postgres.forms import SimpleArrayField, SplitArrayField from django.core import exceptions, serializers from django.core.management import call_command from django.db import IntegrityError, connection, models from django.test import TestCase, override_settings from django.test import TestCase, TransactionTestCase, override_settings from django.utils import timezone from .models import ( Loading Loading @@ -243,7 +243,9 @@ class TestChecks(TestCase): self.assertEqual(errors[0].id, 'postgres.E002') class TestMigrations(TestCase): class TestMigrations(TransactionTestCase): available_apps = ['postgres_tests'] def test_deconstruct(self): field = ArrayField(models.IntegerField()) Loading Loading @@ -278,7 +280,15 @@ class TestMigrations(TestCase): }) def test_adding_field_with_default(self): # See #22962 table_name = 'postgres_tests_integerarraydefaultmodel' with connection.cursor() as cursor: self.assertNotIn(table_name, connection.introspection.table_names(cursor)) call_command('migrate', 'postgres_tests', verbosity=0) with connection.cursor() as cursor: self.assertIn(table_name, connection.introspection.table_names(cursor)) call_command('migrate', 'postgres_tests', 'zero', verbosity=0) with connection.cursor() as cursor: self.assertNotIn(table_name, connection.introspection.table_names(cursor)) @unittest.skipUnless(connection.vendor == 'postgresql', 'PostgreSQL required') Loading