From 58ae9f30594015a083c3720276a096eda23fb1b6 Mon Sep 17 00:00:00 2001 From: UsamaSadiq Date: Fri, 6 Oct 2023 18:37:13 +0500 Subject: [PATCH 1/4] feat: add django42 in CI --- .github/scripts/testing-js.sh | 2 +- .github/scripts/testing.sh | 2 +- .github/workflows/ci.yml | 9 +++++++-- requirements/django42.txt | 1 + tox.ini | 3 ++- 5 files changed, 12 insertions(+), 5 deletions(-) create mode 100644 requirements/django42.txt diff --git a/.github/scripts/testing-js.sh b/.github/scripts/testing-js.sh index e0921fadd..9170d2287 100755 --- a/.github/scripts/testing-js.sh +++ b/.github/scripts/testing-js.sh @@ -9,7 +9,7 @@ docker exec -t insights_testing bash -c " cd /edx/app/insights/edx_analytics_dashboard/ && source /edx/app/insights/venvs/insights/bin/activate && PATH=\$PATH:/edx/app/insights/nodeenvs/insights/bin:/snap/bin && - export TOXENV=django32 && + export TOXENV=${TOXENV} && pip install -r requirements/github.txt && set -x && nodeenv --node=${NODE_VERSION} /edx/app/insights/nodeenvs/insights-test-${NODE} && diff --git a/.github/scripts/testing.sh b/.github/scripts/testing.sh index ebf8cf74b..29e127477 100755 --- a/.github/scripts/testing.sh +++ b/.github/scripts/testing.sh @@ -2,7 +2,7 @@ docker exec -t insights_testing bash -c " cd /edx/app/insights/edx_analytics_dashboard/ && source /edx/app/insights/venvs/insights/bin/activate && PATH=\$PATH:/edx/app/insights/nodeenvs/insights/bin:/snap/bin && - export TOXENV=django32 && + export TOXENV=${TOXENV} && pip install -r requirements/github.txt && make $TARGETS " diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 718fc915c..b152305ca 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: matrix: python-version: ["3.8"] os: [ubuntu-20.04] - toxenv: [django32] + toxenv: [django32, django42] node: [16] env: DATA_API_VERSION: "latest" @@ -31,7 +31,7 @@ jobs: run: | docker exec analytics_api bash -c " source /edx/app/analytics_api/venvs/analytics_api/bin/activate && - pip install setuptools==49.6.0 && + pip install setuptools==68.2.2 && make -C /edx/app/analytics_api/analytics_api github_ci" - name: install dependencies run: pip install -r requirements/github.txt @@ -41,18 +41,21 @@ jobs: env: TESTNAME: quality TARGETS: "quality" + TOXENV: ${{ matrix.toxenv }} - name: test js run: ./.github/scripts/testing-js.sh shell: bash env: TESTNAME: js NODE: ${{ matrix.node }} + TOXENV: ${{ matrix.toxenv }} TARGETS: "requirements.js validate_js" - name: test i18n run: ./.github/scripts/testing.sh shell: bash env: TESTNAME: test-i18n + TOXENV: ${{ matrix.toxenv }} TARGETS: "generate_fake_translations" - name: test acceptance run: ./.github/scripts/testing-js.sh @@ -60,6 +63,7 @@ jobs: env: TESTNAME: acceptance NODE: ${{ matrix.node }} + TOXENV: ${{ matrix.toxenv }} TARGETS: "requirements.a11y migrate requirements.js static accept" - name: test python run: ./.github/scripts/testing-js.sh @@ -67,6 +71,7 @@ jobs: env: TESTNAME: test-python NODE: ${{ matrix.node }} + TOXENV: ${{ matrix.toxenv }} TARGETS: "requirements.js static test_python" - name: code cov uses: codecov/codecov-action@v3 diff --git a/requirements/django42.txt b/requirements/django42.txt new file mode 100644 index 000000000..804f9e154 --- /dev/null +++ b/requirements/django42.txt @@ -0,0 +1 @@ +Django>=4.2,<4.3 diff --git a/tox.ini b/tox.ini index 4c2d2ce0e..0c50111cc 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py38-django{32} +envlist = py38-django{32, 42} skipsdist = true [pytest] @@ -23,6 +23,7 @@ passenv = BOKCHOY_HEADLESS deps = django32: -r requirements/django.txt + django42: -r requirements/django42.txt -r {toxinidir}/requirements/test.txt allowlist_externals = make From 1a4ceb1ca24fc5097e1ee58b5490732d60570e30 Mon Sep 17 00:00:00 2001 From: UsamaSadiq Date: Fri, 6 Oct 2023 18:47:41 +0500 Subject: [PATCH 2/4] fix: fix quality issues --- analytics_dashboard/help/tests.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/analytics_dashboard/help/tests.py b/analytics_dashboard/help/tests.py index b0b7035cd..8f8dfb024 100644 --- a/analytics_dashboard/help/tests.py +++ b/analytics_dashboard/help/tests.py @@ -19,7 +19,7 @@ def build_doc_url(path): class HelpURLMiddlewareTests(TestCase): def setUp(self): - self.middleware = HelpURLMiddleware() + self.middleware = HelpURLMiddleware(get_response=lambda request: None) def assertHelpURLEqual(self, page_token, expected_url): request = http.HttpRequest() From eb5016ec561976d3f9d4389dafa0a81bdc1512ff Mon Sep 17 00:00:00 2001 From: UsamaSadiq Date: Fri, 6 Oct 2023 19:27:49 +0500 Subject: [PATCH 3/4] fix: use pinax-announcements fork --- requirements/base.in | 4 +++- requirements/base.txt | 18 ++++++++++-------- requirements/django.txt | 2 +- requirements/doc.txt | 24 ++++++++++++++---------- requirements/github.txt | 6 +++--- requirements/local.txt | 28 ++++++++++++++++------------ requirements/pip_tools.txt | 2 +- requirements/production.txt | 22 +++++++++++++--------- requirements/test.txt | 26 +++++++++++++++----------- requirements/tox.txt | 4 ++-- 10 files changed, 78 insertions(+), 58 deletions(-) diff --git a/requirements/base.in b/requirements/base.in index b784b8640..f890e10f7 100644 --- a/requirements/base.in +++ b/requirements/base.in @@ -14,7 +14,6 @@ django-crispy-forms # MIT django-lang-pref-middleware django-waffle # BSD django-soapbox # BSD -pinax-announcements # MIT edx-auth-backends edx-ccx-keys edx-opaque-keys @@ -32,3 +31,6 @@ stevedore path.py python-slugify social-auth-app-django + +# Using github hash temporarily until new version of pinax-announcements gets released +-e git+https://github.com/openedx/pinax-announcements.git@60a3fdf171b520d8593a9b2190d1c01a6614ab59#egg=pinax-announcements diff --git a/requirements/base.txt b/requirements/base.txt index 0f1c3ce59..d85a55adf 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -4,17 +4,19 @@ # # make upgrade # +-e git+https://github.com/openedx/pinax-announcements.git@60a3fdf171b520d8593a9b2190d1c01a6614ab59#egg=pinax-announcements + # via -r requirements/base.in asgiref==3.7.2 # via # django # django-countries certifi==2023.7.22 # via requests -cffi==1.15.1 +cffi==1.16.0 # via # cryptography # pynacl -charset-normalizer==3.2.0 +charset-normalizer==3.3.0 # via requests click==8.1.7 # via @@ -26,11 +28,11 @@ cryptography==41.0.4 # via # pyjwt # social-auth-core -defusedxml==0.7.1 +defusedxml==0.8.0rc2 # via # python3-openid # social-auth-core -django==3.2.21 +django==3.2.22 # via # -c requirements/common_constraints.txt # -c requirements/constraints.txt @@ -107,7 +109,7 @@ edx-django-utils==5.7.0 # edx-toggles edx-drf-extensions==8.10.0 # via -r requirements/base.in -edx-i18n-tools==1.2.0 +edx-i18n-tools==1.3.0 # via -r requirements/base.in edx-opaque-keys==2.5.1 # via @@ -126,6 +128,8 @@ libsass==0.22.0 # via -r requirements/base.in logutils==0.3.5 # via -r requirements/base.in +lxml==4.9.3 + # via edx-i18n-tools markupsafe==2.1.3 # via jinja2 newrelic==9.1.0 @@ -142,8 +146,6 @@ path-py==12.5.0 # via -r requirements/base.in pbr==5.11.1 # via stevedore -pinax-announcements==4.0.0 - # via -r requirements/base.in polib==1.2.0 # via edx-i18n-tools psutil==5.9.5 @@ -222,7 +224,7 @@ typing-extensions==4.8.0 # edx-opaque-keys unicodecsv==0.14.1 # via djangorestframework-csv -urllib3==1.26.16 +urllib3==1.26.17 # via # -c requirements/constraints.txt # requests diff --git a/requirements/django.txt b/requirements/django.txt index 62b5cb851..5a28da341 100644 --- a/requirements/django.txt +++ b/requirements/django.txt @@ -1 +1 @@ -django==3.2.21 +django==3.2.22 diff --git a/requirements/doc.txt b/requirements/doc.txt index 4f6f79988..2dd760c91 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -4,6 +4,8 @@ # # make upgrade # +-e git+https://github.com/openedx/pinax-announcements.git@60a3fdf171b520d8593a9b2190d1c01a6614ab59#egg=pinax-announcements + # via -r requirements/base.txt accessible-pygments==0.0.4 # via pydata-sphinx-theme alabaster==0.7.13 @@ -13,7 +15,7 @@ asgiref==3.7.2 # -r requirements/base.txt # django # django-countries -babel==2.12.1 +babel==2.13.0 # via # pydata-sphinx-theme # sphinx @@ -23,12 +25,12 @@ certifi==2023.7.22 # via # -r requirements/base.txt # requests -cffi==1.15.1 +cffi==1.16.0 # via # -r requirements/base.txt # cryptography # pynacl -charset-normalizer==3.2.0 +charset-normalizer==3.3.0 # via # -r requirements/base.txt # requests @@ -46,12 +48,12 @@ cryptography==41.0.4 # -r requirements/base.txt # pyjwt # social-auth-core -defusedxml==0.7.1 +defusedxml==0.8.0rc2 # via # -r requirements/base.txt # python3-openid # social-auth-core -django==3.2.21 +django==3.2.22 # via # -c requirements/common_constraints.txt # -c requirements/constraints.txt @@ -135,7 +137,7 @@ edx-django-utils==5.7.0 # edx-toggles edx-drf-extensions==8.10.0 # via -r requirements/base.txt -edx-i18n-tools==1.2.0 +edx-i18n-tools==1.3.0 # via -r requirements/base.txt edx-opaque-keys==2.5.1 # via @@ -163,6 +165,10 @@ libsass==0.22.0 # via -r requirements/base.txt logutils==0.3.5 # via -r requirements/base.txt +lxml==4.9.3 + # via + # -r requirements/base.txt + # edx-i18n-tools markupsafe==2.1.3 # via # -r requirements/base.txt @@ -176,7 +182,7 @@ oauthlib==3.2.2 # -r requirements/base.txt # requests-oauthlib # social-auth-core -packaging==23.1 +packaging==23.2 # via # pydata-sphinx-theme # sphinx @@ -191,8 +197,6 @@ pbr==5.11.1 # via # -r requirements/base.txt # stevedore -pinax-announcements==4.0.0 - # via -r requirements/base.txt polib==1.2.0 # via # -r requirements/base.txt @@ -334,7 +338,7 @@ unicodecsv==0.14.1 # via # -r requirements/base.txt # djangorestframework-csv -urllib3==1.26.16 +urllib3==1.26.17 # via # -c requirements/constraints.txt # -r requirements/base.txt diff --git a/requirements/github.txt b/requirements/github.txt index 75201e442..823974f3a 100644 --- a/requirements/github.txt +++ b/requirements/github.txt @@ -4,7 +4,7 @@ # # make upgrade # -coverage==7.3.1 +coverage==7.3.2 # via -r requirements/github.in distlib==0.3.7 # via @@ -15,11 +15,11 @@ filelock==3.12.4 # -r requirements/tox.txt # tox # virtualenv -packaging==23.1 +packaging==23.2 # via # -r requirements/tox.txt # tox -platformdirs==3.10.0 +platformdirs==3.11.0 # via # -r requirements/tox.txt # virtualenv diff --git a/requirements/local.txt b/requirements/local.txt index e523cf699..7dad3f593 100644 --- a/requirements/local.txt +++ b/requirements/local.txt @@ -4,6 +4,8 @@ # # make upgrade # +-e git+https://github.com/openedx/pinax-announcements.git@60a3fdf171b520d8593a9b2190d1c01a6614ab59#egg=pinax-announcements + # via -r requirements/test.txt asgiref==3.7.2 # via # -r requirements/test.txt @@ -24,12 +26,12 @@ certifi==2023.7.22 # via # -r requirements/test.txt # requests -cffi==1.15.1 +cffi==1.16.0 # via # -r requirements/test.txt # cryptography # pynacl -charset-normalizer==3.2.0 +charset-normalizer==3.3.0 # via # -r requirements/test.txt # requests @@ -51,7 +53,7 @@ code-annotations==1.5.0 # -r requirements/test.txt # edx-lint # edx-toggles -coverage[toml]==7.3.1 +coverage[toml]==7.3.2 # via # -r requirements/test.txt # pytest-cov @@ -62,7 +64,7 @@ cryptography==41.0.4 # social-auth-core ddt==1.6.0 # via -r requirements/test.txt -defusedxml==0.7.1 +defusedxml==0.8.0rc2 # via # -r requirements/test.txt # python3-openid @@ -75,7 +77,7 @@ distlib==0.3.7 # via # -r requirements/tox.txt # virtualenv -django==3.2.21 +django==3.2.22 # via # -c requirements/common_constraints.txt # -c requirements/constraints.txt @@ -160,7 +162,7 @@ edx-django-utils==5.7.0 # edx-toggles edx-drf-extensions==8.10.0 # via -r requirements/test.txt -edx-i18n-tools==1.2.0 +edx-i18n-tools==1.3.0 # via -r requirements/test.txt edx-lint==5.3.4 # via -r requirements/test.txt @@ -216,6 +218,10 @@ libsass==0.22.0 # via -r requirements/test.txt logutils==0.3.5 # via -r requirements/test.txt +lxml==4.9.3 + # via + # -r requirements/test.txt + # edx-i18n-tools markupsafe==2.1.3 # via # -r requirements/test.txt @@ -235,7 +241,7 @@ oauthlib==3.2.2 # -r requirements/test.txt # requests-oauthlib # social-auth-core -packaging==23.1 +packaging==23.2 # via # -r requirements/pip_tools.txt # -r requirements/test.txt @@ -254,11 +260,9 @@ pbr==5.11.1 # via # -r requirements/test.txt # stevedore -pinax-announcements==4.0.0 - # via -r requirements/test.txt pip-tools==7.3.0 # via -r requirements/pip_tools.txt -platformdirs==3.10.0 +platformdirs==3.11.0 # via # -r requirements/test.txt # -r requirements/tox.txt @@ -298,7 +302,7 @@ pyjwt[crypto]==2.8.0 # edx-drf-extensions # edx-rest-api-client # social-auth-core -pylint==2.17.6 +pylint==2.17.7 # via # -r requirements/test.txt # edx-lint @@ -458,7 +462,7 @@ unicodecsv==0.14.1 # via # -r requirements/test.txt # djangorestframework-csv -urllib3==1.26.16 +urllib3==1.26.17 # via # -c requirements/constraints.txt # -r requirements/test.txt diff --git a/requirements/pip_tools.txt b/requirements/pip_tools.txt index 05d07313e..fed337062 100644 --- a/requirements/pip_tools.txt +++ b/requirements/pip_tools.txt @@ -10,7 +10,7 @@ click==8.1.7 # via pip-tools importlib-metadata==6.8.0 # via build -packaging==23.1 +packaging==23.2 # via build pip-tools==7.3.0 # via -r requirements/pip_tools.in diff --git a/requirements/production.txt b/requirements/production.txt index 6f7ce01d5..efb39fc46 100644 --- a/requirements/production.txt +++ b/requirements/production.txt @@ -4,6 +4,8 @@ # # make upgrade # +-e git+https://github.com/openedx/pinax-announcements.git@60a3fdf171b520d8593a9b2190d1c01a6614ab59#egg=pinax-announcements + # via -r requirements/base.txt asgiref==3.7.2 # via # -r requirements/base.txt @@ -13,12 +15,12 @@ certifi==2023.7.22 # via # -r requirements/base.txt # requests -cffi==1.15.1 +cffi==1.16.0 # via # -r requirements/base.txt # cryptography # pynacl -charset-normalizer==3.2.0 +charset-normalizer==3.3.0 # via # -r requirements/base.txt # requests @@ -36,12 +38,12 @@ cryptography==41.0.4 # -r requirements/base.txt # pyjwt # social-auth-core -defusedxml==0.7.1 +defusedxml==0.8.0rc2 # via # -r requirements/base.txt # python3-openid # social-auth-core -django==3.2.21 +django==3.2.22 # via # -c requirements/common_constraints.txt # -c requirements/constraints.txt @@ -121,7 +123,7 @@ edx-django-utils==5.7.0 # edx-toggles edx-drf-extensions==8.10.0 # via -r requirements/base.txt -edx-i18n-tools==1.2.0 +edx-i18n-tools==1.3.0 # via -r requirements/base.txt edx-opaque-keys==2.5.1 # via @@ -146,6 +148,10 @@ libsass==0.22.0 # via -r requirements/base.txt logutils==0.3.5 # via -r requirements/base.txt +lxml==4.9.3 + # via + # -r requirements/base.txt + # edx-i18n-tools markupsafe==2.1.3 # via # -r requirements/base.txt @@ -163,7 +169,7 @@ oauthlib==3.2.2 # -r requirements/base.txt # requests-oauthlib # social-auth-core -packaging==23.1 +packaging==23.2 # via gunicorn path==16.7.1 # via @@ -176,8 +182,6 @@ pbr==5.11.1 # via # -r requirements/base.txt # stevedore -pinax-announcements==4.0.0 - # via -r requirements/base.txt polib==1.2.0 # via # -r requirements/base.txt @@ -292,7 +296,7 @@ unicodecsv==0.14.1 # via # -r requirements/base.txt # djangorestframework-csv -urllib3==1.26.16 +urllib3==1.26.17 # via # -c requirements/constraints.txt # -r requirements/base.txt diff --git a/requirements/test.txt b/requirements/test.txt index a01042db3..7eea9c8cb 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -4,6 +4,8 @@ # # make upgrade # +-e git+https://github.com/openedx/pinax-announcements.git@60a3fdf171b520d8593a9b2190d1c01a6614ab59#egg=pinax-announcements + # via -r requirements/base.txt asgiref==3.7.2 # via # -r requirements/base.txt @@ -20,12 +22,12 @@ certifi==2023.7.22 # via # -r requirements/base.txt # requests -cffi==1.15.1 +cffi==1.16.0 # via # -r requirements/base.txt # cryptography # pynacl -charset-normalizer==3.2.0 +charset-normalizer==3.3.0 # via # -r requirements/base.txt # requests @@ -43,7 +45,7 @@ code-annotations==1.5.0 # -r requirements/base.txt # edx-lint # edx-toggles -coverage[toml]==7.3.1 +coverage[toml]==7.3.2 # via # -r requirements/test.in # pytest-cov @@ -54,7 +56,7 @@ cryptography==41.0.4 # social-auth-core ddt==1.6.0 # via -r requirements/test.in -defusedxml==0.7.1 +defusedxml==0.8.0rc2 # via # -r requirements/base.txt # python3-openid @@ -142,7 +144,7 @@ edx-django-utils==5.7.0 # edx-toggles edx-drf-extensions==8.10.0 # via -r requirements/base.txt -edx-i18n-tools==1.2.0 +edx-i18n-tools==1.3.0 # via -r requirements/base.txt edx-lint==5.3.4 # via -r requirements/test.in @@ -179,6 +181,10 @@ libsass==0.22.0 # via -r requirements/base.txt logutils==0.3.5 # via -r requirements/base.txt +lxml==4.9.3 + # via + # -r requirements/base.txt + # edx-i18n-tools markupsafe==2.1.3 # via # -r requirements/base.txt @@ -194,7 +200,7 @@ oauthlib==3.2.2 # -r requirements/base.txt # requests-oauthlib # social-auth-core -packaging==23.1 +packaging==23.2 # via pytest path==16.7.1 # via @@ -207,9 +213,7 @@ pbr==5.11.1 # via # -r requirements/base.txt # stevedore -pinax-announcements==4.0.0 - # via -r requirements/base.txt -platformdirs==3.10.0 +platformdirs==3.11.0 # via pylint pluggy==1.3.0 # via pytest @@ -237,7 +241,7 @@ pyjwt[crypto]==2.8.0 # edx-drf-extensions # edx-rest-api-client # social-auth-core -pylint==2.17.6 +pylint==2.17.7 # via # -r requirements/test.in # edx-lint @@ -367,7 +371,7 @@ unicodecsv==0.14.1 # via # -r requirements/base.txt # djangorestframework-csv -urllib3==1.26.16 +urllib3==1.26.17 # via # -c requirements/constraints.txt # -r requirements/base.txt diff --git a/requirements/tox.txt b/requirements/tox.txt index d443f179c..122f8c898 100644 --- a/requirements/tox.txt +++ b/requirements/tox.txt @@ -10,9 +10,9 @@ filelock==3.12.4 # via # tox # virtualenv -packaging==23.1 +packaging==23.2 # via tox -platformdirs==3.10.0 +platformdirs==3.11.0 # via virtualenv pluggy==1.3.0 # via tox From 41bd486b08b5af611734337537d5a448f50af6bb Mon Sep 17 00:00:00 2001 From: UsamaSadiq Date: Fri, 6 Oct 2023 20:03:20 +0500 Subject: [PATCH 4/4] fix: fix middleware default argument --- analytics_dashboard/core/tests/test_middleware.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/analytics_dashboard/core/tests/test_middleware.py b/analytics_dashboard/core/tests/test_middleware.py index 40b17b81f..216dacc04 100644 --- a/analytics_dashboard/core/tests/test_middleware.py +++ b/analytics_dashboard/core/tests/test_middleware.py @@ -20,7 +20,7 @@ class MiddlewareTestCase(TestCase): def setUp(self): super().setUp() self.factory = RequestFactory() - self.middleware = self.middleware_class() # pylint: disable=not-callable + self.middleware = self.middleware_class(get_response=lambda request: None) # pylint: disable=not-callable class MiddlewareAssertionMixin: