diff --git a/openedx/core/djangoapps/discussions/tests/test_views.py b/openedx/core/djangoapps/discussions/tests/test_views.py new file mode 100644 index 0000000000..7fc6228ad0 --- /dev/null +++ b/openedx/core/djangoapps/discussions/tests/test_views.py @@ -0,0 +1,105 @@ +""" +Test app view logic +""" +# pylint: disable=test-inherits-tests +import unittest + +from django.conf import settings +from django.urls import reverse +from opaque_keys.edx.keys import CourseKey +from rest_framework import status +from rest_framework.test import APITestCase + +from common.djangoapps.student.tests.factories import UserFactory +from lms.djangoapps.courseware.tests.factories import GlobalStaffFactory +from lms.djangoapps.courseware.tests.factories import StaffFactory + + +@unittest.skipUnless(settings.ROOT_URLCONF == 'lms.urls', 'URLs are only configured in LMS') +class ApiTest(APITestCase): + """ + Test basic API operations + """ + def setUp(self): + super().setUp() + self.course_key = CourseKey.from_string('course-v1:Test+Course+Configured') + self.url = reverse( + 'discussions', + kwargs={ + 'course_key_string': str(self.course_key), + } + ) + self.password = 'password' + self.user_student = UserFactory(username='dummy', password=self.password) + self.user_staff_course = StaffFactory(course_key=self.course_key, password=self.password) + self.user_staff_global = GlobalStaffFactory(password=self.password) + + +class UnauthorizedApiTest(ApiTest): + """ + Logged-out users should _not_ have any access + """ + + expected_response_code = status.HTTP_401_UNAUTHORIZED + + def test_access_get(self): + response = self.client.get(self.url) + assert response.status_code == self.expected_response_code + + def test_access_patch(self): + response = self.client.patch(self.url) + assert response.status_code == self.expected_response_code + + def test_access_post(self): + response = self.client.post(self.url) + assert response.status_code == self.expected_response_code + + def test_access_put(self): + response = self.client.put(self.url) + assert response.status_code == self.expected_response_code + + +class AuthenticatedApiTest(UnauthorizedApiTest): + """ + Logged-in users should _not_ have any access + """ + + expected_response_code = status.HTTP_403_FORBIDDEN + + def setUp(self): + super().setUp() + self._login() + + def _login(self): + self.client.login(username=self.user_student.username, password=self.password) + + +class AuthorizedApiTest(AuthenticatedApiTest): + """ + Global Staff should have access to all supported methods + """ + + expected_response_code = status.HTTP_200_OK + + def _login(self): + self.client.login(username=self.user_staff_global.username, password=self.password) + + def test_access_patch(self): + response = self.client.patch(self.url) + assert response.status_code == status.HTTP_405_METHOD_NOT_ALLOWED + + def test_access_put(self): + response = self.client.put(self.url) + assert response.status_code == status.HTTP_405_METHOD_NOT_ALLOWED + + +class CourseStaffAuthorizedTest(UnauthorizedApiTest): + """ + Course Staff should have the same access as Global Staff + + TODO: This behavior should be changed to _allow_ access [1] + - [1] https://openedx.atlassian.net/browse/TNL-8231 + """ + + def _login(self): + self.client.login(username=self.user_staff_course.username, password=self.password) diff --git a/requirements/constraints.txt b/requirements/constraints.txt index a54baba75d..9f7ca9f1aa 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -45,8 +45,6 @@ isort<5.0.0 # 0.15.0 dropped support for Python 3.5 joblib<0.15.0 -# Version 2.0.0 is giving incompatible versions errors on upgrade -importlib-metadata==1.7.0 # jsonfield2 3.1.0 drops support for python 3.5 jsonfield2<3.1.0 @@ -112,3 +110,4 @@ httpretty<1.0 # latest version of diff-cover conflicts with pygments version see https://github.com/Bachmann1234/diff_cover/commit/01f91760321cee1ad28cfa0d801c4acd8b9765a6 diff-cover==4.0.0 + diff --git a/requirements/edx-sandbox/py35.txt b/requirements/edx-sandbox/py35.txt index 2763cd952b..5893117cd5 100644 --- a/requirements/edx-sandbox/py35.txt +++ b/requirements/edx-sandbox/py35.txt @@ -11,7 +11,7 @@ chem==1.2.0 # via -r requirements/edx-sandbox/py35.in click==7.1.2 # via -r requirements/edx-sandbox/shared.txt, nltk cryptography==3.2.1 # via -c requirements/edx-sandbox/../constraints.txt, -r requirements/edx-sandbox/shared.txt cycler==0.10.0 # via matplotlib -decorator==5.0.6 # via networkx +decorator==5.0.7 # via networkx joblib==0.14.1 # via -c requirements/edx-sandbox/../constraints.txt, -r requirements/edx-sandbox/shared.txt, nltk kiwisolver==1.1.0 # via -c requirements/edx-sandbox/../constraints.txt, matplotlib lxml==4.5.0 # via -c requirements/edx-sandbox/../constraints.txt, -r requirements/edx-sandbox/shared.txt diff --git a/requirements/edx/base.txt b/requirements/edx/base.txt index 6e4004d256..79e3cfc81c 100644 --- a/requirements/edx/base.txt +++ b/requirements/edx/base.txt @@ -47,7 +47,7 @@ crowdsourcehinter-xblock==0.6 # via -r requirements/edx/base.in cryptography==3.2.1 # via -c requirements/edx/../constraints.txt, -r requirements/edx/../edx-sandbox/shared.txt, django-fernet-fields, edx-enterprise, pyjwt, social-auth-core cssutils==2.2.0 # via pynliner ddt==1.4.2 # via xblock-drag-and-drop-v2, xblock-poll -decorator==5.0.6 # via pycontracts +decorator==5.0.7 # via pycontracts defusedxml==0.7.1 # via -r requirements/edx/base.in, djangorestframework-xml, ora2, python3-openid, python3-saml, safe-lxml, social-auth-core django-appconf==1.0.4 # via -r requirements/edx/base.in, django-statici18n django-cache-memoize==0.1.8 # via edx-enterprise @@ -68,7 +68,7 @@ django-mptt==0.12.0 # via -r requirements/edx/base.in, django-wiki django-multi-email-field==0.6.2 # via edx-enterprise django-mysql==3.11.1 # via -r requirements/edx/base.in django-oauth-toolkit==1.3.2 # via -c requirements/edx/../constraints.txt, -r requirements/edx/base.in -django-object-actions==3.0.1 # via edx-enterprise +django-object-actions==3.0.2 # via edx-enterprise django-pipeline==2.0.6 # via -r requirements/edx/base.in django-pyfs==3.0 # via -r requirements/edx/base.in git+https://github.com/edx/django-ratelimit-backend.git@v2.0.1a5#egg=django-ratelimit-backend==2.0.1a5 # via -r requirements/edx/github.in @@ -93,7 +93,7 @@ drf-yasg==1.20.0 # via edx-api-doc-tools edx-ace==1.1.0 # via -r requirements/edx/base.in edx-analytics-data-api-client==0.17.0 # via -r requirements/edx/base.in edx-api-doc-tools==1.4.0 # via -r requirements/edx/base.in -edx-bulk-grades==0.8.8 # via -r requirements/edx/base.in, staff-graded-xblock +edx-bulk-grades==0.8.9 # via -r requirements/edx/base.in, staff-graded-xblock edx-ccx-keys==1.2.0 # via -r requirements/edx/base.in edx-celeryutils==1.0.0 # via -r requirements/edx/base.in, super-csv edx-completion==4.0.3 # via -r requirements/edx/base.in @@ -147,7 +147,7 @@ laboratory==1.0.2 # via -r requirements/edx/base.in lazy==1.4 # via -r requirements/edx/paver.txt, acid-xblock, lti-consumer-xblock, ora2 libsass==0.10.0 # via -r requirements/edx/paver.txt, ora2 loremipsum==1.0.5 # via ora2 -lti-consumer-xblock==2.7.1 # via -r requirements/edx/base.in +lti-consumer-xblock==2.7.4 # via -r requirements/edx/base.in lxml==4.5.0 # via -c requirements/edx/../constraints.txt, -r requirements/edx/../edx-sandbox/shared.txt, capa, edxval, lti-consumer-xblock, olxcleaner, ora2, safe-lxml, xblock, xmlsec mailsnake==1.6.4 # via -r requirements/edx/base.in mako==1.1.4 # via -r requirements/edx/base.in, acid-xblock, lti-consumer-xblock, xblock-google-drive, xblock-utils @@ -162,7 +162,7 @@ mpmath==1.2.1 # via sympy mysqlclient==2.0.3 # via -r requirements/edx/base.in newrelic==6.2.0.156 # via -r requirements/edx/base.in, edx-django-utils nltk==3.6.1 # via -r requirements/edx/../edx-sandbox/shared.txt, chem -nodeenv==1.5.0 # via -r requirements/edx/base.in +nodeenv==1.6.0 # via -r requirements/edx/base.in numpy==1.20.2 # via chem, openedx-calc, scipy oauthlib==3.0.1 # via -c requirements/edx/../constraints.txt, -r requirements/edx/base.in, django-oauth-toolkit, lti-consumer-xblock, requests-oauthlib, social-auth-core openedx-calc==2.0.1 # via -r requirements/edx/base.in diff --git a/requirements/edx/coverage.txt b/requirements/edx/coverage.txt index f0bf66ee5c..8512415fee 100644 --- a/requirements/edx/coverage.txt +++ b/requirements/edx/coverage.txt @@ -6,7 +6,7 @@ # coverage==5.5 # via -r requirements/edx/coverage.in diff-cover==4.0.0 # via -c requirements/edx/../constraints.txt, -r requirements/edx/coverage.in -importlib-metadata==1.7.0 # via -c requirements/edx/../constraints.txt, inflect +importlib-metadata==3.10.1 # via inflect inflect==3.0.2 # via -c requirements/edx/../constraints.txt, jinja2-pluralize jinja2-pluralize==0.3.0 # via diff-cover jinja2==2.11.3 # via diff-cover, jinja2-pluralize diff --git a/requirements/edx/development.txt b/requirements/edx/development.txt index 6d969a92c2..158fb11c52 100644 --- a/requirements/edx/development.txt +++ b/requirements/edx/development.txt @@ -26,10 +26,9 @@ analytics-python==1.2.9 # via -r requirements/edx/testing.txt aniso8601==9.0.1 # via -r requirements/edx/testing.txt, edx-tincan-py35, tincan apipkg==1.5 # via -r requirements/edx/testing.txt, execnet appdirs==1.4.4 # via -r requirements/edx/testing.txt, fs, virtualenv -astroid==2.5.2 # via -r requirements/edx/testing.txt, pylint, pylint-celery +astroid==2.5.3 # via -r requirements/edx/testing.txt, pylint, pylint-celery attrs==20.3.0 # via -r requirements/edx/testing.txt, edx-ace, jsonschema, pytest babel==2.9.0 # via -r requirements/edx/testing.txt, enmerkar, enmerkar-underscore, sphinx -backports.entry-points-selectable==1.0.3 # via -r requirements/edx/testing.txt, pytest-randomly beautifulsoup4==4.9.3 # via -r requirements/edx/testing.txt, pynliner billiard==3.6.4.0 # via -r requirements/edx/testing.txt, celery bleach==3.3.0 # via -r requirements/edx/testing.txt, django-wiki, edx-enterprise, lti-consumer-xblock, ora2, xblock-drag-and-drop-v2, xblock-poll @@ -56,7 +55,7 @@ cryptography==3.2.1 # via -c requirements/edx/../constraints.txt, -r requi cssselect==1.1.0 # via -r requirements/edx/testing.txt, pyquery cssutils==2.2.0 # via -r requirements/edx/testing.txt, pynliner ddt==1.4.2 # via -r requirements/edx/testing.txt, xblock-drag-and-drop-v2, xblock-poll -decorator==5.0.6 # via -r requirements/edx/testing.txt, pycontracts +decorator==5.0.7 # via -r requirements/edx/testing.txt, pycontracts defusedxml==0.7.1 # via -r requirements/edx/testing.txt, djangorestframework-xml, ora2, python3-openid, python3-saml, safe-lxml, social-auth-core diff-cover==4.0.0 # via -c requirements/edx/../constraints.txt, -r requirements/edx/testing.txt distlib==0.3.1 # via -r requirements/edx/testing.txt, virtualenv @@ -80,7 +79,7 @@ django-mptt==0.12.0 # via -r requirements/edx/testing.txt, django-wiki django-multi-email-field==0.6.2 # via -r requirements/edx/testing.txt, edx-enterprise django-mysql==3.11.1 # via -r requirements/edx/testing.txt django-oauth-toolkit==1.3.2 # via -c requirements/edx/../constraints.txt, -r requirements/edx/testing.txt -django-object-actions==3.0.1 # via -r requirements/edx/testing.txt, edx-enterprise +django-object-actions==3.0.2 # via -r requirements/edx/testing.txt, edx-enterprise django-pipeline==2.0.6 # via -r requirements/edx/testing.txt django-pyfs==3.0 # via -r requirements/edx/testing.txt git+https://github.com/edx/django-ratelimit-backend.git@v2.0.1a5#egg=django-ratelimit-backend==2.0.1a5 # via -r requirements/edx/testing.txt @@ -105,7 +104,7 @@ drf-yasg==1.20.0 # via -r requirements/edx/testing.txt, edx-api-doc-too edx-ace==1.1.0 # via -r requirements/edx/testing.txt edx-analytics-data-api-client==0.17.0 # via -r requirements/edx/testing.txt edx-api-doc-tools==1.4.0 # via -r requirements/edx/testing.txt -edx-bulk-grades==0.8.8 # via -r requirements/edx/testing.txt, staff-graded-xblock +edx-bulk-grades==0.8.9 # via -r requirements/edx/testing.txt, staff-graded-xblock edx-ccx-keys==1.2.0 # via -r requirements/edx/testing.txt edx-celeryutils==1.0.0 # via -r requirements/edx/testing.txt, super-csv edx-completion==4.0.3 # via -r requirements/edx/testing.txt @@ -139,7 +138,7 @@ enmerkar==0.7.1 # via -r requirements/edx/testing.txt, enmerkar-unders event-tracking==1.0.4 # via -r requirements/edx/testing.txt, edx-event-routing-backends, edx-proctoring, edx-search execnet==1.8.0 # via -r requirements/edx/testing.txt, pytest-xdist factory-boy==3.2.0 # via -c requirements/edx/../constraints.txt, -r requirements/edx/testing.txt -faker==8.0.0 # via -r requirements/edx/testing.txt, factory-boy +faker==8.1.0 # via -r requirements/edx/testing.txt, factory-boy filelock==3.0.12 # via -r requirements/edx/testing.txt, tox, virtualenv freezegun==0.3.12 # via -c requirements/edx/../constraints.txt, -r requirements/edx/testing.txt fs-s3fs==0.1.8 # via -r requirements/edx/testing.txt, django-pyfs @@ -156,7 +155,7 @@ httpretty==0.9.7 # via -c requirements/edx/../constraints.txt, -r requi icalendar==4.0.7 # via -r requirements/edx/testing.txt idna==2.10 # via -r requirements/edx/testing.txt, requests imagesize==1.2.0 # via sphinx -importlib-metadata==1.7.0 # via -c requirements/edx/../constraints.txt, -r requirements/edx/testing.txt, inflect +importlib-metadata==3.10.1 # via -r requirements/edx/testing.txt, inflect, pytest-randomly inflect==3.0.2 # via -c requirements/edx/../constraints.txt, -r requirements/edx/testing.txt, jinja2-pluralize inflection==0.5.1 # via -r requirements/edx/testing.txt, drf-yasg iniconfig==1.1.1 # via -r requirements/edx/testing.txt, pytest @@ -177,7 +176,7 @@ lazy-object-proxy==1.6.0 # via -r requirements/edx/testing.txt, astroid lazy==1.4 # via -r requirements/edx/testing.txt, acid-xblock, bok-choy, lti-consumer-xblock, ora2 libsass==0.10.0 # via -r requirements/edx/testing.txt, ora2 loremipsum==1.0.5 # via -r requirements/edx/testing.txt, ora2 -lti-consumer-xblock==2.7.1 # via -r requirements/edx/testing.txt +lti-consumer-xblock==2.7.4 # via -r requirements/edx/testing.txt lxml==4.5.0 # via -c requirements/edx/../constraints.txt, -r requirements/edx/testing.txt, capa, edxval, lti-consumer-xblock, olxcleaner, ora2, pyquery, safe-lxml, xblock, xmlsec m2r==0.2.1 # via sphinxcontrib-openapi mailsnake==1.6.4 # via -r requirements/edx/testing.txt @@ -196,7 +195,7 @@ mpmath==1.2.1 # via -r requirements/edx/testing.txt, sympy mysqlclient==2.0.3 # via -r requirements/edx/testing.txt newrelic==6.2.0.156 # via -r requirements/edx/testing.txt, edx-django-utils nltk==3.6.1 # via -r requirements/edx/testing.txt, chem -nodeenv==1.5.0 # via -r requirements/edx/testing.txt +nodeenv==1.6.0 # via -r requirements/edx/testing.txt numpy==1.20.2 # via -r requirements/edx/testing.txt, chem, openedx-calc, scipy oauthlib==3.0.1 # via -c requirements/edx/../constraints.txt, -r requirements/edx/testing.txt, django-oauth-toolkit, lti-consumer-xblock, requests-oauthlib, social-auth-core openedx-calc==2.0.1 # via -r requirements/edx/testing.txt @@ -223,7 +222,7 @@ pyjwkest==1.4.2 # via -r requirements/edx/testing.txt, edx-drf-extensi pyjwt[crypto]==1.7.1 # via -r requirements/edx/testing.txt, drf-jwt, edx-rest-api-client, social-auth-core pylatexenc==2.10 # via -r requirements/edx/testing.txt, olxcleaner pylint-celery==0.3 # via -r requirements/edx/testing.txt, edx-lint -pylint-django==2.4.2 # via -r requirements/edx/testing.txt, edx-lint +pylint-django==2.4.3 # via -r requirements/edx/testing.txt, edx-lint pylint-plugin-utils==0.6 # via -r requirements/edx/testing.txt, pylint-celery, pylint-django pylint==2.7.4 # via -r requirements/edx/testing.txt, edx-lint, pylint-celery, pylint-django, pylint-plugin-utils pymongo==3.10.1 # via -c requirements/edx/../constraints.txt, -r requirements/edx/testing.txt, edx-opaque-keys, event-tracking, mongodbproxy, mongoengine @@ -234,11 +233,11 @@ pyrsistent==0.17.3 # via jsonschema pysrt==1.1.2 # via -r requirements/edx/testing.txt, edxval pytest-attrib==0.1.3 # via -r requirements/edx/testing.txt pytest-cov==2.11.1 # via -r requirements/edx/testing.txt -pytest-django==4.1.0 # via -r requirements/edx/testing.txt +pytest-django==4.2.0 # via -r requirements/edx/testing.txt pytest-forked==1.3.0 # via -r requirements/edx/testing.txt, pytest-xdist pytest-json-report==1.2.4 # via -r requirements/edx/testing.txt pytest-metadata==1.8.0 # via -r requirements/edx/testing.txt, pytest-json-report -pytest-randomly==3.6.0 # via -r requirements/edx/testing.txt +pytest-randomly==3.7.0 # via -r requirements/edx/testing.txt pytest-xdist[psutil]==2.2.1 # via -r requirements/edx/testing.txt pytest==6.2.3 # via -r requirements/edx/testing.txt, pytest-attrib, pytest-cov, pytest-django, pytest-forked, pytest-json-report, pytest-metadata, pytest-randomly, pytest-xdist python-dateutil==2.4.0 # via -c requirements/edx/../constraints.txt, -r requirements/edx/testing.txt, analytics-python, botocore, edx-ace, edx-drf-extensions, edx-enterprise, edx-event-routing-backends, edx-proctoring, faker, freezegun, icalendar, olxcleaner, ora2, xblock diff --git a/requirements/edx/testing.txt b/requirements/edx/testing.txt index d2dc91f230..8d4b88f60b 100644 --- a/requirements/edx/testing.txt +++ b/requirements/edx/testing.txt @@ -25,10 +25,9 @@ analytics-python==1.2.9 # via -r requirements/edx/base.txt aniso8601==9.0.1 # via -r requirements/edx/base.txt, edx-tincan-py35, tincan apipkg==1.5 # via execnet appdirs==1.4.4 # via -r requirements/edx/base.txt, fs, virtualenv -astroid==2.5.2 # via pylint, pylint-celery +astroid==2.5.3 # via pylint, pylint-celery attrs==20.3.0 # via -r requirements/edx/base.txt, edx-ace, pytest babel==2.9.0 # via -r requirements/edx/base.txt, enmerkar, enmerkar-underscore -backports.entry-points-selectable==1.0.3 # via pytest-randomly beautifulsoup4==4.9.3 # via -r requirements/edx/base.txt, -r requirements/edx/testing.in, pynliner billiard==3.6.4.0 # via -r requirements/edx/base.txt, celery bleach==3.3.0 # via -r requirements/edx/base.txt, django-wiki, edx-enterprise, lti-consumer-xblock, ora2, xblock-drag-and-drop-v2, xblock-poll @@ -55,7 +54,7 @@ cryptography==3.2.1 # via -c requirements/edx/../constraints.txt, -r requi cssselect==1.1.0 # via -r requirements/edx/testing.in, pyquery cssutils==2.2.0 # via -r requirements/edx/base.txt, pynliner ddt==1.4.2 # via -r requirements/edx/base.txt, -r requirements/edx/testing.in, xblock-drag-and-drop-v2, xblock-poll -decorator==5.0.6 # via -r requirements/edx/base.txt, pycontracts +decorator==5.0.7 # via -r requirements/edx/base.txt, pycontracts defusedxml==0.7.1 # via -r requirements/edx/base.txt, djangorestframework-xml, ora2, python3-openid, python3-saml, safe-lxml, social-auth-core diff-cover==4.0.0 # via -c requirements/edx/../constraints.txt, -r requirements/edx/coverage.txt distlib==0.3.1 # via virtualenv @@ -78,7 +77,7 @@ django-mptt==0.12.0 # via -r requirements/edx/base.txt, django-wiki django-multi-email-field==0.6.2 # via -r requirements/edx/base.txt, edx-enterprise django-mysql==3.11.1 # via -r requirements/edx/base.txt django-oauth-toolkit==1.3.2 # via -c requirements/edx/../constraints.txt, -r requirements/edx/base.txt -django-object-actions==3.0.1 # via -r requirements/edx/base.txt, edx-enterprise +django-object-actions==3.0.2 # via -r requirements/edx/base.txt, edx-enterprise django-pipeline==2.0.6 # via -r requirements/edx/base.txt django-pyfs==3.0 # via -r requirements/edx/base.txt git+https://github.com/edx/django-ratelimit-backend.git@v2.0.1a5#egg=django-ratelimit-backend==2.0.1a5 # via -r requirements/edx/base.txt @@ -102,7 +101,7 @@ drf-yasg==1.20.0 # via -r requirements/edx/base.txt, edx-api-doc-tools edx-ace==1.1.0 # via -r requirements/edx/base.txt edx-analytics-data-api-client==0.17.0 # via -r requirements/edx/base.txt edx-api-doc-tools==1.4.0 # via -r requirements/edx/base.txt -edx-bulk-grades==0.8.8 # via -r requirements/edx/base.txt, staff-graded-xblock +edx-bulk-grades==0.8.9 # via -r requirements/edx/base.txt, staff-graded-xblock edx-ccx-keys==1.2.0 # via -r requirements/edx/base.txt edx-celeryutils==1.0.0 # via -r requirements/edx/base.txt, super-csv edx-completion==4.0.3 # via -r requirements/edx/base.txt @@ -135,7 +134,7 @@ enmerkar==0.7.1 # via -r requirements/edx/base.txt, enmerkar-underscor event-tracking==1.0.4 # via -r requirements/edx/base.txt, edx-event-routing-backends, edx-proctoring, edx-search execnet==1.8.0 # via pytest-xdist factory-boy==3.2.0 # via -c requirements/edx/../constraints.txt, -r requirements/edx/testing.in -faker==8.0.0 # via factory-boy +faker==8.1.0 # via factory-boy filelock==3.0.12 # via tox, virtualenv freezegun==0.3.12 # via -c requirements/edx/../constraints.txt, -r requirements/edx/testing.in fs-s3fs==0.1.8 # via -r requirements/edx/base.txt, django-pyfs @@ -151,7 +150,7 @@ html5lib==1.1 # via -r requirements/edx/base.txt, ora2 httpretty==0.9.7 # via -c requirements/edx/../constraints.txt, -r requirements/edx/testing.in icalendar==4.0.7 # via -r requirements/edx/base.txt idna==2.10 # via -r requirements/edx/base.txt, requests -importlib-metadata==1.7.0 # via -c requirements/edx/../constraints.txt, -r requirements/edx/coverage.txt, inflect +importlib-metadata==3.10.1 # via -r requirements/edx/coverage.txt, inflect, pytest-randomly inflect==3.0.2 # via -c requirements/edx/../constraints.txt, -r requirements/edx/coverage.txt, jinja2-pluralize inflection==0.5.1 # via -r requirements/edx/base.txt, drf-yasg iniconfig==1.1.1 # via pytest @@ -171,7 +170,7 @@ lazy-object-proxy==1.6.0 # via astroid lazy==1.4 # via -r requirements/edx/base.txt, acid-xblock, bok-choy, lti-consumer-xblock, ora2 libsass==0.10.0 # via -r requirements/edx/base.txt, ora2 loremipsum==1.0.5 # via -r requirements/edx/base.txt, ora2 -lti-consumer-xblock==2.7.1 # via -r requirements/edx/base.txt +lti-consumer-xblock==2.7.4 # via -r requirements/edx/base.txt lxml==4.5.0 # via -c requirements/edx/../constraints.txt, -r requirements/edx/base.txt, capa, edxval, lti-consumer-xblock, olxcleaner, ora2, pyquery, safe-lxml, xblock, xmlsec mailsnake==1.6.4 # via -r requirements/edx/base.txt mako==1.1.4 # via -r requirements/edx/base.txt, acid-xblock, lti-consumer-xblock, xblock-google-drive, xblock-utils @@ -188,7 +187,7 @@ mpmath==1.2.1 # via -r requirements/edx/base.txt, sympy mysqlclient==2.0.3 # via -r requirements/edx/base.txt newrelic==6.2.0.156 # via -r requirements/edx/base.txt, edx-django-utils nltk==3.6.1 # via -r requirements/edx/base.txt, chem -nodeenv==1.5.0 # via -r requirements/edx/base.txt +nodeenv==1.6.0 # via -r requirements/edx/base.txt numpy==1.20.2 # via -r requirements/edx/base.txt, chem, openedx-calc, scipy oauthlib==3.0.1 # via -c requirements/edx/../constraints.txt, -r requirements/edx/base.txt, django-oauth-toolkit, lti-consumer-xblock, requests-oauthlib, social-auth-core openedx-calc==2.0.1 # via -r requirements/edx/base.txt @@ -214,7 +213,7 @@ pyjwkest==1.4.2 # via -r requirements/edx/base.txt, edx-drf-extensions pyjwt[crypto]==1.7.1 # via -r requirements/edx/base.txt, drf-jwt, edx-rest-api-client, social-auth-core pylatexenc==2.10 # via -r requirements/edx/base.txt, olxcleaner pylint-celery==0.3 # via edx-lint -pylint-django==2.4.2 # via edx-lint +pylint-django==2.4.3 # via edx-lint pylint-plugin-utils==0.6 # via pylint-celery, pylint-django pylint==2.7.4 # via edx-lint, pylint-celery, pylint-django, pylint-plugin-utils pymongo==3.10.1 # via -c requirements/edx/../constraints.txt, -r requirements/edx/base.txt, edx-opaque-keys, event-tracking, mongodbproxy, mongoengine @@ -224,11 +223,11 @@ pyquery==1.4.3 # via -r requirements/edx/testing.in pysrt==1.1.2 # via -r requirements/edx/base.txt, edxval pytest-attrib==0.1.3 # via -r requirements/edx/testing.in pytest-cov==2.11.1 # via -r requirements/edx/testing.in -pytest-django==4.1.0 # via -r requirements/edx/testing.in +pytest-django==4.2.0 # via -r requirements/edx/testing.in pytest-forked==1.3.0 # via pytest-xdist pytest-json-report==1.2.4 # via -r requirements/edx/testing.in pytest-metadata==1.8.0 # via -r requirements/edx/testing.in, pytest-json-report -pytest-randomly==3.6.0 # via -r requirements/edx/testing.in +pytest-randomly==3.7.0 # via -r requirements/edx/testing.in pytest-xdist[psutil]==2.2.1 # via -r requirements/edx/testing.in pytest==6.2.3 # via -r requirements/edx/testing.in, pytest-attrib, pytest-cov, pytest-django, pytest-forked, pytest-json-report, pytest-metadata, pytest-randomly, pytest-xdist python-dateutil==2.4.0 # via -c requirements/edx/../constraints.txt, -r requirements/edx/base.txt, analytics-python, botocore, edx-ace, edx-drf-extensions, edx-enterprise, edx-event-routing-backends, edx-proctoring, faker, freezegun, icalendar, olxcleaner, ora2, xblock