From 5e2c7bbfaf307d3323a5e9abf19c7d1f3f108faf Mon Sep 17 00:00:00 2001 From: Viktor Danyliuk Date: Wed, 17 Jul 2019 16:43:25 +0300 Subject: [PATCH] add testcase for DROP NOT NULL --- tests/fixtures.py | 1 + tests/functional/test_migration_linter.py | 4 +++ .../__init__.py | 0 .../app_alter_column_drop_not_null/admin.py | 3 ++ .../app_alter_column_drop_not_null/apps.py | 5 ++++ .../migrations/0001_create_table.py | 28 +++++++++++++++++++ .../migrations/0002_drop_not_null.py | 16 +++++++++++ .../migrations/__init__.py | 0 .../app_alter_column_drop_not_null/models.py | 5 ++++ .../app_alter_column_drop_not_null/tests.py | 3 ++ .../app_alter_column_drop_not_null/views.py | 3 ++ tests/test_project/settings.py | 1 + 12 files changed, 69 insertions(+) create mode 100644 tests/test_project/app_alter_column_drop_not_null/__init__.py create mode 100644 tests/test_project/app_alter_column_drop_not_null/admin.py create mode 100644 tests/test_project/app_alter_column_drop_not_null/apps.py create mode 100644 tests/test_project/app_alter_column_drop_not_null/migrations/0001_create_table.py create mode 100644 tests/test_project/app_alter_column_drop_not_null/migrations/0002_drop_not_null.py create mode 100644 tests/test_project/app_alter_column_drop_not_null/migrations/__init__.py create mode 100644 tests/test_project/app_alter_column_drop_not_null/models.py create mode 100644 tests/test_project/app_alter_column_drop_not_null/tests.py create mode 100644 tests/test_project/app_alter_column_drop_not_null/views.py diff --git a/tests/fixtures.py b/tests/fixtures.py index 92c4f98..e6e5579 100644 --- a/tests/fixtures.py +++ b/tests/fixtures.py @@ -20,3 +20,4 @@ RENAME_TABLE = "app_rename_table" IGNORE_MIGRATION = "app_ignore_migration" ADD_NOT_NULL_COLUMN_FOLLOWED_BY_DEFAULT = "app_add_not_null_column_followed_by_default" ALTER_COLUMN = "app_alter_column" +ALTER_COLUMN_DROP_NOT_NULL = "app_alter_column_drop_not_null" diff --git a/tests/functional/test_migration_linter.py b/tests/functional/test_migration_linter.py index 4ecf1aa..68660a6 100644 --- a/tests/functional/test_migration_linter.py +++ b/tests/functional/test_migration_linter.py @@ -81,6 +81,10 @@ class BaseBackwardCompatibilityDetection(object): app = fixtures.ALTER_COLUMN self._test_linter_finds_errors(app) + def test_accept_alter_column_drop_not_null(self): + app = fixtures.ALTER_COLUMN_DROP_NOT_NULL + self._test_linter_finds_no_errors(app) + def test_with_git_ref(self): self._test_linter_finds_errors(commit_id="v0.1.4") diff --git a/tests/test_project/app_alter_column_drop_not_null/__init__.py b/tests/test_project/app_alter_column_drop_not_null/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_project/app_alter_column_drop_not_null/admin.py b/tests/test_project/app_alter_column_drop_not_null/admin.py new file mode 100644 index 0000000..8c38f3f --- /dev/null +++ b/tests/test_project/app_alter_column_drop_not_null/admin.py @@ -0,0 +1,3 @@ +from django.contrib import admin + +# Register your models here. diff --git a/tests/test_project/app_alter_column_drop_not_null/apps.py b/tests/test_project/app_alter_column_drop_not_null/apps.py new file mode 100644 index 0000000..da6a16b --- /dev/null +++ b/tests/test_project/app_alter_column_drop_not_null/apps.py @@ -0,0 +1,5 @@ +from django.apps import AppConfig + + +class AppAddNotNullColumnConfig(AppConfig): + name = "app_alter_column_drop_not_null" diff --git a/tests/test_project/app_alter_column_drop_not_null/migrations/0001_create_table.py b/tests/test_project/app_alter_column_drop_not_null/migrations/0001_create_table.py new file mode 100644 index 0000000..81539c0 --- /dev/null +++ b/tests/test_project/app_alter_column_drop_not_null/migrations/0001_create_table.py @@ -0,0 +1,28 @@ +# Generated by Django 2.1.4 on 2019-03-19 20:59 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [] + + operations = [ + migrations.CreateModel( + name="A", + fields=[ + ( + "id", + models.AutoField( + auto_created=True, + primary_key=True, + serialize=False, + verbose_name="ID", + ), + ), + ("not_null_field", models.IntegerField(null=False)), + ], + ) + ] diff --git a/tests/test_project/app_alter_column_drop_not_null/migrations/0002_drop_not_null.py b/tests/test_project/app_alter_column_drop_not_null/migrations/0002_drop_not_null.py new file mode 100644 index 0000000..7fb6bd6 --- /dev/null +++ b/tests/test_project/app_alter_column_drop_not_null/migrations/0002_drop_not_null.py @@ -0,0 +1,16 @@ +# Generated by Django 2.1.4 on 2019-03-19 21:05 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [("app_alter_column_drop_not_null", "0001_create_table")] + + operations = [ + migrations.AlterField( + model_name='a', + name='not_null_field', + field=models.IntegerField(null=True), + ), + ] diff --git a/tests/test_project/app_alter_column_drop_not_null/migrations/__init__.py b/tests/test_project/app_alter_column_drop_not_null/migrations/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_project/app_alter_column_drop_not_null/models.py b/tests/test_project/app_alter_column_drop_not_null/models.py new file mode 100644 index 0000000..6ad7e37 --- /dev/null +++ b/tests/test_project/app_alter_column_drop_not_null/models.py @@ -0,0 +1,5 @@ +from django.db import models + + +class A(models.Model): + not_null_field = models.IntegerField(null=True) diff --git a/tests/test_project/app_alter_column_drop_not_null/tests.py b/tests/test_project/app_alter_column_drop_not_null/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/tests/test_project/app_alter_column_drop_not_null/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/tests/test_project/app_alter_column_drop_not_null/views.py b/tests/test_project/app_alter_column_drop_not_null/views.py new file mode 100644 index 0000000..91ea44a --- /dev/null +++ b/tests/test_project/app_alter_column_drop_not_null/views.py @@ -0,0 +1,3 @@ +from django.shortcuts import render + +# Create your views here. diff --git a/tests/test_project/settings.py b/tests/test_project/settings.py index 3e8e501..b30a7dd 100644 --- a/tests/test_project/settings.py +++ b/tests/test_project/settings.py @@ -43,6 +43,7 @@ INSTALLED_APPS = [ "tests.test_project.app_add_not_null_column", "tests.test_project.app_add_not_null_column_followed_by_default", "tests.test_project.app_alter_column", + "tests.test_project.app_alter_column_drop_not_null", "tests.test_project.app_correct", "tests.test_project.app_create_table_with_not_null_column", "tests.test_project.app_drop_column",