diff --git a/.github/workflows/upgrade-python-requirements.yml b/.github/workflows/upgrade-python-requirements.yml index 6efe4ff..4328b65 100644 --- a/.github/workflows/upgrade-python-requirements.yml +++ b/.github/workflows/upgrade-python-requirements.yml @@ -17,8 +17,8 @@ jobs: branch: ${{ github.event.inputs.branch || 'main' }} # optional parameters below; fill in if you'd like github or email notifications # user_reviewers: "" - # team_reviewers: "" - # email_address: "" + team_reviewers: 'axim-aximprovements' + email_address: 'aximimprovements@axim.org' # send_success_notification: false secrets: requirements_bot_github_token: ${{ secrets.REQUIREMENTS_BOT_GITHUB_TOKEN }} diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 9d4da68..ec3652b 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -16,6 +16,14 @@ Unreleased * +[0.3.3] - 2023-10-13 +************************************************ + +Added +===== +* Use utility from openedx_events to reset application state before processing + event + [0.3.2] - 2023-09-01 ************************************************ diff --git a/catalog-info.yaml b/catalog-info.yaml index 6d437f6..af76cd5 100644 --- a/catalog-info.yaml +++ b/catalog-info.yaml @@ -11,11 +11,11 @@ metadata: # We use it in Open edX repos to have a comma-separated list of GitHub user # names that might be interested in changes to the architecture of this # component. - openedx.org/arch-interest-groups: "bmtcril" + openedx.org/arch-interest-groups: "" spec: # (Required) This can be a group(`group:` or a user(`user:`) - owner: "user:bmtcril" + owner: "group:axim-engineering" # (Required) Acceptable Type Values: service, website, library type: 'library' diff --git a/edx_event_bus_redis/internal/consumer.py b/edx_event_bus_redis/internal/consumer.py index b968695..d55abb7 100644 --- a/edx_event_bus_redis/internal/consumer.py +++ b/edx_event_bus_redis/internal/consumer.py @@ -6,12 +6,11 @@ from typing import Optional from django.conf import settings -from django.db import connection from edx_django_utils.monitoring import record_exception, set_custom_attribute from edx_toggles.toggles import SettingToggle from openedx_events.event_bus import EventBusConsumer from openedx_events.event_bus.avro.deserializer import deserialize_bytes_to_event_data -from openedx_events.tooling import OpenEdxPublicSignal +from openedx_events.tooling import OpenEdxPublicSignal, prepare_for_new_work_cycle from redis.exceptions import ConnectionError as RedisConnectionError from redis.exceptions import ResponseError from walrus import Database @@ -70,21 +69,6 @@ class EventConsumptionException(Exception): """ -def _reconnect_to_db_if_needed(): - """ - Reconnects the db connection if needed. - - This is important because Django only does connection validity/age checks as part of - its request/response cycle, which isn't in effect for the consume-loop. If we don't - force these checks, a broken connection will remain broken indefinitely. For most - consumers, this will cause event processing to fail. - """ - has_connection = bool(connection.connection) - requires_reconnect = has_connection and not connection.is_usable() - if requires_reconnect: - connection.connect() - - class RedisEventConsumer(EventBusConsumer): """ Construct consumer for the given topic and group. The consumer can then @@ -240,8 +224,9 @@ def _consume_indefinitely(self): if isinstance(redis_raw_msg, list): redis_raw_msg = redis_raw_msg[0] msg = RedisMessage.parse(redis_raw_msg, self.full_topic) - # Before processing, make sure our db connection is still active - _reconnect_to_db_if_needed() + # Before processing, try to make sure our application state is cleaned + # up as would happen at the start of a Django request/response cycle. + prepare_for_new_work_cycle() self.emit_signals_from_message(msg) consecutive_errors = 0 diff --git a/edx_event_bus_redis/internal/tests/test_consumer.py b/edx_event_bus_redis/internal/tests/test_consumer.py index f2055d7..4ad72ca 100644 --- a/edx_event_bus_redis/internal/tests/test_consumer.py +++ b/edx_event_bus_redis/internal/tests/test_consumer.py @@ -287,7 +287,7 @@ def test_consecutive_error_limit(self): assert mock_emit.call_args_list == [call(self.normal_message)] * exception_count assert exc_info.value.args == ("Too many consecutive errors, exiting (4 in a row)",) - @patch('edx_event_bus_redis.internal.consumer.connection') + @patch('openedx_events.tooling.connection') @ddt.data( (False, False, False), # no connection, don't reconnect (True, False, True), # connection unusable, reconnect expected diff --git a/requirements/base.in b/requirements/base.in index 021528e..fea8dc7 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -2,8 +2,8 @@ -c constraints.txt Django # Web application framework -# openedx-events 8.0.0 removes an argument from consumer initialization -openedx-events>=8.0.0 # Events API +# openedx-events 9.5.0 adds utitily to reset app state +openedx-events>=9.5.0 # Events API edx_django_utils edx_toggles diff --git a/requirements/base.txt b/requirements/base.txt index 7500ded..90ddb42 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -8,7 +8,7 @@ asgiref==3.7.2 # via django async-timeout==4.0.3 # via redis -attrs==23.1.0 +attrs==23.2.0 # via openedx-events cffi==1.16.0 # via pynacl @@ -16,9 +16,9 @@ click==8.1.7 # via # code-annotations # edx-django-utils -code-annotations==1.5.0 +code-annotations==1.6.0 # via edx-toggles -django==3.2.23 +django==3.2.24 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.in @@ -31,31 +31,32 @@ django-crum==0.7.9 # via # edx-django-utils # edx-toggles -django-waffle==4.0.0 +django-waffle==4.1.0 # via # edx-django-utils # edx-toggles -edx-django-utils==5.8.0 +edx-django-utils==5.10.1 # via # -r requirements/base.in # edx-toggles + # openedx-events edx-opaque-keys[django]==2.5.1 # via openedx-events -edx-toggles==5.1.0 +edx-toggles==5.1.1 # via -r requirements/base.in -fastavro==1.9.0 +fastavro==1.9.3 # via openedx-events -jinja2==3.1.2 +jinja2==3.1.3 # via code-annotations -markupsafe==2.1.3 +markupsafe==2.1.5 # via jinja2 -newrelic==9.2.0 +newrelic==9.6.0 # via edx-django-utils -openedx-events==9.2.0 +openedx-events==9.5.0 # via -r requirements/base.in pbr==6.0.0 # via stevedore -psutil==5.9.6 +psutil==5.9.8 # via edx-django-utils pycparser==2.21 # via cffi @@ -63,9 +64,9 @@ pymongo==3.13.0 # via edx-opaque-keys pynacl==1.5.0 # via edx-django-utils -python-slugify==8.0.1 +python-slugify==8.0.4 # via code-annotations -pytz==2023.3.post1 +pytz==2024.1 # via django pyyaml==6.0.1 # via code-annotations @@ -80,7 +81,7 @@ stevedore==5.1.0 # edx-opaque-keys text-unidecode==1.3 # via python-slugify -typing-extensions==4.8.0 +typing-extensions==4.9.0 # via # asgiref # edx-opaque-keys diff --git a/requirements/ci.txt b/requirements/ci.txt index 98714a1..742e39c 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -10,7 +10,7 @@ chardet==5.2.0 # via tox colorama==0.4.6 # via tox -distlib==0.3.7 +distlib==0.3.8 # via virtualenv filelock==3.13.1 # via @@ -20,12 +20,11 @@ packaging==23.2 # via # pyproject-api # tox -platformdirs==3.11.0 +platformdirs==4.2.0 # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # tox # virtualenv -pluggy==1.3.0 +pluggy==1.4.0 # via tox pyproject-api==1.6.1 # via tox @@ -33,7 +32,7 @@ tomli==2.0.1 # via # pyproject-api # tox -tox==4.11.3 +tox==4.12.1 # via -r requirements/ci.in -virtualenv==20.24.6 +virtualenv==20.25.0 # via tox diff --git a/requirements/dev.txt b/requirements/dev.txt index 915703c..18ec859 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -8,7 +8,7 @@ asgiref==3.7.2 # via # -r requirements/quality.txt # django -astroid==3.0.1 +astroid==3.0.3 # via # -r requirements/quality.txt # pylint @@ -17,7 +17,7 @@ async-timeout==4.0.3 # via # -r requirements/quality.txt # redis -attrs==23.1.0 +attrs==23.2.0 # via # -r requirements/quality.txt # openedx-events @@ -51,7 +51,7 @@ click-log==0.4.0 # via # -r requirements/quality.txt # edx-lint -code-annotations==1.5.0 +code-annotations==1.6.0 # via # -r requirements/quality.txt # edx-lint @@ -60,24 +60,24 @@ colorama==0.4.6 # via # -r requirements/ci.txt # tox -coverage[toml]==7.3.2 +coverage[toml]==7.4.1 # via # -r requirements/quality.txt # coverage # pytest-cov -ddt==1.7.0 +ddt==1.7.1 # via -r requirements/quality.txt -diff-cover==8.0.1 +diff-cover==8.0.3 # via -r requirements/dev.in -dill==0.3.7 +dill==0.3.8 # via # -r requirements/quality.txt # pylint -distlib==0.3.7 +distlib==0.3.8 # via # -r requirements/ci.txt # virtualenv -django==3.2.23 +django==3.2.24 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/quality.txt @@ -92,15 +92,16 @@ django-crum==0.7.9 # -r requirements/quality.txt # edx-django-utils # edx-toggles -django-waffle==4.0.0 +django-waffle==4.1.0 # via # -r requirements/quality.txt # edx-django-utils # edx-toggles -edx-django-utils==5.8.0 +edx-django-utils==5.10.1 # via # -r requirements/quality.txt # edx-toggles + # openedx-events edx-i18n-tools==1.3.0 # via -r requirements/dev.in edx-lint==5.3.6 @@ -110,13 +111,13 @@ edx-opaque-keys[django]==2.5.1 # -r requirements/quality.txt # edx-opaque-keys # openedx-events -edx-toggles==5.1.0 +edx-toggles==5.1.1 # via -r requirements/quality.txt -exceptiongroup==1.1.3 +exceptiongroup==1.2.0 # via # -r requirements/quality.txt # pytest -fastavro==1.9.0 +fastavro==1.9.3 # via # -r requirements/quality.txt # openedx-events @@ -125,7 +126,7 @@ filelock==3.13.1 # -r requirements/ci.txt # tox # virtualenv -importlib-metadata==6.8.0 +importlib-metadata==7.0.1 # via # -r requirements/pip-tools.txt # build @@ -133,18 +134,18 @@ iniconfig==2.0.0 # via # -r requirements/quality.txt # pytest -isort==5.12.0 +isort==5.13.2 # via # -r requirements/quality.txt # pylint -jinja2==3.1.2 +jinja2==3.1.3 # via # -r requirements/quality.txt # code-annotations # diff-cover -lxml==4.9.3 +lxml==5.1.0 # via edx-i18n-tools -markupsafe==2.1.3 +markupsafe==2.1.5 # via # -r requirements/quality.txt # jinja2 @@ -152,11 +153,11 @@ mccabe==0.7.0 # via # -r requirements/quality.txt # pylint -newrelic==9.2.0 +newrelic==9.6.0 # via # -r requirements/quality.txt # edx-django-utils -openedx-events==9.2.0 +openedx-events==9.5.0 # via -r requirements/quality.txt packaging==23.2 # via @@ -167,7 +168,7 @@ packaging==23.2 # pyproject-api # pytest # tox -path==16.7.1 +path==16.10.0 # via edx-i18n-tools pbr==6.0.0 # via @@ -175,15 +176,14 @@ pbr==6.0.0 # stevedore pip-tools==7.3.0 # via -r requirements/pip-tools.txt -platformdirs==3.11.0 +platformdirs==4.2.0 # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/ci.txt # -r requirements/quality.txt # pylint # tox # virtualenv -pluggy==1.3.0 +pluggy==1.4.0 # via # -r requirements/ci.txt # -r requirements/quality.txt @@ -192,7 +192,7 @@ pluggy==1.3.0 # tox polib==1.2.0 # via edx-i18n-tools -psutil==5.9.6 +psutil==5.9.8 # via # -r requirements/quality.txt # edx-django-utils @@ -204,9 +204,9 @@ pycparser==2.21 # cffi pydocstyle==6.3.0 # via -r requirements/quality.txt -pygments==2.17.1 +pygments==2.17.2 # via diff-cover -pylint==3.0.2 +pylint==3.0.3 # via # -r requirements/quality.txt # edx-lint @@ -242,20 +242,20 @@ pyproject-hooks==1.0.0 # via # -r requirements/pip-tools.txt # build -pytest==7.4.3 +pytest==8.0.0 # via # -r requirements/quality.txt # pytest-cov # pytest-django pytest-cov==4.1.0 # via -r requirements/quality.txt -pytest-django==4.7.0 +pytest-django==4.8.0 # via -r requirements/quality.txt -python-slugify==8.0.1 +python-slugify==8.0.4 # via # -r requirements/quality.txt # code-annotations -pytz==2023.3.post1 +pytz==2024.1 # via # -r requirements/quality.txt # django @@ -307,22 +307,22 @@ tomlkit==0.12.3 # via # -r requirements/quality.txt # pylint -tox==4.11.3 +tox==4.12.1 # via -r requirements/ci.txt -typing-extensions==4.8.0 +typing-extensions==4.9.0 # via # -r requirements/quality.txt # asgiref # astroid # edx-opaque-keys # pylint -virtualenv==20.24.6 +virtualenv==20.25.0 # via # -r requirements/ci.txt # tox walrus==0.9.3 # via -r requirements/quality.txt -wheel==0.41.3 +wheel==0.42.0 # via # -r requirements/pip-tools.txt # pip-tools diff --git a/requirements/doc.txt b/requirements/doc.txt index 060fb65..b7603f3 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -16,19 +16,19 @@ async-timeout==4.0.3 # via # -r requirements/test.txt # redis -attrs==23.1.0 +attrs==23.2.0 # via # -r requirements/test.txt # openedx-events -babel==2.13.1 +babel==2.14.0 # via # pydata-sphinx-theme # sphinx -beautifulsoup4==4.12.2 +beautifulsoup4==4.12.3 # via pydata-sphinx-theme build==1.0.3 # via -r requirements/doc.in -certifi==2023.11.17 +certifi==2024.2.2 # via requests cffi==1.16.0 # via @@ -42,20 +42,20 @@ click==8.1.7 # -r requirements/test.txt # code-annotations # edx-django-utils -code-annotations==1.5.0 +code-annotations==1.6.0 # via # -r requirements/test.txt # edx-toggles -coverage[toml]==7.3.2 +coverage[toml]==7.4.1 # via # -r requirements/test.txt # coverage # pytest-cov -cryptography==41.0.5 +cryptography==42.0.2 # via secretstorage -ddt==1.7.0 +ddt==1.7.1 # via -r requirements/test.txt -django==3.2.23 +django==3.2.24 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/test.txt @@ -69,7 +69,7 @@ django-crum==0.7.9 # -r requirements/test.txt # edx-django-utils # edx-toggles -django-waffle==4.0.0 +django-waffle==4.1.0 # via # -r requirements/test.txt # edx-django-utils @@ -79,30 +79,31 @@ docutils==0.19 # pydata-sphinx-theme # readme-renderer # sphinx -edx-django-utils==5.8.0 +edx-django-utils==5.10.1 # via # -r requirements/test.txt # edx-toggles + # openedx-events edx-opaque-keys[django]==2.5.1 # via # -r requirements/test.txt # edx-opaque-keys # openedx-events -edx-toggles==5.1.0 +edx-toggles==5.1.1 # via -r requirements/test.txt -exceptiongroup==1.1.3 +exceptiongroup==1.2.0 # via # -r requirements/test.txt # pytest -fastavro==1.9.0 +fastavro==1.9.3 # via # -r requirements/test.txt # openedx-events -idna==3.4 +idna==3.6 # via requests imagesize==1.4.1 # via sphinx -importlib-metadata==6.8.0 +importlib-metadata==7.0.1 # via # build # keyring @@ -114,13 +115,13 @@ iniconfig==2.0.0 # via # -r requirements/test.txt # pytest -jaraco-classes==3.3.0 +jaraco-classes==3.3.1 # via keyring jeepney==0.8.0 # via # keyring # secretstorage -jinja2==3.1.2 +jinja2==3.1.3 # via # -r requirements/test.txt # code-annotations @@ -129,21 +130,21 @@ keyring==24.3.0 # via twine markdown-it-py==3.0.0 # via rich -markupsafe==2.1.3 +markupsafe==2.1.5 # via # -r requirements/test.txt # jinja2 mdurl==0.1.2 # via markdown-it-py -more-itertools==10.1.0 +more-itertools==10.2.0 # via jaraco-classes -newrelic==9.2.0 +newrelic==9.6.0 # via # -r requirements/test.txt # edx-django-utils -nh3==0.2.14 +nh3==0.2.15 # via readme-renderer -openedx-events==9.2.0 +openedx-events==9.5.0 # via -r requirements/test.txt packaging==23.2 # via @@ -158,11 +159,11 @@ pbr==6.0.0 # stevedore pkginfo==1.9.6 # via twine -pluggy==1.3.0 +pluggy==1.4.0 # via # -r requirements/test.txt # pytest -psutil==5.9.6 +psutil==5.9.8 # via # -r requirements/test.txt # edx-django-utils @@ -170,9 +171,9 @@ pycparser==2.21 # via # -r requirements/test.txt # cffi -pydata-sphinx-theme==0.14.3 +pydata-sphinx-theme==0.14.4 # via sphinx-book-theme -pygments==2.17.1 +pygments==2.17.2 # via # accessible-pygments # pydata-sphinx-theme @@ -189,20 +190,20 @@ pynacl==1.5.0 # edx-django-utils pyproject-hooks==1.0.0 # via build -pytest==7.4.3 +pytest==8.0.0 # via # -r requirements/test.txt # pytest-cov # pytest-django pytest-cov==4.1.0 # via -r requirements/test.txt -pytest-django==4.7.0 +pytest-django==4.8.0 # via -r requirements/test.txt -python-slugify==8.0.1 +python-slugify==8.0.4 # via # -r requirements/test.txt # code-annotations -pytz==2023.3.post1 +pytz==2024.1 # via # -r requirements/test.txt # babel @@ -274,16 +275,16 @@ tomli==2.0.1 # coverage # pyproject-hooks # pytest -twine==4.0.2 +twine==5.0.0 # via -r requirements/doc.in -typing-extensions==4.8.0 +typing-extensions==4.9.0 # via # -r requirements/test.txt # asgiref # edx-opaque-keys # pydata-sphinx-theme # rich -urllib3==2.1.0 +urllib3==2.2.0 # via # requests # twine diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index ea34731..0e88226 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -8,7 +8,7 @@ build==1.0.3 # via pip-tools click==8.1.7 # via pip-tools -importlib-metadata==6.8.0 +importlib-metadata==7.0.1 # via build packaging==23.2 # via build @@ -21,7 +21,7 @@ tomli==2.0.1 # build # pip-tools # pyproject-hooks -wheel==0.41.3 +wheel==0.42.0 # via pip-tools zipp==3.17.0 # via importlib-metadata diff --git a/requirements/pip.txt b/requirements/pip.txt index 9014f2c..71954cc 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -4,11 +4,11 @@ # # make upgrade # -wheel==0.41.3 +wheel==0.42.0 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==23.3.1 +pip==24.0 # via -r requirements/pip.in -setuptools==68.2.2 +setuptools==69.1.0 # via -r requirements/pip.in diff --git a/requirements/quality.txt b/requirements/quality.txt index 7ba28c6..46da8ef 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -8,7 +8,7 @@ asgiref==3.7.2 # via # -r requirements/test.txt # django -astroid==3.0.1 +astroid==3.0.3 # via # pylint # pylint-celery @@ -16,7 +16,7 @@ async-timeout==4.0.3 # via # -r requirements/test.txt # redis -attrs==23.1.0 +attrs==23.2.0 # via # -r requirements/test.txt # openedx-events @@ -33,21 +33,21 @@ click==8.1.7 # edx-lint click-log==0.4.0 # via edx-lint -code-annotations==1.5.0 +code-annotations==1.6.0 # via # -r requirements/test.txt # edx-lint # edx-toggles -coverage[toml]==7.3.2 +coverage[toml]==7.4.1 # via # -r requirements/test.txt # coverage # pytest-cov -ddt==1.7.0 +ddt==1.7.1 # via -r requirements/test.txt -dill==0.3.7 +dill==0.3.8 # via pylint -django==3.2.23 +django==3.2.24 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/test.txt @@ -61,15 +61,16 @@ django-crum==0.7.9 # -r requirements/test.txt # edx-django-utils # edx-toggles -django-waffle==4.0.0 +django-waffle==4.1.0 # via # -r requirements/test.txt # edx-django-utils # edx-toggles -edx-django-utils==5.8.0 +edx-django-utils==5.10.1 # via # -r requirements/test.txt # edx-toggles + # openedx-events edx-lint==5.3.6 # via -r requirements/quality.in edx-opaque-keys[django]==2.5.1 @@ -77,13 +78,13 @@ edx-opaque-keys[django]==2.5.1 # -r requirements/test.txt # edx-opaque-keys # openedx-events -edx-toggles==5.1.0 +edx-toggles==5.1.1 # via -r requirements/test.txt -exceptiongroup==1.1.3 +exceptiongroup==1.2.0 # via # -r requirements/test.txt # pytest -fastavro==1.9.0 +fastavro==1.9.3 # via # -r requirements/test.txt # openedx-events @@ -91,25 +92,25 @@ iniconfig==2.0.0 # via # -r requirements/test.txt # pytest -isort==5.12.0 +isort==5.13.2 # via # -r requirements/quality.in # pylint -jinja2==3.1.2 +jinja2==3.1.3 # via # -r requirements/test.txt # code-annotations -markupsafe==2.1.3 +markupsafe==2.1.5 # via # -r requirements/test.txt # jinja2 mccabe==0.7.0 # via pylint -newrelic==9.2.0 +newrelic==9.6.0 # via # -r requirements/test.txt # edx-django-utils -openedx-events==9.2.0 +openedx-events==9.5.0 # via -r requirements/test.txt packaging==23.2 # via @@ -119,15 +120,13 @@ pbr==6.0.0 # via # -r requirements/test.txt # stevedore -platformdirs==3.11.0 - # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt - # pylint -pluggy==1.3.0 +platformdirs==4.2.0 + # via pylint +pluggy==1.4.0 # via # -r requirements/test.txt # pytest -psutil==5.9.6 +psutil==5.9.8 # via # -r requirements/test.txt # edx-django-utils @@ -139,7 +138,7 @@ pycparser==2.21 # cffi pydocstyle==6.3.0 # via -r requirements/quality.in -pylint==3.0.2 +pylint==3.0.3 # via # edx-lint # pylint-celery @@ -161,20 +160,20 @@ pynacl==1.5.0 # via # -r requirements/test.txt # edx-django-utils -pytest==7.4.3 +pytest==8.0.0 # via # -r requirements/test.txt # pytest-cov # pytest-django pytest-cov==4.1.0 # via -r requirements/test.txt -pytest-django==4.7.0 +pytest-django==4.8.0 # via -r requirements/test.txt -python-slugify==8.0.1 +python-slugify==8.0.4 # via # -r requirements/test.txt # code-annotations -pytz==2023.3.post1 +pytz==2024.1 # via # -r requirements/test.txt # django @@ -212,7 +211,7 @@ tomli==2.0.1 # pytest tomlkit==0.12.3 # via pylint -typing-extensions==4.8.0 +typing-extensions==4.9.0 # via # -r requirements/test.txt # asgiref diff --git a/requirements/test.txt b/requirements/test.txt index 2c5e7fb..c0e6e04 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -12,7 +12,7 @@ async-timeout==4.0.3 # via # -r requirements/base.txt # redis -attrs==23.1.0 +attrs==23.2.0 # via # -r requirements/base.txt # openedx-events @@ -25,16 +25,16 @@ click==8.1.7 # -r requirements/base.txt # code-annotations # edx-django-utils -code-annotations==1.5.0 +code-annotations==1.6.0 # via # -r requirements/base.txt # -r requirements/test.in # edx-toggles -coverage[toml]==7.3.2 +coverage[toml]==7.4.1 # via # coverage # pytest-cov -ddt==1.7.0 +ddt==1.7.1 # via -r requirements/test.in # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt @@ -49,43 +49,44 @@ django-crum==0.7.9 # -r requirements/base.txt # edx-django-utils # edx-toggles -django-waffle==4.0.0 +django-waffle==4.1.0 # via # -r requirements/base.txt # edx-django-utils # edx-toggles -edx-django-utils==5.8.0 +edx-django-utils==5.10.1 # via # -r requirements/base.txt # edx-toggles + # openedx-events edx-opaque-keys[django]==2.5.1 # via # -r requirements/base.txt # edx-opaque-keys # openedx-events -edx-toggles==5.1.0 +edx-toggles==5.1.1 # via -r requirements/base.txt -exceptiongroup==1.1.3 +exceptiongroup==1.2.0 # via pytest -fastavro==1.9.0 +fastavro==1.9.3 # via # -r requirements/base.txt # openedx-events iniconfig==2.0.0 # via pytest -jinja2==3.1.2 +jinja2==3.1.3 # via # -r requirements/base.txt # code-annotations -markupsafe==2.1.3 +markupsafe==2.1.5 # via # -r requirements/base.txt # jinja2 -newrelic==9.2.0 +newrelic==9.6.0 # via # -r requirements/base.txt # edx-django-utils -openedx-events==9.2.0 +openedx-events==9.5.0 # via -r requirements/base.txt packaging==23.2 # via pytest @@ -93,9 +94,9 @@ pbr==6.0.0 # via # -r requirements/base.txt # stevedore -pluggy==1.3.0 +pluggy==1.4.0 # via pytest -psutil==5.9.6 +psutil==5.9.8 # via # -r requirements/base.txt # edx-django-utils @@ -111,19 +112,19 @@ pynacl==1.5.0 # via # -r requirements/base.txt # edx-django-utils -pytest==7.4.3 +pytest==8.0.0 # via # pytest-cov # pytest-django pytest-cov==4.1.0 # via -r requirements/test.in -pytest-django==4.7.0 +pytest-django==4.8.0 # via -r requirements/test.in -python-slugify==8.0.1 +python-slugify==8.0.4 # via # -r requirements/base.txt # code-annotations -pytz==2023.3.post1 +pytz==2024.1 # via # -r requirements/base.txt # django @@ -153,7 +154,7 @@ tomli==2.0.1 # via # coverage # pytest -typing-extensions==4.8.0 +typing-extensions==4.9.0 # via # -r requirements/base.txt # asgiref