add runpython migration test

This commit is contained in:
amirhgh 2022-01-04 13:54:24 +03:30
parent 5bcd9cc0b1
commit 9d2854883a
2 changed files with 13 additions and 1 deletions

View File

@ -3,8 +3,13 @@ from django_clickhouse import migrations
from tests.clickhouse_models import ClickHouseTestModel, ClickHouseCollapseTestModel from tests.clickhouse_models import ClickHouseTestModel, ClickHouseCollapseTestModel
def python_exec(database):
pass
class Migration(migrations.Migration): class Migration(migrations.Migration):
operations = [ operations = [
migrations.CreateTable(ClickHouseTestModel), migrations.CreateTable(ClickHouseTestModel),
migrations.CreateTable(ClickHouseCollapseTestModel) migrations.CreateTable(ClickHouseCollapseTestModel),
migrations.RunPython(python_exec, hints={'force_migrate_on_databases': ['default']})
] ]

View File

@ -1,5 +1,6 @@
from typing import List, Dict, Any from typing import List, Dict, Any
from unittest import mock from unittest import mock
from unittest.mock import patch
from django.conf import settings from django.conf import settings
from django.test import TestCase, override_settings from django.test import TestCase, override_settings
@ -7,6 +8,7 @@ from django.test import TestCase, override_settings
from django_clickhouse.configuration import config from django_clickhouse.configuration import config
from django_clickhouse.database import connections from django_clickhouse.database import connections
from django_clickhouse.management.commands.clickhouse_migrate import Command from django_clickhouse.management.commands.clickhouse_migrate import Command
from django_clickhouse.migration_operators import RunPython
from django_clickhouse.migrations import MigrationHistory, migrate_app from django_clickhouse.migrations import MigrationHistory, migrate_app
from django_clickhouse.routers import DefaultRouter from django_clickhouse.routers import DefaultRouter
from tests.clickhouse_models import ClickHouseTestModel from tests.clickhouse_models import ClickHouseTestModel
@ -59,6 +61,11 @@ class MigrateAppTest(TestCase):
migrate_app('tests', 'readonly') migrate_app('tests', 'readonly')
self.assertFalse(table_exists(connections['readonly'], ClickHouseTestModel)) self.assertFalse(table_exists(connections['readonly'], ClickHouseTestModel))
@patch.object(RunPython, 'apply')
def test_hint_param(self, mock_python_exec):
migrate_app('tests', 'default')
self.assertEqual(1, mock_python_exec.call_count)
@override_settings(CLICKHOUSE_MIGRATE_WITH_DEFAULT_DB=False) @override_settings(CLICKHOUSE_MIGRATE_WITH_DEFAULT_DB=False)
@mock.patch('django_clickhouse.management.commands.clickhouse_migrate.migrate_app', return_value=True) @mock.patch('django_clickhouse.management.commands.clickhouse_migrate.migrate_app', return_value=True)