jazzband / django-oauth-toolkit

OAuth2 goodies for the Djangonauts!
https://django-oauth-toolkit.readthedocs.io
Other
3.12k stars 791 forks source link

Make sure PR tests detect new missing migrations #1071

Closed n2ygk closed 2 years ago

n2ygk commented 2 years ago

Is your feature request related to a problem? Please describe.

Problem is that the tests don't detect missing migrations. We've had a couple of PRs now where this has led to surprises.

Describe the solution you'd like

Add a tox test to check for new migrations.

Describe alternatives you've considered

Additional context

See #1067

n2ygk commented 2 years ago

Here's what to add: https://github.com/jazzband/django-oauth-toolkit/issues/1067#issuecomment-1005705634

n2ygk commented 2 years ago

Not as easy as I had hoped:

(dot-venv) django-oauth-toolkit$ DJANGO_SETTINGS_MODULE=tests.settings django-admin makemigrations --check --dry-run
SystemCheckError: System check identified some issues:

ERRORS:
oauth2_provider.AccessToken.id_token: (fields.E304) Reverse accessor for 'oauth2_provider.AccessToken.id_token' clashes with reverse accessor for 'tests.SampleAccessToken.id_token'.
    HINT: Add or change a related_name argument to the definition for 'oauth2_provider.AccessToken.id_token' or 'tests.SampleAccessToken.id_token'.
oauth2_provider.AccessToken.id_token: (fields.E305) Reverse query name for 'oauth2_provider.AccessToken.id_token' clashes with reverse query name for 'tests.SampleAccessToken.id_token'.
    HINT: Add or change a related_name argument to the definition for 'oauth2_provider.AccessToken.id_token' or 'tests.SampleAccessToken.id_token'.
tests.SampleAccessToken.id_token: (fields.E304) Reverse accessor for 'tests.SampleAccessToken.id_token' clashes with reverse accessor for 'oauth2_provider.AccessToken.id_token'.
    HINT: Add or change a related_name argument to the definition for 'tests.SampleAccessToken.id_token' or 'oauth2_provider.AccessToken.id_token'.
tests.SampleAccessToken.id_token: (fields.E305) Reverse query name for 'tests.SampleAccessToken.id_token' clashes with reverse query name for 'oauth2_provider.AccessToken.id_token'.
    HINT: Add or change a related_name argument to the definition for 'tests.SampleAccessToken.id_token' or 'oauth2_provider.AccessToken.id_token'.

WARNINGS:
?: (admin.W411) 'django.template.context_processors.request' must be enabled in DjangoTemplates (TEMPLATES) in order to use the admin navigation sidebar.
n2ygk commented 2 years ago

Maybe use https://github.com/wemake-services/django-test-migrations to further check not only for missing migrations but forward/reverse migration errors on schema changes.