From e4b1dc46a9ccae73be1429afc0e09d27c3734124 Mon Sep 17 00:00:00 2001 From: Mohammad Ahtasham ul Hassan Date: Wed, 16 Feb 2022 16:24:21 +0500 Subject: [PATCH] chore: cleanup django32 --- .github/workflows/ci.yml | 7 +- Makefile | 10 ++- edxval/__init__.py | 2 +- edxval/api.py | 5 +- edxval/pacts/views.py | 2 +- edxval/tests/test_api.py | 8 +- edxval/urls.py | 40 ++++----- pylintrc | 11 +-- pylintrc_tweaks | 2 +- requirements/base.in | 4 +- requirements/ci.txt | 22 +++-- requirements/common_constraints.txt | 22 +++++ requirements/constraints.txt | 2 +- requirements/dev.txt | 133 +++++++++++++--------------- requirements/pip.in | 1 + requirements/pip.txt | 10 ++- requirements/quality.txt | 119 ++++++++++++------------- requirements/test.txt | 85 +++++++++--------- setup.py | 3 - tox.ini | 40 ++++----- urls.py | 8 +- 21 files changed, 268 insertions(+), 268 deletions(-) create mode 100755 requirements/common_constraints.txt diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b6be35a7..3c4bdd54 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: matrix: os: [ubuntu-20.04] python-version: ['3.8'] - toxenv: [django22, django30, django31, django32, quality] + toxenv: [django32, quality] steps: - uses: actions/checkout@v2 @@ -36,8 +36,8 @@ jobs: run: tox - name: Run Coverage - if: matrix.python-version == '3.8' && matrix.toxenv=='django22' - uses: codecov/codecov-action@v1 + if: matrix.python-version == '3.8' && matrix.toxenv=='django32' + uses: codecov/codecov-action@v2 with: flags: unittests fail_ci_if_error: true @@ -62,6 +62,7 @@ jobs: - name: Install Dependencies run: | + pip install "Django<4.0" pip install -r requirements/ci.txt pip install -r requirements/test.txt diff --git a/Makefile b/Makefile index 24561aa4..25169493 100644 --- a/Makefile +++ b/Makefile @@ -32,8 +32,14 @@ coverage: clean ## generate and view HTML coverage report coverage report html $(BROWSER) htmlcov/index.html -export CUSTOM_COMPILE_COMMAND = make upgrade -upgrade: ## update the requirements/*.txt files with the latest packages satisfying requirements/*.in +COMMON_CONSTRAINTS_TXT=requirements/common_constraints.txt +.PHONY: $(COMMON_CONSTRAINTS_TXT) +$(COMMON_CONSTRAINTS_TXT): + wget -O "$(@)" https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt || touch "$(@)" + + +upgrade: export CUSTOM_COMPILE_COMMAND=make upgrade +upgrade: $(COMMON_CONSTRAINTS_TXT) ## update the requirements/*.txt files with the latest packages satisfying requirements/*.in pip install -q pip-tools pip-compile --rebuild --upgrade --allow-unsafe -o requirements/pip.txt requirements/pip.in pip-compile --rebuild --upgrade -o requirements/dev.txt requirements/base.in requirements/dev.in requirements/quality.in requirements/test.in requirements/ci.in diff --git a/edxval/__init__.py b/edxval/__init__.py index 462c90dd..b76ef98c 100644 --- a/edxval/__init__.py +++ b/edxval/__init__.py @@ -2,4 +2,4 @@ init """ -__version__ = '2.1.1' +__version__ = '2.2.0' diff --git a/edxval/api.py b/edxval/api.py index b5628224..f631693c 100644 --- a/edxval/api.py +++ b/edxval/api.py @@ -994,9 +994,8 @@ def create_transcripts_xml(video_id, video_el, resource_fs, static_dir): static_file_dir = combine(resource_fs._sub_dir.split('/')[1], static_dir) # pylint: disable=protected-access except KeyError: logger.exception( - "VAL Transcript Export: Error creating static directory path for video {} in file system {}".format( - video_id, resource_fs - ) + "VAL Transcript Export: Error creating static directory path for video %s in file system %s", + video_id, resource_fs ) transcript_files_map = {} diff --git a/edxval/pacts/views.py b/edxval/pacts/views.py index 62570204..7c1cab4c 100644 --- a/edxval/pacts/views.py +++ b/edxval/pacts/views.py @@ -36,6 +36,6 @@ def provider_state(request): state = request_body.get('state') clear_database() if state in state_setup_mapping: - logger.info('Setting up provider state for state value: {}'.format(state)) + logger.info('Setting up provider state for state value: %s', state) state_setup_mapping[state]() return JsonResponse({'result': state}) diff --git a/edxval/tests/test_api.py b/edxval/tests/test_api.py index e3f95417..6907f862 100644 --- a/edxval/tests/test_api.py +++ b/edxval/tests/test_api.py @@ -78,6 +78,7 @@ class SortedVideoTestMixin: """ Test Mixin for testing api functions that sort the returned videos. """ + def _check_sort(self, api_func, sort_field, expected_ids_for_asc): """ Assert that sorting by given field returns videos in the expected @@ -295,6 +296,7 @@ class GetVideoInfoTest(TestCase): """ Tests for our `get_video_info` and `is_video_available` methods in api.py """ + def setUp(self): """ Creates EncodedVideo objects in database @@ -1038,6 +1040,7 @@ class ExportTest(TestCase): """ Tests export_to_xml method. """ + def setUp(self): super().setUp() mobile_profile = Profile.objects.create(profile_name=constants.PROFILE_MOBILE) @@ -1260,7 +1263,7 @@ def test_transcript_export(self): ) # Also verify the content of created transcript file. - for language_code in transcript_files.keys(): # pylint: disable=consider-iterating-dictionary + for language_code in transcript_files.keys(): expected_transcript_content = File( open(combine(expected_transcript_path, transcript_files[language_code]), 'rb') ).read() @@ -2624,6 +2627,7 @@ class TranscriptTest(TestCase): """ Tests to check transcript related functions. """ + def setUp(self): """ Creates video and video transcript objects. @@ -3135,6 +3139,7 @@ class TranscriptPreferencesTest(TestCase): """ TranscriptPreferences API Tests """ + def setUp(self): """ Tests setup @@ -3234,6 +3239,7 @@ class TranscripCredentialsStateTest(TestCase): """ ThirdPartyTranscriptCredentialsState Tests """ + def setUp(self): """ Tests setup diff --git a/edxval/urls.py b/edxval/urls.py index 2583cb05..cd48c945 100644 --- a/edxval/urls.py +++ b/edxval/urls.py @@ -2,42 +2,34 @@ Url file for django app edxval. """ from django.conf import settings -from django.conf.urls import url +from django.urls import path, re_path from edxval import views urlpatterns = [ - url(r'^videos/$', views.VideoList.as_view(), name='video-list'), - url( + path('videos/', views.VideoList.as_view(), name='video-list'), + re_path( r'^videos/(?P[-\w]+)$', views.VideoDetail.as_view(), name='video-detail' ), - url( - r'^videos/status/$', - views.VideoStatusView.as_view(), - name='video-status-update' - ), - url( - r'^videos/missing-hls/$', - views.HLSMissingVideoView.as_view(), - name='hls-missing-video' - ), - url( - r'^videos/video-transcripts/create/$', - views.VideoTranscriptView.as_view(), - name='create-video-transcript' - ), - url( - r'^videos/video-images/update/$', - views.VideoImagesView.as_view(), - name='update-video-images' - ), + path('videos/status/', views.VideoStatusView.as_view(), + name='video-status-update' + ), + path('videos/missing-hls/', views.HLSMissingVideoView.as_view(), + name='hls-missing-video' + ), + path('videos/video-transcripts/create/', views.VideoTranscriptView.as_view(), + name='create-video-transcript' + ), + path('videos/video-images/update/', views.VideoImagesView.as_view(), + name='update-video-images' + ), ] if getattr(settings, 'PROVIDER_STATES_SETUP_VIEW_URL', None): from edxval.pacts.views import provider_state - urlpatterns.append(url( + urlpatterns.append(re_path( r'^pact/provider_states/$', provider_state, name='provider-state-view' diff --git a/pylintrc b/pylintrc index ba404715..d2579134 100644 --- a/pylintrc +++ b/pylintrc @@ -64,7 +64,7 @@ # SERIOUSLY. # # ------------------------------ -# Generated by edx-lint version: 5.2.0 +# Generated by edx-lint version: 5.2.1 # ------------------------------ [MASTER] ignore = migrations @@ -347,15 +347,12 @@ disable = illegal-waffle-usage, apply-builtin, - arguments-renamed, backtick, bad-python3-import, basestring-builtin, buffer-builtin, cmp-builtin, coerce-builtin, - consider-using-with, - consider-using-dict-items, deprecated-itertools-function, deprecated-operator-function, deprecated-str-translate-call, @@ -363,7 +360,6 @@ disable = deprecated-sys-function, deprecated-types-field, deprecated-urllib-function, - django-not-configured, execfile-builtin, file-builtin, import-star-module-level, @@ -371,7 +367,6 @@ disable = intern-builtin, long-builtin, long-suffix, - logging-format-interpolation, no-absolute-import, non-ascii-bytes-literal, old-division, @@ -389,7 +384,7 @@ disable = unpacking-in-except, xrange-builtin, - logging-fstring-interpolation,,unicode-format-string + logging-fstring-interpolation,,unicode-format-string, consider-using-with, consider-using-dict-items, django-not-configured, consider-iterating-dictionary, arguments-renamed [REPORTS] output-format = text @@ -489,4 +484,4 @@ int-import-graph = [EXCEPTIONS] overgeneral-exceptions = Exception -# d35caa73d5e9cdd723db6da1cbbcb9a8350a0d67 +# 78bc3e16fc1c904ee9cb8b492042ab19d872e910 diff --git a/pylintrc_tweaks b/pylintrc_tweaks index 4e0727c5..e08677b4 100644 --- a/pylintrc_tweaks +++ b/pylintrc_tweaks @@ -8,4 +8,4 @@ max-line-length = 120 [MESSAGES CONTROL] # Disable unicode-format-string -disable+ = ,unicode-format-string \ No newline at end of file +disable+ = ,unicode-format-string, consider-using-with, consider-using-dict-items, django-not-configured, consider-iterating-dictionary, arguments-renamed diff --git a/requirements/base.in b/requirements/base.in index c72cf137..b2b46348 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -3,8 +3,8 @@ -c constraints.txt boto -Django>=1.11 -django-fernet-fields +Django +djfernet django-model-utils django-storages edx-drf-extensions diff --git a/requirements/ci.txt b/requirements/ci.txt index 2b49de3c..06cba59e 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -4,21 +4,19 @@ # # make upgrade # -backports.entry-points-selectable==1.1.1 - # via virtualenv certifi==2021.10.8 # via requests -charset-normalizer==2.0.8 +charset-normalizer==2.0.11 # via requests -coverage==6.2 +coverage==6.3.1 # via coveralls coveralls==3.3.1 # via -r requirements/ci.in -distlib==0.3.3 +distlib==0.3.4 # via virtualenv docopt==0.6.2 # via coveralls -filelock==3.4.0 +filelock==3.4.2 # via # tox # virtualenv @@ -26,15 +24,15 @@ idna==3.3 # via requests packaging==21.3 # via tox -platformdirs==2.4.0 +platformdirs==2.4.1 # via virtualenv pluggy==1.0.0 # via tox py==1.11.0 # via tox -pyparsing==3.0.6 +pyparsing==3.0.7 # via packaging -requests==2.26.0 +requests==2.27.1 # via coveralls six==1.16.0 # via @@ -42,13 +40,13 @@ six==1.16.0 # virtualenv toml==0.10.2 # via tox -tox==3.24.4 +tox==3.24.5 # via # -r requirements/ci.in # tox-battery tox-battery==0.6.1 # via -r requirements/ci.in -urllib3==1.26.7 +urllib3==1.26.8 # via requests -virtualenv==20.10.0 +virtualenv==20.13.1 # via tox diff --git a/requirements/common_constraints.txt b/requirements/common_constraints.txt new file mode 100755 index 00000000..7a77c826 --- /dev/null +++ b/requirements/common_constraints.txt @@ -0,0 +1,22 @@ +# A central location for most common version constraints +# (across edx repos) for pip-installation. +# +# Similar to other constraint files this file doesn't install any packages. +# It specifies version constraints that will be applied if a package is needed. +# When pinning something here, please provide an explanation of why it is a good +# idea to pin this package across all edx repos, Ideally, link to other information +# that will help people in the future to remove the pin when possible. +# Writing an issue against the offending project and linking to it here is good. +# +# Note: Changes to this file will automatically be used by other repos, referencing +# this file from Github directly. It does not require packaging in edx-lint. + + +# using LTS django version +Django<4.0 + +# elasticsearch>=7.14.0 includes breaking changes in it which caused issues in discovery upgrade process. +# elastic search changelog: https://www.elastic.co/guide/en/enterprise-search/master/release-notes-7.14.0.html +elasticsearch<7.14.0 + +setuptools<60 diff --git a/requirements/constraints.txt b/requirements/constraints.txt index b2316427..31de7b8c 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -9,4 +9,4 @@ # linking to it here is good. # Common constraints for edx repos --c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt +-c common_constraints.txt \ No newline at end of file diff --git a/requirements/dev.txt b/requirements/dev.txt index 97738471..07755698 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -4,22 +4,20 @@ # # make upgrade # -anyio==3.4.0 +anyio==3.5.0 # via starlette appdirs==1.4.4 # via fs -asgiref==3.4.1 +asgiref==3.5.0 # via # django # uvicorn -astroid==2.9.0 +astroid==2.9.3 # via # pylint # pylint-celery -attrs==21.2.0 +attrs==21.4.0 # via pytest -backports.entry-points-selectable==1.1.1 - # via virtualenv bleach==4.1.0 # via readme-renderer boto==2.49.0 @@ -32,7 +30,7 @@ chardet==4.0.0 # via # diff-cover # pysrt -charset-normalizer==2.0.8 +charset-normalizer==2.0.11 # via requests click==8.0.3 # via @@ -44,36 +42,34 @@ click==8.0.3 # uvicorn click-log==0.3.2 # via edx-lint -code-annotations==1.2.0 +code-annotations==1.3.0 # via # edx-lint # edx-toggles colorama==0.4.4 # via twine -coverage[toml]==6.2 +coverage[toml]==6.3.1 # via # -r requirements/test.in # coveralls # pytest-cov coveralls==3.3.1 # via -r requirements/ci.in -cryptography==36.0.0 +cryptography==36.0.1 # via - # django-fernet-fields + # djfernet # pyjwt - # secretstorage ddt==1.4.4 # via -r requirements/test.in -diff-cover==6.4.3 +diff-cover==6.4.4 # via -r requirements/dev.in -distlib==0.3.3 +distlib==0.3.4 # via virtualenv -django==3.2.9 +django==3.2.12 # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt + # -c requirements/common_constraints.txt # -r requirements/base.in # django-crum - # django-fernet-fields # django-model-utils # django-storages # djangorestframework @@ -85,28 +81,28 @@ django-crum==0.7.9 # via # edx-django-utils # edx-toggles -django-fernet-fields==0.6 - # via -r requirements/base.in django-model-utils==4.2.0 # via -r requirements/base.in django-storages==1.12.3 # via -r requirements/base.in -django-waffle==2.2.1 +django-waffle==2.3.0 # via # edx-django-utils # edx-drf-extensions # edx-toggles -djangorestframework==3.12.4 +djangorestframework==3.13.1 # via # drf-jwt # edx-drf-extensions +djfernet==0.7.4 + # via -r requirements/base.in docopt==0.6.2 # via coveralls docutils==0.18.1 # via readme-renderer -drf-jwt==1.19.1 +drf-jwt==1.19.2 # via edx-drf-extensions -edx-django-utils==4.4.0 +edx-django-utils==4.5.0 # via # edx-drf-extensions # edx-toggles @@ -114,27 +110,27 @@ edx-drf-extensions==8.0.1 # via -r requirements/base.in edx-lint==5.2.1 # via -r requirements/quality.in -edx-opaque-keys==2.2.2 +edx-opaque-keys==2.3.0 # via edx-drf-extensions -edx-toggles==4.2.0 +edx-toggles==4.3.1 # via -r requirements/base.in -fastapi==0.70.0 +fastapi==0.73.0 # via pact-python -filelock==3.4.0 +filelock==3.4.2 # via # tox # virtualenv -fs==2.4.14 +fs==2.4.15 # via -r requirements/test.in future==0.18.2 # via pyjwkest -h11==0.12.0 +h11==0.13.0 # via uvicorn idna==3.3 # via # anyio # requests -importlib-metadata==4.8.2 +importlib-metadata==4.10.1 # via # keyring # twine @@ -144,19 +140,15 @@ isort==5.10.1 # via # -r requirements/quality.in # pylint -jeepney==0.7.1 - # via - # keyring - # secretstorage jinja2==3.0.3 # via # code-annotations # diff-cover -keyring==23.4.0 +keyring==23.5.0 # via twine -lazy-object-proxy==1.6.0 +lazy-object-proxy==1.7.1 # via astroid -lxml==4.6.4 +lxml==4.7.1 # via -r requirements/base.in markupsafe==2.0.1 # via jinja2 @@ -164,24 +156,24 @@ mccabe==0.6.1 # via pylint mock==4.0.3 # via -r requirements/test.in -newrelic==7.2.4.171 +newrelic==7.4.0.172 # via edx-django-utils packaging==21.3 # via # bleach # pytest # tox -pact-python==1.4.5 +pact-python==1.5.0 # via -r requirements/test.in -pbr==5.8.0 +pbr==5.8.1 # via stevedore pep517==0.12.0 # via pip-tools -pip-tools==6.4.0 +pip-tools==6.5.0 # via -r requirements/dev.in pkginfo==1.8.2 # via twine -platformdirs==2.4.0 +platformdirs==2.4.1 # via # pylint # virtualenv @@ -190,7 +182,7 @@ pluggy==1.0.0 # diff-cover # pytest # tox -psutil==5.8.0 +psutil==5.9.0 # via # edx-django-utils # pact-python @@ -202,13 +194,13 @@ pycodestyle==2.8.0 # via -r requirements/quality.in pycparser==2.21 # via cffi -pycryptodomex==3.11.0 +pycryptodomex==3.14.1 # via pyjwkest -pydantic==1.8.2 +pydantic==1.9.0 # via fastapi pydocstyle==6.1.1 # via -r requirements/quality.in -pygments==2.10.0 +pygments==2.11.2 # via # diff-cover # readme-renderer @@ -218,7 +210,7 @@ pyjwt[crypto]==2.3.0 # via # drf-jwt # edx-drf-extensions -pylint==2.12.1 +pylint==2.12.2 # via # edx-lint # pylint-celery @@ -226,25 +218,25 @@ pylint==2.12.1 # pylint-plugin-utils pylint-celery==0.3 # via edx-lint -pylint-django==2.4.4 +pylint-django==2.5.0 # via edx-lint -pylint-plugin-utils==0.6 +pylint-plugin-utils==0.7 # via # pylint-celery # pylint-django -pymongo==4.0 +pymongo==3.12.3 # via edx-opaque-keys -pyparsing==3.0.6 +pyparsing==3.0.7 # via packaging pysrt==1.1.2 # via -r requirements/base.in -pytest==6.2.5 +pytest==7.0.0 # via # pytest-cov # pytest-django pytest-cov==3.0.0 # via -r requirements/test.in -pytest-django==4.5.1 +pytest-django==4.5.2 # via -r requirements/test.in python-dateutil==2.8.2 # via edx-drf-extensions @@ -253,12 +245,13 @@ python-slugify==5.0.2 pytz==2021.3 # via # django + # djangorestframework # fs pyyaml==6.0 # via code-annotations -readme-renderer==30.0 +readme-renderer==32.0 # via twine -requests==2.26.0 +requests==2.27.1 # via # coveralls # edx-drf-extensions @@ -269,13 +262,11 @@ requests==2.26.0 # twine requests-toolbelt==0.9.1 # via twine -responses==0.16.0 +responses==0.18.0 # via -r requirements/test.in -rfc3986==1.5.0 +rfc3986==2.0.0 # via twine -secretstorage==3.3.1 - # via keyring -semantic-version==2.8.5 +semantic-version==2.9.0 # via edx-drf-extensions six==1.16.0 # via @@ -286,7 +277,6 @@ six==1.16.0 # pact-python # pyjwkest # python-dateutil - # responses # tox # virtualenv sniffio==1.2.0 @@ -295,7 +285,7 @@ snowballstemmer==2.2.0 # via pydocstyle sqlparse==0.4.2 # via django -starlette==0.16.0 +starlette==0.17.1 # via fastapi stevedore==3.5.0 # via @@ -307,13 +297,13 @@ text-unidecode==1.3 toml==0.10.2 # via # pylint - # pytest # tox -tomli==1.2.2 +tomli==2.0.0 # via # coverage # pep517 -tox==3.24.4 + # pytest +tox==3.24.5 # via # -r requirements/ci.in # tox-battery @@ -321,29 +311,30 @@ tox-battery==0.6.1 # via -r requirements/ci.in tqdm==4.62.3 # via twine -twine==3.7.0 +twine==3.8.0 # via -r requirements/quality.in typing-extensions==4.0.1 # via # astroid # pydantic # pylint -urllib3==1.26.7 +urllib3==1.26.8 # via # pact-python # requests # responses -uvicorn==0.15.0 + # twine +uvicorn==0.17.4 # via pact-python -virtualenv==20.10.0 +virtualenv==20.13.1 # via tox webencodings==0.5.1 # via bleach -wheel==0.37.0 +wheel==0.37.1 # via pip-tools wrapt==1.13.3 # via astroid -zipp==3.6.0 +zipp==3.7.0 # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/pip.in b/requirements/pip.in index 7b68e86c..68caafe7 100644 --- a/requirements/pip.in +++ b/requirements/pip.in @@ -1,4 +1,5 @@ # Core dependencies for installing other packages +-c constraints.txt pip setuptools diff --git a/requirements/pip.txt b/requirements/pip.txt index 6638848f..0e76be76 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -4,11 +4,13 @@ # # make upgrade # -wheel==0.37.0 +wheel==0.37.1 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==21.3.1 - # via -r requirements/pip.in -setuptools==59.4.0 +pip==22.0.3 # via -r requirements/pip.in +setuptools==59.8.0 + # via + # -c requirements/common_constraints.txt + # -r requirements/pip.in diff --git a/requirements/quality.txt b/requirements/quality.txt index d3db5487..ed38f0d9 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -4,19 +4,19 @@ # # make upgrade # -anyio==3.4.0 +anyio==3.5.0 # via starlette appdirs==1.4.4 # via fs -asgiref==3.4.1 +asgiref==3.5.0 # via # django # uvicorn -astroid==2.9.0 +astroid==2.9.3 # via # pylint # pylint-celery -attrs==21.2.0 +attrs==21.4.0 # via pytest bleach==4.1.0 # via readme-renderer @@ -28,7 +28,7 @@ cffi==1.15.0 # via cryptography chardet==4.0.0 # via pysrt -charset-normalizer==2.0.8 +charset-normalizer==2.0.11 # via requests click==8.0.3 # via @@ -39,29 +39,27 @@ click==8.0.3 # uvicorn click-log==0.3.2 # via edx-lint -code-annotations==1.2.0 +code-annotations==1.3.0 # via # edx-lint # edx-toggles colorama==0.4.4 # via twine -coverage[toml]==6.2 +coverage[toml]==6.3.1 # via # -r requirements/test.in # pytest-cov -cryptography==36.0.0 +cryptography==36.0.1 # via - # django-fernet-fields + # djfernet # pyjwt - # secretstorage ddt==1.4.4 # via -r requirements/test.in -django==3.2.9 +django==3.2.12 # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt + # -c requirements/common_constraints.txt # -r requirements/base.in # django-crum - # django-fernet-fields # django-model-utils # django-storages # djangorestframework @@ -73,26 +71,26 @@ django-crum==0.7.9 # via # edx-django-utils # edx-toggles -django-fernet-fields==0.6 - # via -r requirements/base.in django-model-utils==4.2.0 # via -r requirements/base.in django-storages==1.12.3 # via -r requirements/base.in -django-waffle==2.2.1 +django-waffle==2.3.0 # via # edx-django-utils # edx-drf-extensions # edx-toggles -djangorestframework==3.12.4 +djangorestframework==3.13.1 # via # drf-jwt # edx-drf-extensions +djfernet==0.7.4 + # via -r requirements/base.in docutils==0.18.1 # via readme-renderer -drf-jwt==1.19.1 +drf-jwt==1.19.2 # via edx-drf-extensions -edx-django-utils==4.4.0 +edx-django-utils==4.5.0 # via # edx-drf-extensions # edx-toggles @@ -100,23 +98,23 @@ edx-drf-extensions==8.0.1 # via -r requirements/base.in edx-lint==5.2.1 # via -r requirements/quality.in -edx-opaque-keys==2.2.2 +edx-opaque-keys==2.3.0 # via edx-drf-extensions -edx-toggles==4.2.0 +edx-toggles==4.3.1 # via -r requirements/base.in -fastapi==0.70.0 +fastapi==0.73.0 # via pact-python -fs==2.4.14 +fs==2.4.15 # via -r requirements/test.in future==0.18.2 # via pyjwkest -h11==0.12.0 +h11==0.13.0 # via uvicorn idna==3.3 # via # anyio # requests -importlib-metadata==4.8.2 +importlib-metadata==4.10.1 # via # keyring # twine @@ -126,17 +124,13 @@ isort==5.10.1 # via # -r requirements/quality.in # pylint -jeepney==0.7.1 - # via - # keyring - # secretstorage jinja2==3.0.3 # via code-annotations -keyring==23.4.0 +keyring==23.5.0 # via twine -lazy-object-proxy==1.6.0 +lazy-object-proxy==1.7.1 # via astroid -lxml==4.6.4 +lxml==4.7.1 # via -r requirements/base.in markupsafe==2.0.1 # via jinja2 @@ -144,23 +138,23 @@ mccabe==0.6.1 # via pylint mock==4.0.3 # via -r requirements/test.in -newrelic==7.2.4.171 +newrelic==7.4.0.172 # via edx-django-utils packaging==21.3 # via # bleach # pytest -pact-python==1.4.5 +pact-python==1.5.0 # via -r requirements/test.in -pbr==5.8.0 +pbr==5.8.1 # via stevedore pkginfo==1.8.2 # via twine -platformdirs==2.4.0 +platformdirs==2.4.1 # via pylint pluggy==1.0.0 # via pytest -psutil==5.8.0 +psutil==5.9.0 # via # edx-django-utils # pact-python @@ -170,13 +164,13 @@ pycodestyle==2.8.0 # via -r requirements/quality.in pycparser==2.21 # via cffi -pycryptodomex==3.11.0 +pycryptodomex==3.14.1 # via pyjwkest -pydantic==1.8.2 +pydantic==1.9.0 # via fastapi pydocstyle==6.1.1 # via -r requirements/quality.in -pygments==2.10.0 +pygments==2.11.2 # via readme-renderer pyjwkest==1.4.2 # via edx-drf-extensions @@ -184,7 +178,7 @@ pyjwt[crypto]==2.3.0 # via # drf-jwt # edx-drf-extensions -pylint==2.12.1 +pylint==2.12.2 # via # edx-lint # pylint-celery @@ -192,25 +186,25 @@ pylint==2.12.1 # pylint-plugin-utils pylint-celery==0.3 # via edx-lint -pylint-django==2.4.4 +pylint-django==2.5.0 # via edx-lint -pylint-plugin-utils==0.6 +pylint-plugin-utils==0.7 # via # pylint-celery # pylint-django -pymongo==4.0 +pymongo==3.12.3 # via edx-opaque-keys -pyparsing==3.0.6 +pyparsing==3.0.7 # via packaging pysrt==1.1.2 # via -r requirements/base.in -pytest==6.2.5 +pytest==7.0.0 # via # pytest-cov # pytest-django pytest-cov==3.0.0 # via -r requirements/test.in -pytest-django==4.5.1 +pytest-django==4.5.2 # via -r requirements/test.in python-dateutil==2.8.2 # via edx-drf-extensions @@ -219,12 +213,13 @@ python-slugify==5.0.2 pytz==2021.3 # via # django + # djangorestframework # fs pyyaml==6.0 # via code-annotations -readme-renderer==30.0 +readme-renderer==32.0 # via twine -requests==2.26.0 +requests==2.27.1 # via # edx-drf-extensions # pact-python @@ -234,13 +229,11 @@ requests==2.26.0 # twine requests-toolbelt==0.9.1 # via twine -responses==0.16.0 +responses==0.18.0 # via -r requirements/test.in -rfc3986==1.5.0 +rfc3986==2.0.0 # via twine -secretstorage==3.3.1 - # via keyring -semantic-version==2.8.5 +semantic-version==2.9.0 # via edx-drf-extensions six==1.16.0 # via @@ -251,14 +244,13 @@ six==1.16.0 # pact-python # pyjwkest # python-dateutil - # responses sniffio==1.2.0 # via anyio snowballstemmer==2.2.0 # via pydocstyle sqlparse==0.4.2 # via django -starlette==0.16.0 +starlette==0.17.1 # via fastapi stevedore==3.5.0 # via @@ -268,32 +260,33 @@ stevedore==3.5.0 text-unidecode==1.3 # via python-slugify toml==0.10.2 + # via pylint +tomli==2.0.0 # via - # pylint + # coverage # pytest -tomli==1.2.2 - # via coverage tqdm==4.62.3 # via twine -twine==3.7.0 +twine==3.8.0 # via -r requirements/quality.in typing-extensions==4.0.1 # via # astroid # pydantic # pylint -urllib3==1.26.7 +urllib3==1.26.8 # via # pact-python # requests # responses -uvicorn==0.15.0 + # twine +uvicorn==0.17.4 # via pact-python webencodings==0.5.1 # via bleach wrapt==1.13.3 # via astroid -zipp==3.6.0 +zipp==3.7.0 # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/test.txt b/requirements/test.txt index f572ee1b..ed824743 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -4,15 +4,15 @@ # # make upgrade # -anyio==3.4.0 +anyio==3.5.0 # via starlette appdirs==1.4.4 # via fs -asgiref==3.4.1 +asgiref==3.5.0 # via # django # uvicorn -attrs==21.2.0 +attrs==21.4.0 # via pytest boto==2.49.0 # via -r requirements/base.in @@ -22,30 +22,29 @@ cffi==1.15.0 # via cryptography chardet==4.0.0 # via pysrt -charset-normalizer==2.0.8 +charset-normalizer==2.0.11 # via requests click==8.0.3 # via # code-annotations # pact-python # uvicorn -code-annotations==1.2.0 +code-annotations==1.3.0 # via edx-toggles -coverage[toml]==6.2 +coverage[toml]==6.3.1 # via # -r requirements/test.in # pytest-cov -cryptography==36.0.0 +cryptography==36.0.1 # via - # django-fernet-fields + # djfernet # pyjwt ddt==1.4.4 # via -r requirements/test.in # via - # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt + # -c requirements/common_constraints.txt # -r requirements/base.in # django-crum - # django-fernet-fields # django-model-utils # django-storages # djangorestframework @@ -57,40 +56,40 @@ django-crum==0.7.9 # via # edx-django-utils # edx-toggles -django-fernet-fields==0.6 - # via -r requirements/base.in django-model-utils==4.2.0 # via -r requirements/base.in django-storages==1.12.3 # via -r requirements/base.in -django-waffle==2.2.1 +django-waffle==2.3.0 # via # edx-django-utils # edx-drf-extensions # edx-toggles -djangorestframework==3.12.4 +djangorestframework==3.13.1 # via # drf-jwt # edx-drf-extensions -drf-jwt==1.19.1 +djfernet==0.7.4 + # via -r requirements/base.in +drf-jwt==1.19.2 # via edx-drf-extensions -edx-django-utils==4.4.0 +edx-django-utils==4.5.0 # via # edx-drf-extensions # edx-toggles edx-drf-extensions==8.0.1 # via -r requirements/base.in -edx-opaque-keys==2.2.2 +edx-opaque-keys==2.3.0 # via edx-drf-extensions -edx-toggles==4.2.0 +edx-toggles==4.3.1 # via -r requirements/base.in -fastapi==0.70.0 +fastapi==0.73.0 # via pact-python -fs==2.4.14 +fs==2.4.15 # via -r requirements/test.in future==0.18.2 # via pyjwkest -h11==0.12.0 +h11==0.13.0 # via uvicorn idna==3.3 # via @@ -100,23 +99,23 @@ iniconfig==1.1.1 # via pytest jinja2==3.0.3 # via code-annotations -lxml==4.6.4 +lxml==4.7.1 # via -r requirements/base.in markupsafe==2.0.1 # via jinja2 mock==4.0.3 # via -r requirements/test.in -newrelic==7.2.4.171 +newrelic==7.4.0.172 # via edx-django-utils packaging==21.3 # via pytest -pact-python==1.4.5 +pact-python==1.5.0 # via -r requirements/test.in -pbr==5.8.0 +pbr==5.8.1 # via stevedore pluggy==1.0.0 # via pytest -psutil==5.8.0 +psutil==5.9.0 # via # edx-django-utils # pact-python @@ -124,9 +123,9 @@ py==1.11.0 # via pytest pycparser==2.21 # via cffi -pycryptodomex==3.11.0 +pycryptodomex==3.14.1 # via pyjwkest -pydantic==1.8.2 +pydantic==1.9.0 # via fastapi pyjwkest==1.4.2 # via edx-drf-extensions @@ -134,19 +133,19 @@ pyjwt[crypto]==2.3.0 # via # drf-jwt # edx-drf-extensions -pymongo==4.0 +pymongo==3.12.3 # via edx-opaque-keys -pyparsing==3.0.6 +pyparsing==3.0.7 # via packaging pysrt==1.1.2 # via -r requirements/base.in -pytest==6.2.5 +pytest==7.0.0 # via # pytest-cov # pytest-django pytest-cov==3.0.0 # via -r requirements/test.in -pytest-django==4.5.1 +pytest-django==4.5.2 # via -r requirements/test.in python-dateutil==2.8.2 # via edx-drf-extensions @@ -155,18 +154,19 @@ python-slugify==5.0.2 pytz==2021.3 # via # django + # djangorestframework # fs pyyaml==6.0 # via code-annotations -requests==2.26.0 +requests==2.27.1 # via # edx-drf-extensions # pact-python # pyjwkest # responses -responses==0.16.0 +responses==0.18.0 # via -r requirements/test.in -semantic-version==2.8.5 +semantic-version==2.9.0 # via edx-drf-extensions six==1.16.0 # via @@ -175,12 +175,11 @@ six==1.16.0 # pact-python # pyjwkest # python-dateutil - # responses sniffio==1.2.0 # via anyio sqlparse==0.4.2 # via django -starlette==0.16.0 +starlette==0.17.1 # via fastapi stevedore==3.5.0 # via @@ -189,18 +188,18 @@ stevedore==3.5.0 # edx-opaque-keys text-unidecode==1.3 # via python-slugify -toml==0.10.2 - # via pytest -tomli==1.2.2 - # via coverage +tomli==2.0.0 + # via + # coverage + # pytest typing-extensions==4.0.1 # via pydantic -urllib3==1.26.7 +urllib3==1.26.8 # via # pact-python # requests # responses -uvicorn==0.15.0 +uvicorn==0.17.4 # via pact-python # The following packages are considered to be unsafe in a requirements file: diff --git a/setup.py b/setup.py index ad9d99d0..1d63fe24 100644 --- a/setup.py +++ b/setup.py @@ -88,9 +88,6 @@ def get_version(*file_paths): 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.8', 'Framework :: Django', - 'Framework :: Django :: 2.2', - 'Framework :: Django :: 3.0', - 'Framework :: Django :: 3.1', 'Framework :: Django :: 3.2', ], packages=PACKAGES, diff --git a/tox.ini b/tox.ini index daeb0ecb..d7cae15b 100644 --- a/tox.ini +++ b/tox.ini @@ -1,28 +1,26 @@ [tox] -envlist = py38-django{22,30,31,32}, quality +envlist = py38-django{32}, quality [testenv] -deps = - django22: Django>=2.2,<2.3 - django30: Django>=3.0,<3.1 - django31: Django>=3.1,<3.2 - django32: Django>=3.2,<3.3 - -r{toxinidir}/requirements/test.txt -commands = - python -Wd -m pytest {posargs} +deps = + django32: Django>=3.2,<4.0 + django40: Django>=4.0,<4.1 + -r{toxinidir}/requirements/test.txt +commands = + python -Wd -m pytest {posargs} [testenv:quality] basepython = python3.8 -whitelist_externals = - make -deps = - -r{toxinidir}/requirements/quality.txt -commands = - pylint edxval - pycodestyle edxval - pydocstyle edxval - isort --check-only edxval manage.py setup.py - make selfcheck - python setup.py sdist bdist_wheel - twine check dist/* +whitelist_externals = + make +deps = + -r{toxinidir}/requirements/quality.txt +commands = + pylint edxval + pycodestyle edxval + pydocstyle edxval + isort --check-only edxval manage.py setup.py + make selfcheck + python setup.py sdist bdist_wheel + twine check dist/* diff --git a/urls.py b/urls.py index 08b1eba3..7c1cde07 100644 --- a/urls.py +++ b/urls.py @@ -1,13 +1,13 @@ -from django.conf.urls import include, url from django.contrib import admin +from django.urls import include, path urlpatterns = [ # Django Admin - url(r'^admin/', admin.site.urls), + path('admin/', admin.site.urls), # Allow Django Rest Framework Auth login - url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')), + path('api-auth/', include('rest_framework.urls', namespace='rest_framework')), # edx-val - url(r'^edxval/', include('edxval.urls')) + path('edxval/', include('edxval.urls')) ]