diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0e49746d..d724382e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.8", "3.11"] + python-version: ["3.8", "3.11", "3.12"] django-version: ["pinned"] steps: - uses: actions/checkout@v2 @@ -38,7 +38,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.8", "3.11"] + python-version: ["3.8", "3.11", "3.12"] steps: - uses: actions/checkout@v2 - uses: actions/setup-python@v2 diff --git a/license_manager/apps/subscriptions/models.py b/license_manager/apps/subscriptions/models.py index 2e5a543b..72719692 100644 --- a/license_manager/apps/subscriptions/models.py +++ b/license_manager/apps/subscriptions/models.py @@ -914,7 +914,7 @@ def get_renewed_plan_title(self): return self.renewed_plan_title return '{prior_title} - Renewal {activation_year}'.format( prior_title=self.prior_subscription_plan.title, - activation_year=self.effective_date.year, + activation_year=self.effective_date.year, # pylint-disable: no-member ) def __str__(self): diff --git a/license_manager/apps/subscriptions/rules.py b/license_manager/apps/subscriptions/rules.py index 0823d5c2..d49d88b6 100644 --- a/license_manager/apps/subscriptions/rules.py +++ b/license_manager/apps/subscriptions/rules.py @@ -51,7 +51,6 @@ def has_explicit_access_to_subscriptions_admin(user, enterprise_customer_uuid): str(enterprise_customer_uuid), ) - has_admin_access = has_implicit_access_to_subscriptions_admin | has_explicit_access_to_subscriptions_admin rules.add_perm( constants.SUBSCRIPTIONS_ADMIN_ACCESS_PERMISSION, diff --git a/pylintrc_tweaks b/pylintrc_tweaks index 26715e0e..6a9c5777 100644 --- a/pylintrc_tweaks +++ b/pylintrc_tweaks @@ -18,5 +18,7 @@ disable+ = consider-using-f-string, missing-module-docstring, missing-class-docstring, + missing-timeout, + unsupported-binary-operation, useless-option-value, unknown-option-value, diff --git a/requirements/base.txt b/requirements/base.txt index 0a160676..6671dc57 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -32,13 +32,13 @@ backports-zoneinfo[tzdata]==0.2.1 ; python_version < "3.9" # kombu billiard==4.2.0 # via celery -boto3==1.34.84 +boto3==1.34.87 # via django-ses -botocore==1.34.84 +botocore==1.34.87 # via # boto3 # s3transfer -celery==5.3.6 +celery==5.4.0 # via # -r requirements/base.in # django-celery-results @@ -207,7 +207,7 @@ monotonic==1.6 # via analytics-python mysqlclient==2.2.4 # via -r requirements/base.in -newrelic==9.8.0 +newrelic==9.9.0 # via edx-django-utils oauthlib==3.2.2 # via diff --git a/requirements/dev.txt b/requirements/dev.txt index 1ca48765..ec3402a2 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -16,9 +16,8 @@ asgiref==3.8.1 # django # django-cors-headers # django-simple-history -astroid==2.11.7 +astroid==3.1.0 # via - # -c requirements/constraints.txt # -r requirements/validation.txt # pylint # pylint-celery @@ -47,11 +46,11 @@ billiard==4.2.0 # via # -r requirements/validation.txt # celery -boto3==1.34.84 +boto3==1.34.87 # via # -r requirements/validation.txt # django-ses -botocore==1.34.84 +botocore==1.34.87 # via # -r requirements/validation.txt # boto3 @@ -60,7 +59,7 @@ build==1.2.1 # via # -r requirements/pip-tools.txt # pip-tools -celery==5.3.6 +celery==5.4.0 # via # -r requirements/validation.txt # django-celery-results @@ -247,10 +246,8 @@ edx-drf-extensions==10.3.0 # edx-rbac edx-i18n-tools==1.5.0 # via -r requirements/validation.txt -edx-lint==5.2.5 - # via - # -c requirements/constraints.txt - # -r requirements/validation.txt +edx-lint==5.3.6 + # via -r requirements/validation.txt edx-opaque-keys==2.5.1 # via # -r requirements/validation.txt @@ -261,19 +258,19 @@ edx-rest-api-client==5.7.0 # via -r requirements/validation.txt edx-toggles==5.2.0 # via -r requirements/validation.txt -exceptiongroup==1.2.0 +exceptiongroup==1.2.1 # via # -r requirements/validation.txt # pytest factory-boy==3.3.0 # via -r requirements/validation.txt -faker==24.9.0 +faker==24.11.0 # via # -r requirements/validation.txt # factory-boy freezegun==1.4.0 # via -r requirements/validation.txt -gunicorn==21.2.0 +gunicorn==22.0.0 # via -r requirements/dev.in idna==3.7 # via @@ -335,10 +332,6 @@ kombu==5.3.7 # via # -r requirements/validation.txt # celery -lazy-object-proxy==1.10.0 - # via - # -r requirements/validation.txt - # astroid lxml==5.2.1 # via # -r requirements/validation.txt @@ -359,7 +352,7 @@ more-itertools==10.2.0 # via inflect mysqlclient==2.2.4 # via -r requirements/validation.txt -newrelic==9.8.0 +newrelic==9.9.0 # via # -r requirements/validation.txt # edx-django-utils @@ -434,9 +427,8 @@ pyjwt[crypto]==2.8.0 # edx-drf-extensions # edx-rest-api-client # social-auth-core -pylint==2.14.5 +pylint==3.1.0 # via - # -c requirements/constraints.txt # -r requirements/validation.txt # edx-lint # pylint-celery @@ -639,11 +631,6 @@ wheel==0.43.0 # via # -r requirements/pip-tools.txt # pip-tools -wrapt==1.11.2 - # via - # -c requirements/constraints.txt - # -r requirements/validation.txt - # astroid zipp==3.18.1 # via # -r requirements/pip-tools.txt diff --git a/requirements/doc.txt b/requirements/doc.txt index a0a0b5a5..9685060a 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -20,9 +20,8 @@ asgiref==3.8.1 # django # django-cors-headers # django-simple-history -astroid==2.11.7 +astroid==3.1.0 # via - # -c requirements/constraints.txt # -r requirements/test.txt # pylint # pylint-celery @@ -57,16 +56,16 @@ billiard==4.2.0 # via # -r requirements/test.txt # celery -boto3==1.34.84 +boto3==1.34.87 # via # -r requirements/test.txt # django-ses -botocore==1.34.84 +botocore==1.34.87 # via # -r requirements/test.txt # boto3 # s3transfer -celery==5.3.6 +celery==5.4.0 # via # -r requirements/test.txt # django-celery-results @@ -246,10 +245,8 @@ edx-drf-extensions==10.3.0 # via # -r requirements/test.txt # edx-rbac -edx-lint==5.2.5 - # via - # -c requirements/constraints.txt - # -r requirements/test.txt +edx-lint==5.3.6 + # via -r requirements/test.txt edx-opaque-keys==2.5.1 # via # -r requirements/test.txt @@ -260,13 +257,13 @@ edx-rest-api-client==5.7.0 # via -r requirements/test.txt edx-toggles==5.2.0 # via -r requirements/test.txt -exceptiongroup==1.2.0 +exceptiongroup==1.2.1 # via # -r requirements/test.txt # pytest factory-boy==3.3.0 # via -r requirements/test.txt -faker==24.9.0 +faker==24.11.0 # via # -r requirements/test.txt # factory-boy @@ -325,10 +322,6 @@ kombu==5.3.7 # via # -r requirements/test.txt # celery -lazy-object-proxy==1.10.0 - # via - # -r requirements/test.txt - # astroid markupsafe==2.1.5 # via # -r requirements/test.txt @@ -343,7 +336,7 @@ monotonic==1.6 # analytics-python mysqlclient==2.2.4 # via -r requirements/test.txt -newrelic==9.8.0 +newrelic==9.9.0 # via # -r requirements/test.txt # edx-django-utils @@ -409,9 +402,8 @@ pyjwt[crypto]==2.8.0 # edx-drf-extensions # edx-rest-api-client # social-auth-core -pylint==2.14.5 +pylint==3.1.0 # via - # -c requirements/constraints.txt # -r requirements/test.txt # edx-lint # pylint-celery @@ -620,16 +612,8 @@ wcwidth==0.2.13 # via # -r requirements/test.txt # prompt-toolkit -wrapt==1.11.2 - # via - # -c requirements/constraints.txt - # -r requirements/test.txt - # astroid zipp==3.18.1 # via # -r requirements/test.txt # importlib-metadata # importlib-resources - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/production.txt b/requirements/production.txt index 3d5f3070..aa7d01ed 100644 --- a/requirements/production.txt +++ b/requirements/production.txt @@ -41,16 +41,16 @@ billiard==4.2.0 # via # -r requirements/base.txt # celery -boto3==1.34.84 +boto3==1.34.87 # via # -r requirements/base.txt # django-ses -botocore==1.34.84 +botocore==1.34.87 # via # -r requirements/base.txt # boto3 # s3transfer -celery==5.3.6 +celery==5.4.0 # via # -r requirements/base.txt # django-celery-results @@ -216,7 +216,7 @@ gevent==24.2.1 # via -r requirements/production.in greenlet==3.0.3 # via gevent -gunicorn==21.2.0 +gunicorn==22.0.0 # via -r requirements/production.in idna==3.7 # via @@ -266,7 +266,7 @@ monotonic==1.6 # analytics-python mysqlclient==2.2.4 # via -r requirements/base.txt -newrelic==9.8.0 +newrelic==9.9.0 # via # -r requirements/base.txt # edx-django-utils diff --git a/requirements/quality.txt b/requirements/quality.txt index 3bf5c333..b7b4bc14 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -16,9 +16,8 @@ asgiref==3.8.1 # django # django-cors-headers # django-simple-history -astroid==2.11.7 +astroid==3.1.0 # via - # -c requirements/constraints.txt # pylint # pylint-celery async-timeout==4.0.3 @@ -46,16 +45,16 @@ billiard==4.2.0 # via # -r requirements/base.txt # celery -boto3==1.34.84 +boto3==1.34.87 # via # -r requirements/base.txt # django-ses -botocore==1.34.84 +botocore==1.34.87 # via # -r requirements/base.txt # boto3 # s3transfer -celery==5.3.6 +celery==5.4.0 # via # -r requirements/base.txt # django-celery-results @@ -214,10 +213,8 @@ edx-drf-extensions==10.3.0 # via # -r requirements/base.txt # edx-rbac -edx-lint==5.2.5 - # via - # -c requirements/constraints.txt - # -r requirements/quality.in +edx-lint==5.3.6 + # via -r requirements/quality.in edx-opaque-keys==2.5.1 # via # -r requirements/base.txt @@ -270,8 +267,6 @@ kombu==5.3.7 # via # -r requirements/base.txt # celery -lazy-object-proxy==1.10.0 - # via astroid markupsafe==2.1.5 # via # -r requirements/base.txt @@ -284,7 +279,7 @@ monotonic==1.6 # analytics-python mysqlclient==2.2.4 # via -r requirements/base.txt -newrelic==9.8.0 +newrelic==9.9.0 # via # -r requirements/base.txt # edx-django-utils @@ -331,9 +326,8 @@ pyjwt[crypto]==2.8.0 # edx-drf-extensions # edx-rest-api-client # social-auth-core -pylint==2.14.5 +pylint==3.1.0 # via - # -c requirements/constraints.txt # edx-lint # pylint-celery # pylint-django @@ -488,14 +482,7 @@ wcwidth==0.2.13 # via # -r requirements/base.txt # prompt-toolkit -wrapt==1.11.2 - # via - # -c requirements/constraints.txt - # astroid zipp==3.18.1 # via # -r requirements/base.txt # importlib-resources - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/test.txt b/requirements/test.txt index 8f784f9b..4ef4e69b 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -16,9 +16,8 @@ asgiref==3.8.1 # django # django-cors-headers # django-simple-history -astroid==2.11.7 +astroid==3.1.0 # via - # -c requirements/constraints.txt # pylint # pylint-celery async-timeout==4.0.3 @@ -36,8 +35,8 @@ backoff==1.10.0 # analytics-python backports-zoneinfo[tzdata]==0.2.1 ; python_version < "3.9" # via - # -r requirements/base.txt # -c requirements/constraints.txt + # -r requirements/base.txt # celery # django # djangorestframework @@ -46,16 +45,16 @@ billiard==4.2.0 # via # -r requirements/base.txt # celery -boto3==1.34.84 +boto3==1.34.87 # via # -r requirements/base.txt # django-ses -botocore==1.34.84 +botocore==1.34.87 # via # -r requirements/base.txt # boto3 # s3transfer -celery==5.3.6 +celery==5.4.0 # via # -r requirements/base.txt # django-celery-results @@ -223,10 +222,8 @@ edx-drf-extensions==10.3.0 # via # -r requirements/base.txt # edx-rbac -edx-lint==5.2.5 - # via - # -c requirements/constraints.txt - # -r requirements/test.in +edx-lint==5.3.6 + # via -r requirements/test.in edx-opaque-keys==2.5.1 # via # -r requirements/base.txt @@ -237,11 +234,11 @@ edx-rest-api-client==5.7.0 # via -r requirements/base.txt edx-toggles==5.2.0 # via -r requirements/base.txt -exceptiongroup==1.2.0 +exceptiongroup==1.2.1 # via pytest factory-boy==3.3.0 # via -r requirements/test.in -faker==24.9.0 +faker==24.11.0 # via factory-boy freezegun==1.4.0 # via -r requirements/test.in @@ -287,8 +284,6 @@ kombu==5.3.7 # via # -r requirements/base.txt # celery -lazy-object-proxy==1.10.0 - # via astroid markupsafe==2.1.5 # via # -r requirements/base.txt @@ -301,7 +296,7 @@ monotonic==1.6 # analytics-python mysqlclient==2.2.4 # via -r requirements/base.txt -newrelic==9.8.0 +newrelic==9.9.0 # via # -r requirements/base.txt # edx-django-utils @@ -348,9 +343,8 @@ pyjwt[crypto]==2.8.0 # edx-drf-extensions # edx-rest-api-client # social-auth-core -pylint==2.14.5 +pylint==3.1.0 # via - # -c requirements/constraints.txt # edx-lint # pylint-celery # pylint-django @@ -517,14 +511,7 @@ wcwidth==0.2.13 # via # -r requirements/base.txt # prompt-toolkit -wrapt==1.11.2 - # via - # -c requirements/constraints.txt - # astroid zipp==3.18.1 # via # -r requirements/base.txt # importlib-resources - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/validation.txt b/requirements/validation.txt index 2c43744a..51923310 100644 --- a/requirements/validation.txt +++ b/requirements/validation.txt @@ -20,9 +20,8 @@ asgiref==3.8.1 # django # django-cors-headers # django-simple-history -astroid==2.11.7 +astroid==3.1.0 # via - # -c requirements/constraints.txt # -r requirements/quality.txt # -r requirements/test.txt # pylint @@ -57,18 +56,18 @@ billiard==4.2.0 # -r requirements/quality.txt # -r requirements/test.txt # celery -boto3==1.34.84 +boto3==1.34.87 # via # -r requirements/quality.txt # -r requirements/test.txt # django-ses -botocore==1.34.84 +botocore==1.34.87 # via # -r requirements/quality.txt # -r requirements/test.txt # boto3 # s3transfer -celery==5.3.6 +celery==5.4.0 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -295,9 +294,8 @@ edx-drf-extensions==10.3.0 # edx-rbac edx-i18n-tools==1.5.0 # via -r requirements/validation.in -edx-lint==5.2.5 +edx-lint==5.3.6 # via - # -c requirements/constraints.txt # -r requirements/quality.txt # -r requirements/test.txt edx-opaque-keys==2.5.1 @@ -317,13 +315,13 @@ edx-toggles==5.2.0 # via # -r requirements/quality.txt # -r requirements/test.txt -exceptiongroup==1.2.0 +exceptiongroup==1.2.1 # via # -r requirements/test.txt # pytest factory-boy==3.3.0 # via -r requirements/test.txt -faker==24.9.0 +faker==24.11.0 # via # -r requirements/test.txt # factory-boy @@ -385,11 +383,6 @@ kombu==5.3.7 # -r requirements/quality.txt # -r requirements/test.txt # celery -lazy-object-proxy==1.10.0 - # via - # -r requirements/quality.txt - # -r requirements/test.txt - # astroid lxml==5.2.1 # via edx-i18n-tools markupsafe==2.1.5 @@ -411,7 +404,7 @@ mysqlclient==2.2.4 # via # -r requirements/quality.txt # -r requirements/test.txt -newrelic==9.8.0 +newrelic==9.9.0 # via # -r requirements/quality.txt # -r requirements/test.txt @@ -484,9 +477,8 @@ pyjwt[crypto]==2.8.0 # edx-drf-extensions # edx-rest-api-client # social-auth-core -pylint==2.14.5 +pylint==3.1.0 # via - # -c requirements/constraints.txt # -r requirements/quality.txt # -r requirements/test.txt # edx-lint @@ -707,17 +699,8 @@ wcwidth==0.2.13 # -r requirements/quality.txt # -r requirements/test.txt # prompt-toolkit -wrapt==1.11.2 - # via - # -c requirements/constraints.txt - # -r requirements/quality.txt - # -r requirements/test.txt - # astroid zipp==3.18.1 # via # -r requirements/quality.txt # -r requirements/test.txt # importlib-resources - -# The following packages are considered to be unsafe in a requirements file: -# setuptools