diff --git a/openedx/features/enterprise_support/tests/test_utils.py b/openedx/features/enterprise_support/tests/test_utils.py index f73a3f9a72c77dc164148cb5a6b1a0f0de2b1de6..d0d5f67cce09da3334b248989fae8f9eff66c81d 100644 --- a/openedx/features/enterprise_support/tests/test_utils.py +++ b/openedx/features/enterprise_support/tests/test_utils.py @@ -6,9 +6,11 @@ import json import mock import ddt +from django.conf import settings from django.test import TestCase from django.test.utils import override_settings +from lms.djangoapps.branding.api import get_logo_url from openedx.core.djangolib.testing.utils import skip_unless_lms from openedx.core.djangoapps.waffle_utils.testutils import override_waffle_flag from openedx.features.enterprise_support.utils import ENTERPRISE_HEADER_LINKS, get_enterprise_learner_portal @@ -76,7 +78,7 @@ class TestEnterpriseUtils(TestCase): self.assertDictEqual(portal, { 'name': enterprise_customer_user.enterprise_customer.name, 'slug': enterprise_customer_user.enterprise_customer.slug, - 'logo': enterprise_customer_user.enterprise_customer.branding_configuration.logo.url, + 'logo': enterprise_customer_user.enterprise_customer.branding_configuration.logo, }) @override_waffle_flag(ENTERPRISE_HEADER_LINKS, True) @@ -98,7 +100,7 @@ class TestEnterpriseUtils(TestCase): self.assertDictEqual(portal, { 'name': enterprise_customer_user.enterprise_customer.name, 'slug': enterprise_customer_user.enterprise_customer.slug, - 'logo': None, + 'logo': settings.LMS_ROOT_URL + get_logo_url(), }) @override_waffle_flag(ENTERPRISE_HEADER_LINKS, True) @@ -132,7 +134,7 @@ class TestEnterpriseUtils(TestCase): self.assertDictEqual(portal, { 'name': enterprise_customer_user.enterprise_customer.name, 'slug': enterprise_customer_user.enterprise_customer.slug, - 'logo': enterprise_customer_user.enterprise_customer.branding_configuration.logo.url, + 'logo': enterprise_customer_user.enterprise_customer.branding_configuration.logo, }) @override_waffle_flag(ENTERPRISE_HEADER_LINKS, True) diff --git a/openedx/features/enterprise_support/utils.py b/openedx/features/enterprise_support/utils.py index 5884d58906ba4227a7e1ff4538818e8e3ede421c..048f0cf42567468c0e5857df40cd01916a17bd1a 100644 --- a/openedx/features/enterprise_support/utils.py +++ b/openedx/features/enterprise_support/utils.py @@ -10,7 +10,6 @@ from django.conf import settings from django.urls import NoReverseMatch, reverse from django.utils.translation import ugettext as _ from edx_django_utils.cache import TieredCache, get_cache_key -from enterprise.api.v1.serializers import EnterpriseCustomerBrandingConfigurationSerializer from enterprise.models import EnterpriseCustomerUser, EnterpriseCustomer from social_django.models import UserSocialAuth @@ -324,7 +323,7 @@ def get_enterprise_learner_portal(request): queryset = EnterpriseCustomerUser.objects.filter(**kwargs).prefetch_related( 'enterprise_customer', - 'enterprise_customer__branding_configuration', + 'enterprise_customer___branding_configuration', ) if not enterprise_customer_uuid: @@ -342,7 +341,7 @@ def get_enterprise_learner_portal(request): learner_portal_data = { 'name': enterprise_customer.name, 'slug': enterprise_customer.slug, - 'logo': enterprise_branding_configuration(enterprise_customer).get('logo'), + 'logo': enterprise_customer.branding_configuration.logo, } # Cache the result in the user's request session @@ -351,20 +350,6 @@ def get_enterprise_learner_portal(request): return None -def enterprise_branding_configuration(enterprise_customer_obj): - """ - Given an instance of ``EnterpriseCustomer``, returns a related - branding_configuration serialized dictionary if it exists, otherwise an empty dictionary. - """ - # We can use hasattr() on one-to-one relationships to avoid exception-catching: - # https://docs.djangoproject.com/en/2.2/topics/db/examples/one_to_one/ - if not hasattr(enterprise_customer_obj, 'branding_configuration'): - return {} - - branding_config = enterprise_customer_obj.branding_configuration - return EnterpriseCustomerBrandingConfigurationSerializer(branding_config).data - - def get_enterprise_learner_generic_name(request): """ Get a generic name concatenating the Enterprise Customer name and 'Learner'. diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 4a6a320a315fc98881b628dedf1ff42c67b61109..159d0f2343bc77a7844bf514284143fdced9e279 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -35,7 +35,7 @@ drf-yasg<1.17.1 # The team that owns this package will manually bump this package rather than having it pulled in automatically. # This is to allow them to better control its deployment and to do it in a process that works better # for them. -edx-enterprise==3.8.33 +edx-enterprise==3.8.35 # Upgrading to 2.12.0 breaks several test classes due to API changes, need to update our code accordingly factory-boy==2.8.1 diff --git a/requirements/edx-sandbox/py35.txt b/requirements/edx-sandbox/py35.txt index 34a11f9c2829f23430b0411afe60d27a2387b6d7..f22b9428a5192e6fb291619c9702817e3989e918 100644 --- a/requirements/edx-sandbox/py35.txt +++ b/requirements/edx-sandbox/py35.txt @@ -20,7 +20,7 @@ matplotlib==2.2.4 # via -c requirements/edx-sandbox/../constraints.txt, mpmath==1.1.0 # via sympy networkx==2.2 # via -r requirements/edx-sandbox/py35.in nltk==3.5 # via -r requirements/edx-sandbox/shared.txt, chem -numpy==1.16.5 # via -c requirements/edx-sandbox/../constraints.txt, -r requirements/edx-sandbox/py35.in, chem, matplotlib, openedx-calc, scipy +numpy==1.16.5 # via -c requirements/edx-sandbox/../constraints.txt, -r requirements/edx-sandbox/py35.in, chem, matplotlib, openedx-calc openedx-calc==1.0.9 # via -r requirements/edx-sandbox/py35.in pycparser==2.20 # via -r requirements/edx-sandbox/shared.txt, cffi pyparsing==2.2.0 # via -r requirements/edx-sandbox/py35.in, chem, matplotlib, openedx-calc diff --git a/requirements/edx/base.txt b/requirements/edx/base.txt index 58999772874f4c74852a3356ad67d4e5a458eb4d..23983e87591f232e856bd65d067198b2065650d5 100644 --- a/requirements/edx/base.txt +++ b/requirements/edx/base.txt @@ -98,7 +98,7 @@ edx-django-release-util==0.4.4 # via -r requirements/edx/base.in edx-django-sites-extensions==2.5.1 # via -r requirements/edx/base.in edx-django-utils==3.8.0 # via -r requirements/edx/base.in, django-config-models, edx-drf-extensions, edx-enterprise, edx-rest-api-client, edx-when edx-drf-extensions==6.2.0 # via -r requirements/edx/base.in, edx-completion, edx-enterprise, edx-organizations, edx-proctoring, edx-rbac, edx-when, edxval -edx-enterprise==3.8.33 # via -c requirements/edx/../constraints.txt, -r requirements/edx/base.in +edx-enterprise==3.8.35 # via -c requirements/edx/../constraints.txt, -r requirements/edx/base.in edx-i18n-tools==0.5.3 # via ora2 edx-milestones==0.3.0 # via -r requirements/edx/base.in edx-opaque-keys[django]==2.1.1 # via -r requirements/edx/paver.txt, edx-bulk-grades, edx-ccx-keys, edx-completion, edx-drf-extensions, edx-enterprise, edx-milestones, edx-organizations, edx-proctoring, edx-user-state-client, edx-when, lti-consumer-xblock, xmodule @@ -128,7 +128,6 @@ help-tokens==1.1.2 # via -r requirements/edx/base.in html5lib==1.1 # via -r requirements/edx/base.in, ora2 icalendar==4.0.7 # via -r requirements/edx/base.in idna==2.10 # via -r requirements/edx/paver.txt, requests -importlib-metadata==1.7.0 # via -c requirements/edx/../constraints.txt, -r requirements/edx/paver.txt, kombu, path inflection==0.5.1 # via drf-yasg ipaddress==1.0.23 # via -r requirements/edx/base.in isodate==0.6.0 # via python3-saml @@ -154,7 +153,6 @@ maxminddb==1.5.4 # via -c requirements/edx/../constraints.txt, geoip2 mock==3.0.5 # via -c requirements/edx/../constraints.txt, -r requirements/edx/paver.txt, xblock-drag-and-drop-v2, xblock-poll git+https://github.com/edx/MongoDBProxy.git@d92bafe9888d2940f647a7b2b2383b29c752f35a#egg=MongoDBProxy==0.1.0+edx.2 # via -r requirements/edx/github.in mongoengine==0.20.0 # via -r requirements/edx/base.in -more-itertools==8.5.0 # via -r requirements/edx/paver.txt, zipp mpmath==1.1.0 # via sympy mysqlclient==2.0.1 # via -r requirements/edx/base.in newrelic==5.20.1.150 # via -r requirements/edx/base.in, edx-django-utils @@ -246,7 +244,6 @@ xblock-utils==2.1.1 # via -r requirements/edx/base.in, edx-sga, lti-consum xblock==1.4.0 # via -r requirements/edx/base.in, acid-xblock, crowdsourcehinter-xblock, done-xblock, edx-completion, edx-sga, edx-user-state-client, edx-when, lti-consumer-xblock, ora2, rate-xblock, staff-graded-xblock, xblock-discussion, xblock-drag-and-drop-v2, xblock-google-drive, xblock-poll, xblock-utils xmlsec==1.3.8 # via python3-saml xss-utils==0.1.3 # via -r requirements/edx/base.in -zipp==1.0.0 # via -c requirements/edx/../constraints.txt, -r requirements/edx/paver.txt, importlib-metadata # The following packages are considered to be unsafe in a requirements file: # setuptools diff --git a/requirements/edx/coverage.txt b/requirements/edx/coverage.txt index da1c7f97494aa7f98281961478c6e3c00ae4eaf1..c001e72690f8fed6bcedcdf06520cbe9ef11f792 100644 --- a/requirements/edx/coverage.txt +++ b/requirements/edx/coverage.txt @@ -6,7 +6,7 @@ # coverage==5.3 # via -r requirements/edx/coverage.in diff-cover==4.0.1 # via -r requirements/edx/coverage.in -importlib-metadata==1.7.0 # via -c requirements/edx/../constraints.txt, inflect, pluggy +importlib-metadata==1.7.0 # via -c requirements/edx/../constraints.txt, inflect inflect==3.0.2 # via -c requirements/edx/../constraints.txt, jinja2-pluralize jinja2-pluralize==0.3.0 # via diff-cover jinja2==2.11.2 # via diff-cover, jinja2-pluralize diff --git a/requirements/edx/development.txt b/requirements/edx/development.txt index 3307f3dd24ff8a47059dfe75e0a296cfcd5d5a2a..5a84753a6b69aeb41a76ca8f1dc4bbd2f588e31e 100644 --- a/requirements/edx/development.txt +++ b/requirements/edx/development.txt @@ -109,7 +109,7 @@ edx-django-release-util==0.4.4 # via -r requirements/edx/testing.txt edx-django-sites-extensions==2.5.1 # via -r requirements/edx/testing.txt edx-django-utils==3.8.0 # via -r requirements/edx/testing.txt, django-config-models, edx-drf-extensions, edx-enterprise, edx-rest-api-client, edx-when edx-drf-extensions==6.2.0 # via -r requirements/edx/testing.txt, edx-completion, edx-enterprise, edx-organizations, edx-proctoring, edx-rbac, edx-when, edxval -edx-enterprise==3.8.33 # via -c requirements/edx/../constraints.txt, -r requirements/edx/testing.txt +edx-enterprise==3.8.35 # via -c requirements/edx/../constraints.txt, -r requirements/edx/testing.txt edx-i18n-tools==0.5.3 # via -r requirements/edx/testing.txt, ora2 edx-lint==1.5.2 # via -r requirements/edx/testing.txt edx-milestones==0.3.0 # via -r requirements/edx/testing.txt @@ -150,8 +150,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, jsonschema, kombu, path, pluggy, pytest, pytest-randomly, tox, virtualenv -importlib-resources==3.0.0 # via -r requirements/edx/testing.txt, virtualenv +importlib-metadata==1.7.0 # via -c requirements/edx/../constraints.txt, -r requirements/edx/testing.txt, inflect 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.0.1 # via -r requirements/edx/testing.txt, pytest @@ -199,7 +198,6 @@ ora2==2.9.18 # via -r requirements/edx/testing.txt packaging==20.4 # via -r requirements/edx/testing.txt, bleach, drf-yasg, pytest, sphinx, tox path.py==12.5.0 # via -r requirements/edx/testing.txt, edx-enterprise, edx-i18n-tools, ora2, staff-graded-xblock, xmodule path==13.1.0 # via -c requirements/edx/../constraints.txt, -r requirements/edx/testing.txt, path.py -pathlib2==2.3.5 # via -r requirements/edx/testing.txt, pytest pathtools==0.1.2 # via -r requirements/edx/testing.txt, watchdog paver==1.3.4 # via -r requirements/edx/testing.txt pbr==5.5.0 # via -r requirements/edx/testing.txt, stevedore @@ -268,7 +266,7 @@ semantic-version==2.8.5 # via -r requirements/edx/testing.txt, edx-drf-extensi shapely==1.7.1 # via -r requirements/edx/testing.txt simplejson==3.17.2 # via -r requirements/edx/testing.txt, sailthru-client, super-csv, xblock-utils singledispatch==3.4.0.3 # via -r requirements/edx/testing.txt -six==1.15.0 # via -r requirements/edx/pip-tools.txt, -r requirements/edx/testing.txt, analytics-python, astroid, bleach, bok-choy, chem, crowdsourcehinter-xblock, cryptography, django-countries, django-simple-history, django-statici18n, django-wiki, drf-yasg, edx-ace, edx-bulk-grades, edx-ccx-keys, edx-django-release-util, edx-drf-extensions, edx-enterprise, edx-i18n-tools, edx-lint, edx-milestones, edx-opaque-keys, edx-rbac, edx-search, edx-sphinx-theme, event-tracking, freezegun, fs, fs-s3fs, help-tokens, html5lib, httpretty, isodate, jsonschema, libsass, mock, openedx-calc, packaging, pathlib2, paver, pip-tools, pycontracts, pyjwkest, python-dateutil, python-memcached, python-swiftclient, singledispatch, social-auth-app-django, social-auth-core, sphinxcontrib-httpdomain, stevedore, tox, transifex-client, virtualenv, xblock +six==1.15.0 # via -r requirements/edx/pip-tools.txt, -r requirements/edx/testing.txt, analytics-python, astroid, bleach, bok-choy, chem, crowdsourcehinter-xblock, cryptography, django-countries, django-simple-history, django-statici18n, django-wiki, drf-yasg, edx-ace, edx-bulk-grades, edx-ccx-keys, edx-django-release-util, edx-drf-extensions, edx-enterprise, edx-i18n-tools, edx-lint, edx-milestones, edx-opaque-keys, edx-rbac, edx-search, edx-sphinx-theme, event-tracking, freezegun, fs, fs-s3fs, help-tokens, html5lib, httpretty, isodate, jsonschema, libsass, mock, openedx-calc, packaging, paver, pip-tools, pycontracts, pyjwkest, python-dateutil, python-memcached, python-swiftclient, singledispatch, social-auth-app-django, social-auth-core, sphinxcontrib-httpdomain, stevedore, tox, transifex-client, virtualenv, xblock slumber==0.7.1 # via -r requirements/edx/testing.txt, edx-bulk-grades, edx-enterprise, edx-rest-api-client smmap==3.0.4 # via -r requirements/edx/testing.txt, gitdb snowballstemmer==2.0.0 # via sphinx @@ -298,7 +296,6 @@ tox-battery==0.6.1 # via -r requirements/edx/testing.txt tox==3.20.1 # via -r requirements/edx/testing.txt, tox-battery tqdm==4.50.2 # via -r requirements/edx/testing.txt, nltk transifex-client==0.13.12 # via -r requirements/edx/testing.txt -typed-ast==1.4.1 # via -r requirements/edx/testing.txt, astroid ua-parser==0.10.0 # via -r requirements/edx/testing.txt, django-cookies-samesite unicodecsv==0.14.1 # via -r requirements/edx/testing.txt, edx-enterprise unidiff==0.6.0 # via -r requirements/edx/testing.txt, coverage-pytest-plugin @@ -320,7 +317,7 @@ xblock-utils==2.1.1 # via -r requirements/edx/testing.txt, edx-sga, lti-co xblock==1.4.0 # via -r requirements/edx/testing.txt, acid-xblock, crowdsourcehinter-xblock, done-xblock, edx-completion, edx-sga, edx-user-state-client, edx-when, lti-consumer-xblock, ora2, rate-xblock, staff-graded-xblock, xblock-discussion, xblock-drag-and-drop-v2, xblock-google-drive, xblock-poll, xblock-utils xmlsec==1.3.8 # via -r requirements/edx/testing.txt, python3-saml xss-utils==0.1.3 # via -r requirements/edx/testing.txt -zipp==1.0.0 # via -c requirements/edx/../constraints.txt, -r requirements/edx/testing.txt, importlib-metadata, importlib-resources +zipp==1.0.0 # via -c requirements/edx/../constraints.txt, -r requirements/edx/testing.txt, importlib-metadata # The following packages are considered to be unsafe in a requirements file: # setuptools diff --git a/requirements/edx/paver.txt b/requirements/edx/paver.txt index 7e35d16ab865b35d91e7576092bdd4949409e8f9..5caaf98cdf9f0cd026fe346991e24cc9a0a73d95 100644 --- a/requirements/edx/paver.txt +++ b/requirements/edx/paver.txt @@ -8,12 +8,10 @@ certifi==2020.6.20 # via requests chardet==3.0.4 # via requests edx-opaque-keys==2.1.1 # via -r requirements/edx/paver.in idna==2.10 # via requests -importlib-metadata==1.7.0 # via -c requirements/edx/../constraints.txt, path lazy==1.4 # via -r requirements/edx/paver.in libsass==0.10.0 # via -r requirements/edx/paver.in markupsafe==1.1.1 # via -r requirements/edx/paver.in mock==3.0.5 # via -c requirements/edx/../constraints.txt, -r requirements/edx/paver.in -more-itertools==8.5.0 # via zipp path==13.1.0 # via -c requirements/edx/../constraints.txt, -r requirements/edx/paver.in pathtools==0.1.2 # via watchdog paver==1.3.4 # via -r requirements/edx/paver.in @@ -27,4 +25,3 @@ stevedore==1.32.0 # via -c requirements/edx/../constraints.txt, -r requi urllib3==1.25.10 # via requests watchdog==0.10.3 # via -r requirements/edx/paver.in wrapt==1.11.2 # via -c requirements/edx/../constraints.txt, -r requirements/edx/paver.in -zipp==1.0.0 # via -c requirements/edx/../constraints.txt, importlib-metadata diff --git a/requirements/edx/testing.txt b/requirements/edx/testing.txt index 6720592ef619eba041e70b5ffe0cb414210bfc76..cb41f56a811f065e147568923d5fb848ebbe65be 100644 --- a/requirements/edx/testing.txt +++ b/requirements/edx/testing.txt @@ -106,7 +106,7 @@ edx-django-release-util==0.4.4 # via -r requirements/edx/base.txt edx-django-sites-extensions==2.5.1 # via -r requirements/edx/base.txt edx-django-utils==3.8.0 # via -r requirements/edx/base.txt, django-config-models, edx-drf-extensions, edx-enterprise, edx-rest-api-client, edx-when edx-drf-extensions==6.2.0 # via -r requirements/edx/base.txt, edx-completion, edx-enterprise, edx-organizations, edx-proctoring, edx-rbac, edx-when, edxval -edx-enterprise==3.8.33 # via -c requirements/edx/../constraints.txt, -r requirements/edx/base.txt +edx-enterprise==3.8.35 # via -c requirements/edx/../constraints.txt, -r requirements/edx/base.txt edx-i18n-tools==0.5.3 # via -r requirements/edx/base.txt, -r requirements/edx/testing.in, ora2 edx-lint==1.5.2 # via -r requirements/edx/testing.in edx-milestones==0.3.0 # via -r requirements/edx/base.txt @@ -145,8 +145,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/base.txt, -r requirements/edx/coverage.txt, inflect, kombu, path, pluggy, pytest, pytest-randomly, tox, virtualenv -importlib-resources==3.0.0 # via virtualenv +importlib-metadata==1.7.0 # via -c requirements/edx/../constraints.txt, -r requirements/edx/coverage.txt, inflect 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.0.1 # via pytest @@ -178,7 +177,7 @@ mccabe==0.6.1 # via pylint mock==3.0.5 # via -c requirements/edx/../constraints.txt, -r requirements/edx/base.txt, xblock-drag-and-drop-v2, xblock-poll git+https://github.com/edx/MongoDBProxy.git@d92bafe9888d2940f647a7b2b2383b29c752f35a#egg=MongoDBProxy==0.1.0+edx.2 # via -r requirements/edx/base.txt mongoengine==0.20.0 # via -r requirements/edx/base.txt -more-itertools==8.5.0 # via -r requirements/edx/base.txt, -r requirements/edx/coverage.txt, zipp +more-itertools==8.5.0 # via -r requirements/edx/coverage.txt, zipp mpmath==1.1.0 # via -r requirements/edx/base.txt, sympy mysqlclient==2.0.1 # via -r requirements/edx/base.txt newrelic==5.20.1.150 # via -r requirements/edx/base.txt, edx-django-utils @@ -191,7 +190,6 @@ ora2==2.9.18 # via -r requirements/edx/base.txt packaging==20.4 # via -r requirements/edx/base.txt, bleach, drf-yasg, pytest, tox path.py==12.5.0 # via -r requirements/edx/base.txt, edx-enterprise, edx-i18n-tools, ora2, staff-graded-xblock, xmodule path==13.1.0 # via -c requirements/edx/../constraints.txt, -r requirements/edx/base.txt, path.py -pathlib2==2.3.5 # via pytest pathtools==0.1.2 # via -r requirements/edx/base.txt, watchdog paver==1.3.4 # via -r requirements/edx/base.txt pbr==5.5.0 # via -r requirements/edx/base.txt, stevedore @@ -257,7 +255,7 @@ semantic-version==2.8.5 # via -r requirements/edx/base.txt, edx-drf-extensions shapely==1.7.1 # via -r requirements/edx/base.txt simplejson==3.17.2 # via -r requirements/edx/base.txt, sailthru-client, super-csv, xblock-utils singledispatch==3.4.0.3 # via -r requirements/edx/testing.in -six==1.15.0 # via -r requirements/edx/base.txt, analytics-python, astroid, bleach, bok-choy, chem, crowdsourcehinter-xblock, cryptography, django-countries, django-simple-history, django-statici18n, django-wiki, drf-yasg, edx-ace, edx-bulk-grades, edx-ccx-keys, edx-django-release-util, edx-drf-extensions, edx-enterprise, edx-i18n-tools, edx-lint, edx-milestones, edx-opaque-keys, edx-rbac, edx-search, event-tracking, freezegun, fs, fs-s3fs, help-tokens, html5lib, httpretty, isodate, libsass, mock, openedx-calc, packaging, pathlib2, paver, pycontracts, pyjwkest, python-dateutil, python-memcached, python-swiftclient, singledispatch, social-auth-app-django, social-auth-core, stevedore, tox, transifex-client, virtualenv, xblock +six==1.15.0 # via -r requirements/edx/base.txt, analytics-python, astroid, bleach, bok-choy, chem, crowdsourcehinter-xblock, cryptography, django-countries, django-simple-history, django-statici18n, django-wiki, drf-yasg, edx-ace, edx-bulk-grades, edx-ccx-keys, edx-django-release-util, edx-drf-extensions, edx-enterprise, edx-i18n-tools, edx-lint, edx-milestones, edx-opaque-keys, edx-rbac, edx-search, event-tracking, freezegun, fs, fs-s3fs, help-tokens, html5lib, httpretty, isodate, libsass, mock, openedx-calc, packaging, paver, pycontracts, pyjwkest, python-dateutil, python-memcached, python-swiftclient, singledispatch, social-auth-app-django, social-auth-core, stevedore, tox, transifex-client, virtualenv, xblock slumber==0.7.1 # via -r requirements/edx/base.txt, edx-bulk-grades, edx-enterprise, edx-rest-api-client smmap==3.0.4 # via gitdb social-auth-app-django==4.0.0 # via -r requirements/edx/base.txt @@ -277,7 +275,6 @@ tox-battery==0.6.1 # via -r requirements/edx/testing.in tox==3.20.1 # via -r requirements/edx/testing.in, tox-battery tqdm==4.50.2 # via -r requirements/edx/base.txt, nltk transifex-client==0.13.12 # via -r requirements/edx/testing.in -typed-ast==1.4.1 # via astroid ua-parser==0.10.0 # via -r requirements/edx/base.txt, django-cookies-samesite unicodecsv==0.14.1 # via -r requirements/edx/base.txt, edx-enterprise unidiff==0.6.0 # via -r requirements/edx/testing.in, coverage-pytest-plugin @@ -298,7 +295,7 @@ xblock-utils==2.1.1 # via -r requirements/edx/base.txt, edx-sga, lti-consu xblock==1.4.0 # via -r requirements/edx/base.txt, acid-xblock, crowdsourcehinter-xblock, done-xblock, edx-completion, edx-sga, edx-user-state-client, edx-when, lti-consumer-xblock, ora2, rate-xblock, staff-graded-xblock, xblock-discussion, xblock-drag-and-drop-v2, xblock-google-drive, xblock-poll, xblock-utils xmlsec==1.3.8 # via -r requirements/edx/base.txt, python3-saml xss-utils==0.1.3 # via -r requirements/edx/base.txt -zipp==1.0.0 # via -c requirements/edx/../constraints.txt, -r requirements/edx/base.txt, -r requirements/edx/coverage.txt, importlib-metadata, importlib-resources +zipp==1.0.0 # via -c requirements/edx/../constraints.txt, -r requirements/edx/coverage.txt, importlib-metadata # The following packages are considered to be unsafe in a requirements file: # setuptools