Skip to content

Commit 4d7c31c

Browse files
committed
Allow running tests with --nomigrations
1 parent 2f701c1 commit 4d7c31c

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

ansible_base/resource_registry/models/service_identifier.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
import sys
12
import uuid
23

4+
from django.conf import settings
35
from django.db import models
46

57

@@ -23,5 +25,11 @@ def save(self, *args, **kwargs):
2325
def service_id():
2426
global _service_id
2527
if not _service_id:
26-
_service_id = str(ServiceID.objects.first().pk)
28+
obj = ServiceID.objects.first()
29+
if obj is None:
30+
if settings.DEBUG or any("pytest" in arg for arg in sys.argv):
31+
obj = ServiceID.objects.create()
32+
else:
33+
raise RuntimeError('Expected ServiceID to be created in data migrations but was not found')
34+
_service_id = str(obj.pk)
2735
return _service_id

test_app/tests/conftest.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
from django.contrib.contenttypes.models import ContentType
1414
from django.db.migrations.recorder import MigrationRecorder
1515
from django.db.models.signals import post_migrate
16+
from django.db.utils import ProgrammingError
1617
from django.test.client import RequestFactory
1718
from django.test.utils import override_settings
1819
from drf_spectacular.generators import SchemaGenerator
@@ -47,7 +48,13 @@ def test_migrations_okay(apps=None, app_config=None, **kwargs):
4748
return # so that it is only ran once
4849
disk_steps = defaultdict(set)
4950
app_exceptions = {'default': 'auth', 'social_auth': 'social_django'}
50-
for app in MigrationRecorder.Migration.objects.values_list('app', flat=True).distinct():
51+
52+
try:
53+
app_list = list(MigrationRecorder.Migration.objects.values_list('app', flat=True).distinct())
54+
except ProgrammingError:
55+
return
56+
57+
for app in app_list:
5158
if app in app_exceptions:
5259
continue
5360
try:

0 commit comments

Comments
 (0)