Тест Django для проверки наличия ожидающих миграций

В Django есть аргумент --check, который позволяет вам проверить, нужно ли создавать миграции для вашего проекта. Это относительно легко добавить в CI, но это не будет выполнять проверку на компьютерах разработчиков.

Я хочу добавить эту проверку в качестве модульного теста в мой проект Django, чтобы она была покрыта, когда разработчики запускают наш набор тестов.

Какой хороший способ достичь этого?

Вы можете добавить следующий unittest:

def test_for_missing_migrations():
    output = StringIO()
    call_command("makemigrations", no_input=True, dry_run=True, stdout=output)
    assert output.getvalue().strip() == "No changes detected", (
        "There are missing migrations:\n %s" % output.getvalue()
    )

Проверяется, возвращает ли результат python manage.py makemigrations значение "Изменений не обнаружено", что означает отсутствие миграций, которые необходимо создать.

Вернуться на верх