Skip to content

Commit

Permalink
Make awx/main/tests/live dramatically faster (#15780)
Browse files Browse the repository at this point in the history
* Make awx/main/tests/live dramatically faster

* Add new setting to exclude list
  • Loading branch information
AlanCoding committed Feb 10, 2025
1 parent 9fa6579 commit 7e268fa
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 2 deletions.
4 changes: 2 additions & 2 deletions awx/main/dispatch/publish.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
from uuid import uuid4

from django_guid import get_guid
from django.conf import settings

from . import pg_bus_conn
from awx.main.utils import is_testing

logger = logging.getLogger('awx.main.dispatch')

Expand Down Expand Up @@ -101,7 +101,7 @@ def apply_async(cls, args=None, kwargs=None, queue=None, uuid=None, **kw):
obj = cls.get_async_body(args=args, kwargs=kwargs, uuid=uuid, **kw)
if callable(queue):
queue = queue()
if not is_testing():
if not settings.DISPATCHER_MOCK_PUBLISH:
with pg_bus_conn() as conn:
conn.notify(queue, json.dumps(obj))
return (obj, queue)
Expand Down
3 changes: 3 additions & 0 deletions awx/main/tests/settings_for_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
# Some things make decisions based on settings.SETTINGS_MODULE, so this is done for that
SETTINGS_MODULE = 'awx.settings.development'

# Turn off task submission, because sqlite3 does not have pg_notify
DISPATCHER_MOCK_PUBLISH = True

# Use SQLite for unit tests instead of PostgreSQL. If the lines below are
# commented out, Django will create the test_awx-dev database in PostgreSQL to
# run unit tests.
Expand Down
1 change: 1 addition & 0 deletions awx/main/tests/unit/test_settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
'CACHES',
'DEBUG',
'NAMED_URL_GRAPH',
'DISPATCHER_MOCK_PUBLISH',
)


Expand Down
5 changes: 5 additions & 0 deletions awx/settings/defaults.py
Original file line number Diff line number Diff line change
Expand Up @@ -423,6 +423,11 @@
# Amount of time dispatcher will try to reconnect to database for jobs and consuming new work
DISPATCHER_DB_DOWNTIME_TOLERANCE = 40

# If you set this, nothing will ever be sent to pg_notify
# this is not practical to use, although periodic schedules may still run slugish but functional tasks
# sqlite3 based tests will use this
DISPATCHER_MOCK_PUBLISH = False

BROKER_URL = 'unix:///var/run/redis/redis.sock'
CELERYBEAT_SCHEDULE = {
'tower_scheduler': {'task': 'awx.main.tasks.system.awx_periodic_scheduler', 'schedule': timedelta(seconds=30), 'options': {'expires': 20}},
Expand Down

0 comments on commit 7e268fa

Please sign in to comment.