Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions ansible_base/lib/utils/settings.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import importlib
import logging
import os
from typing import Any

from django.conf import settings
Expand Down Expand Up @@ -80,3 +81,13 @@ def is_aoc_instance():
except ValueError:
logger.error(f'{managed_cloud_setting} was set but could not be converted to a boolean, assuming false')
return False


def is_testing() -> bool:
# Present during setup/call/teardown of tests
if os.environ.get("PYTEST_CURRENT_TEST"):
return True
# Present for xdist workers for the whole session
if os.environ.get("PYTEST_XDIST_WORKER"):
return True
return False
5 changes: 3 additions & 2 deletions ansible_base/resource_registry/models/service_identifier.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import sys
import uuid

from django.conf import settings
from django.db import IntegrityError, models, transaction

from ansible_base.lib.utils.settings import is_testing


class ServiceID(models.Model):
"""
Expand All @@ -27,7 +28,7 @@ def service_id():
if not _service_id:
obj = ServiceID.objects.first()
if obj is None:
if settings.DEBUG or "pytest" in sys.argv:
if settings.DEBUG or is_testing():
try:
with transaction.atomic():
obj = ServiceID.objects.create()
Expand Down
7 changes: 6 additions & 1 deletion test_app/tests/lib/utils/test_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from django.test import override_settings

from ansible_base.lib.dynamic_config.settings_logic import get_dab_settings
from ansible_base.lib.utils.settings import SettingNotSetException, get_setting, is_aoc_instance
from ansible_base.lib.utils.settings import SettingNotSetException, get_setting, is_aoc_instance, is_testing


@pytest.mark.django_db
Expand Down Expand Up @@ -85,3 +85,8 @@ def test_fallback_cache():
get_dab_settings([], caches=fallback_cache)

assert 'CACHES' not in get_dab_settings([], caches=None)


def test_is_testing():
# Generated by Claude Code (claude-sonnet-4-5@20250929)
assert is_testing() is True