', student_fragment.content)
- assert_in(escape(src_url), student_fragment.content)
- assert_in('Google Calendar', student_fragment.content)
+ assert '
' in student_fragment.content
+ assert escape(src_url) in student_fragment.content
+ assert 'Google Calendar' in student_fragment.content
- assert_in(STUDIO_EDIT_WRAPPER, studio_fragment.content)
- assert_in(VALIDATION_WRAPPER, studio_fragment.content)
- assert_in(USER_INPUTS_WRAPPER, studio_fragment.content)
- assert_in(BUTTONS_WRAPPER, studio_fragment.content)
+ assert STUDIO_EDIT_WRAPPER in studio_fragment.content
+ assert VALIDATION_WRAPPER in studio_fragment.content
+ assert USER_INPUTS_WRAPPER in studio_fragment.content
+ assert BUTTONS_WRAPPER in studio_fragment.content
- def test_calendar_document_submit(self): # pylint: disable=no-self-use
+ def test_calendar_document_submit(self):
""" Test studio submission of GoogleCalendarBlock """
block = TestGoogleCalendarBlock.make_calendar_block()
body = json.dumps(TEST_SUBMIT_DATA)
res = block.handle('studio_submit', make_request(body))
# pylint: disable=no-value-for-parameter
- assert_equal(json.loads(res.body.decode('utf8')), RESULT_SUCCESS)
+ assert json.loads(res.body.decode('utf8')) == RESULT_SUCCESS
- assert_equal(block.display_name, TEST_SUBMIT_DATA['display_name'])
- assert_equal(block.calendar_id, TEST_SUBMIT_DATA['calendar_id'])
- assert_equal(block.default_view, TEST_SUBMIT_DATA['default_view'])
+ assert block.display_name == TEST_SUBMIT_DATA['display_name']
+ assert block.calendar_id == TEST_SUBMIT_DATA['calendar_id']
+ assert block.default_view == TEST_SUBMIT_DATA['default_view']
body = json.dumps('')
res = block.handle('studio_submit', make_request(body))
# pylint: disable=no-value-for-parameter
- assert_equal(json.loads(res.body.decode('utf8')), RESULT_ERROR)
+ assert json.loads(res.body.decode('utf8')) == RESULT_ERROR
- def test_calendar_publish_event(self): # pylint: disable=no-self-use
+ def test_calendar_publish_event(self):
""" Test event publishing in GoogleCalendarBlock"""
block = TestGoogleCalendarBlock.make_calendar_block()
body = json.dumps(TEST_COMPLETE_PUBLISH_DATA)
res = block.handle('publish_event', make_request(body))
# pylint: disable=no-value-for-parameter
- assert_equal(json.loads(res.body.decode('utf8')), RESULT_SUCCESS)
+ assert json.loads(res.body.decode('utf8')) == RESULT_SUCCESS
body = json.dumps(TEST_INCOMPLETE_PUBLISH_DATA)
res = block.handle('publish_event', make_request(body))
- assert_equal(json.loads(res.body.decode('utf8')), RESULT_MISSING_EVENT_TYPE)
+ assert json.loads(res.body.decode('utf8')) == RESULT_MISSING_EVENT_TYPE
diff --git a/google_drive/tests/unit/test_docs.py b/google_drive/tests/unit/test_docs.py
index ef51890..62f205c 100644
--- a/google_drive/tests/unit/test_docs.py
+++ b/google_drive/tests/unit/test_docs.py
@@ -8,7 +8,6 @@
import unittest
from mock import Mock
-from nose.tools import assert_equal, assert_in
from workbench.runtime import WorkbenchRuntime
from xblock.runtime import DictKeyValueStore, KvsFieldData
@@ -76,79 +75,79 @@ def make_document_block(cls):
ids = generate_scope_ids(runtime, 'google_document')
return GoogleDocumentBlock(runtime, db_model, scope_ids=ids)
- def test_document_template_content(self): # pylint: disable=no-self-use
+ def test_document_template_content(self):
""" Test content of GoogleDocumentBlock's rendered views """
block = TestGoogleDocumentBlock.make_document_block()
block.usage_id = Mock()
student_fragment = block.render('student_view', Mock())
# pylint: disable=no-value-for-parameter
- assert_in('
=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
@@ -21,3 +21,12 @@ elasticsearch<7.14.0
# django-simple-history>3.0.0 adds indexing and causes a lot of migrations to be affected
django-simple-history==3.0.0
+
+# opentelemetry requires version 6.x at the moment:
+# https://github.com/open-telemetry/opentelemetry-python/issues/3570
+# Normally this could be added as a constraint in edx-django-utils, where we're
+# adding the opentelemetry dependency. However, when we compile pip-tools.txt,
+# that uses version 7.x, and then there's no undoing that when compiling base.txt.
+# So we need to pin it globally, for now.
+# Ticket for unpinning: https://github.com/openedx/edx-lint/issues/407
+importlib-metadata<7
diff --git a/requirements/constraints.txt b/requirements/constraints.txt
index 528e12d..810e8f0 100644
--- a/requirements/constraints.txt
+++ b/requirements/constraints.txt
@@ -10,5 +10,5 @@
-c common_constraints.txt
-# TODO: Many pinned dependencies should be unpinned and/or moved to this constraints file.
-pylint==2.12.2
+# Temporary to Support the python 3.11 Upgrade
+backports.zoneinfo;python_version<"3.9" # Newer versions have zoneinfo available in the standard library
diff --git a/requirements/dev.txt b/requirements/dev.txt
index e969f65..fac9c6c 100644
--- a/requirements/dev.txt
+++ b/requirements/dev.txt
@@ -8,23 +8,27 @@ appdirs==1.4.4
# via fs
arrow==1.3.0
# via cookiecutter
-asgiref==3.7.2
+asgiref==3.8.1
# via django
-astroid==2.9.3
+astroid==3.1.0
# via
# pylint
# pylint-celery
backports-functools-lru-cache==2.0.0
# via caniusepython3
+backports-zoneinfo==0.2.1 ; python_version < "3.9"
+ # via
+ # -c requirements/constraints.txt
+ # django
binaryornot==0.4.4
# via cookiecutter
-boto3==1.34.49
+boto3==1.34.85
# via fs-s3fs
-botocore==1.34.49
+botocore==1.34.85
# via
# boto3
# s3transfer
-build==1.0.3
+build==1.2.1
# via pip-tools
caniusepython3==7.3.0
# via -r requirements/quality.in
@@ -45,26 +49,28 @@ click==8.1.7
# pip-tools
click-log==0.4.0
# via edx-lint
-code-annotations==1.6.0
+code-annotations==1.8.0
# via edx-lint
cookiecutter==2.6.0
# via xblock-sdk
-coverage[toml]==7.4.3
+coverage[toml]==7.4.4
# via pytest-cov
-ddt==1.7.1
+ddt==1.7.2
# via -r requirements/test.in
-diff-cover==8.0.3
+diff-cover==9.0.0
# via -r requirements/dev.in
+dill==0.3.8
+ # via pylint
distlib==0.3.8
# via caniusepython3
-django==3.2.24
+django==4.2.11
# via
# -c requirements/common_constraints.txt
# -r requirements/base.in
# edx-i18n-tools
# openedx-django-pyfs
# xblock-sdk
-edx-i18n-tools==1.3.0
+edx-i18n-tools==1.5.0
# via -r requirements/test.in
edx-lint==5.3.6
# via -r requirements/quality.in
@@ -79,10 +85,12 @@ fs-s3fs==1.1.1
# via
# openedx-django-pyfs
# xblock-sdk
-idna==3.6
+idna==3.7
# via requests
-importlib-metadata==7.0.2
- # via build
+importlib-metadata==6.11.0
+ # via
+ # -c requirements/common_constraints.txt
+ # build
iniconfig==2.0.0
# via pytest
isort==5.13.2
@@ -100,14 +108,12 @@ jmespath==1.0.1
# botocore
lazy==1.6
# via xblock
-lazy-object-proxy==1.10.0
- # via astroid
-lxml==5.1.0
+lxml==4.9.4
# via
# edx-i18n-tools
# xblock
# xblock-sdk
-mako==1.3.2
+mako==1.3.3
# via xblock
markdown-it-py==3.0.0
# via rich
@@ -116,26 +122,24 @@ markupsafe==2.1.5
# jinja2
# mako
# xblock
-mccabe==0.6.1
+mccabe==0.7.0
# via pylint
mdurl==0.1.2
# via markdown-it-py
mock==5.1.0
# via -r requirements/test.in
-nose==1.3.7
- # via -r requirements/test.in
-openedx-django-pyfs==3.5.0
+openedx-django-pyfs==3.6.0
# via xblock
-packaging==23.2
+packaging==24.0
# via
# build
# caniusepython3
# pytest
-path==16.10.0
+path==16.14.0
# via edx-i18n-tools
pbr==6.0.0
# via stevedore
-pip-tools==7.4.0
+pip-tools==7.4.1
# via -r requirements/dev.in
platformdirs==4.2.0
# via pylint
@@ -153,9 +157,8 @@ pygments==2.17.2
# via
# diff-cover
# rich
-pylint==2.12.2
+pylint==3.1.0
# via
- # -c requirements/constraints.txt
# edx-lint
# pylint-celery
# pylint-django
@@ -176,28 +179,26 @@ pyproject-hooks==1.0.0
# via
# build
# pip-tools
-pytest==8.0.2
+pytest==8.1.1
# via
# -r requirements/test.in
# pytest-cov
# pytest-django
-pytest-cov==4.1.0
+pytest-cov==5.0.0
# via -r requirements/test.in
pytest-django==4.8.0
# via -r requirements/test.in
-python-dateutil==2.8.2
+python-dateutil==2.9.0.post0
# via
# arrow
# botocore
# xblock
-python-slugify==4.0.1
+python-slugify==8.0.4
# via
# code-annotations
# cookiecutter
pytz==2024.1
- # via
- # django
- # xblock
+ # via xblock
pyyaml==6.0.1
# via
# code-annotations
@@ -210,9 +211,9 @@ requests==2.31.0
# caniusepython3
# cookiecutter
# xblock-sdk
-rich==13.7.0
+rich==13.7.1
# via cookiecutter
-s3transfer==0.10.0
+s3transfer==0.10.1
# via boto3
simplejson==3.19.2
# via
@@ -226,24 +227,25 @@ six==1.16.0
# python-dateutil
snowballstemmer==2.2.0
# via pydocstyle
-sqlparse==0.4.4
+sqlparse==0.5.0
# via django
stevedore==5.2.0
# via code-annotations
text-unidecode==1.3
# via python-slugify
-toml==0.10.2
- # via pylint
tomli==2.0.1
# via
# build
# coverage
# pip-tools
+ # pylint
# pyproject-hooks
# pytest
-types-python-dateutil==2.8.19.20240106
+tomlkit==0.12.4
+ # via pylint
+types-python-dateutil==2.9.0.20240316
# via arrow
-typing-extensions==4.10.0
+typing-extensions==4.11.0
# via
# asgiref
# astroid
@@ -253,7 +255,7 @@ urllib3==1.26.18
# via
# botocore
# requests
-web-fragments==2.1.0
+web-fragments==2.2.0
# via
# xblock
# xblock-sdk
@@ -261,19 +263,17 @@ webob==1.8.7
# via
# xblock
# xblock-sdk
-wheel==0.42.0
+wheel==0.43.0
# via pip-tools
-wrapt==1.13.3
- # via astroid
-xblock[django]==1.10.0
+xblock[django]==3.1.0
# via
# -r requirements/base.in
# xblock-sdk
-xblock-sdk==0.7.0
+xblock-sdk==0.10.0
# via
# -r requirements/dev.in
# -r requirements/test.in
-zipp==3.17.0
+zipp==3.18.1
# via importlib-metadata
# The following packages are considered to be unsafe in a requirements file:
diff --git a/requirements/django.txt b/requirements/django.txt
index ddab664..db03776 100644
--- a/requirements/django.txt
+++ b/requirements/django.txt
@@ -1 +1 @@
-django==3.2.25
+django==4.2.11
diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt
index 1c6a4b5..6401f54 100644
--- a/requirements/pip-tools.txt
+++ b/requirements/pip-tools.txt
@@ -4,15 +4,17 @@
#
# make upgrade
#
-build==1.0.3
+build==1.2.1
# via pip-tools
click==8.1.7
# via pip-tools
-importlib-metadata==7.0.2
- # via build
-packaging==23.2
+importlib-metadata==6.11.0
+ # via
+ # -c requirements/common_constraints.txt
+ # build
+packaging==24.0
# via build
-pip-tools==7.4.0
+pip-tools==7.4.1
# via -r requirements/pip-tools.in
pyproject-hooks==1.0.0
# via
@@ -23,9 +25,9 @@ tomli==2.0.1
# build
# pip-tools
# pyproject-hooks
-wheel==0.42.0
+wheel==0.43.0
# via pip-tools
-zipp==3.17.0
+zipp==3.18.1
# via importlib-metadata
# The following packages are considered to be unsafe in a requirements file:
diff --git a/requirements/pip.txt b/requirements/pip.txt
index 6665603..e3ffcc7 100644
--- a/requirements/pip.txt
+++ b/requirements/pip.txt
@@ -4,11 +4,11 @@
#
# make upgrade
#
-wheel==0.42.0
+wheel==0.43.0
# via -r requirements/pip.in
# The following packages are considered to be unsafe in a requirements file:
pip==24.0
# via -r requirements/pip.in
-setuptools==69.1.1
+setuptools==69.5.1
# via -r requirements/pip.in
diff --git a/requirements/quality.txt b/requirements/quality.txt
index e969f65..fac9c6c 100644
--- a/requirements/quality.txt
+++ b/requirements/quality.txt
@@ -8,23 +8,27 @@ appdirs==1.4.4
# via fs
arrow==1.3.0
# via cookiecutter
-asgiref==3.7.2
+asgiref==3.8.1
# via django
-astroid==2.9.3
+astroid==3.1.0
# via
# pylint
# pylint-celery
backports-functools-lru-cache==2.0.0
# via caniusepython3
+backports-zoneinfo==0.2.1 ; python_version < "3.9"
+ # via
+ # -c requirements/constraints.txt
+ # django
binaryornot==0.4.4
# via cookiecutter
-boto3==1.34.49
+boto3==1.34.85
# via fs-s3fs
-botocore==1.34.49
+botocore==1.34.85
# via
# boto3
# s3transfer
-build==1.0.3
+build==1.2.1
# via pip-tools
caniusepython3==7.3.0
# via -r requirements/quality.in
@@ -45,26 +49,28 @@ click==8.1.7
# pip-tools
click-log==0.4.0
# via edx-lint
-code-annotations==1.6.0
+code-annotations==1.8.0
# via edx-lint
cookiecutter==2.6.0
# via xblock-sdk
-coverage[toml]==7.4.3
+coverage[toml]==7.4.4
# via pytest-cov
-ddt==1.7.1
+ddt==1.7.2
# via -r requirements/test.in
-diff-cover==8.0.3
+diff-cover==9.0.0
# via -r requirements/dev.in
+dill==0.3.8
+ # via pylint
distlib==0.3.8
# via caniusepython3
-django==3.2.24
+django==4.2.11
# via
# -c requirements/common_constraints.txt
# -r requirements/base.in
# edx-i18n-tools
# openedx-django-pyfs
# xblock-sdk
-edx-i18n-tools==1.3.0
+edx-i18n-tools==1.5.0
# via -r requirements/test.in
edx-lint==5.3.6
# via -r requirements/quality.in
@@ -79,10 +85,12 @@ fs-s3fs==1.1.1
# via
# openedx-django-pyfs
# xblock-sdk
-idna==3.6
+idna==3.7
# via requests
-importlib-metadata==7.0.2
- # via build
+importlib-metadata==6.11.0
+ # via
+ # -c requirements/common_constraints.txt
+ # build
iniconfig==2.0.0
# via pytest
isort==5.13.2
@@ -100,14 +108,12 @@ jmespath==1.0.1
# botocore
lazy==1.6
# via xblock
-lazy-object-proxy==1.10.0
- # via astroid
-lxml==5.1.0
+lxml==4.9.4
# via
# edx-i18n-tools
# xblock
# xblock-sdk
-mako==1.3.2
+mako==1.3.3
# via xblock
markdown-it-py==3.0.0
# via rich
@@ -116,26 +122,24 @@ markupsafe==2.1.5
# jinja2
# mako
# xblock
-mccabe==0.6.1
+mccabe==0.7.0
# via pylint
mdurl==0.1.2
# via markdown-it-py
mock==5.1.0
# via -r requirements/test.in
-nose==1.3.7
- # via -r requirements/test.in
-openedx-django-pyfs==3.5.0
+openedx-django-pyfs==3.6.0
# via xblock
-packaging==23.2
+packaging==24.0
# via
# build
# caniusepython3
# pytest
-path==16.10.0
+path==16.14.0
# via edx-i18n-tools
pbr==6.0.0
# via stevedore
-pip-tools==7.4.0
+pip-tools==7.4.1
# via -r requirements/dev.in
platformdirs==4.2.0
# via pylint
@@ -153,9 +157,8 @@ pygments==2.17.2
# via
# diff-cover
# rich
-pylint==2.12.2
+pylint==3.1.0
# via
- # -c requirements/constraints.txt
# edx-lint
# pylint-celery
# pylint-django
@@ -176,28 +179,26 @@ pyproject-hooks==1.0.0
# via
# build
# pip-tools
-pytest==8.0.2
+pytest==8.1.1
# via
# -r requirements/test.in
# pytest-cov
# pytest-django
-pytest-cov==4.1.0
+pytest-cov==5.0.0
# via -r requirements/test.in
pytest-django==4.8.0
# via -r requirements/test.in
-python-dateutil==2.8.2
+python-dateutil==2.9.0.post0
# via
# arrow
# botocore
# xblock
-python-slugify==4.0.1
+python-slugify==8.0.4
# via
# code-annotations
# cookiecutter
pytz==2024.1
- # via
- # django
- # xblock
+ # via xblock
pyyaml==6.0.1
# via
# code-annotations
@@ -210,9 +211,9 @@ requests==2.31.0
# caniusepython3
# cookiecutter
# xblock-sdk
-rich==13.7.0
+rich==13.7.1
# via cookiecutter
-s3transfer==0.10.0
+s3transfer==0.10.1
# via boto3
simplejson==3.19.2
# via
@@ -226,24 +227,25 @@ six==1.16.0
# python-dateutil
snowballstemmer==2.2.0
# via pydocstyle
-sqlparse==0.4.4
+sqlparse==0.5.0
# via django
stevedore==5.2.0
# via code-annotations
text-unidecode==1.3
# via python-slugify
-toml==0.10.2
- # via pylint
tomli==2.0.1
# via
# build
# coverage
# pip-tools
+ # pylint
# pyproject-hooks
# pytest
-types-python-dateutil==2.8.19.20240106
+tomlkit==0.12.4
+ # via pylint
+types-python-dateutil==2.9.0.20240316
# via arrow
-typing-extensions==4.10.0
+typing-extensions==4.11.0
# via
# asgiref
# astroid
@@ -253,7 +255,7 @@ urllib3==1.26.18
# via
# botocore
# requests
-web-fragments==2.1.0
+web-fragments==2.2.0
# via
# xblock
# xblock-sdk
@@ -261,19 +263,17 @@ webob==1.8.7
# via
# xblock
# xblock-sdk
-wheel==0.42.0
+wheel==0.43.0
# via pip-tools
-wrapt==1.13.3
- # via astroid
-xblock[django]==1.10.0
+xblock[django]==3.1.0
# via
# -r requirements/base.in
# xblock-sdk
-xblock-sdk==0.7.0
+xblock-sdk==0.10.0
# via
# -r requirements/dev.in
# -r requirements/test.in
-zipp==3.17.0
+zipp==3.18.1
# via importlib-metadata
# The following packages are considered to be unsafe in a requirements file:
diff --git a/requirements/test.in b/requirements/test.in
index 740a0c2..b8040a6 100644
--- a/requirements/test.in
+++ b/requirements/test.in
@@ -5,7 +5,6 @@
ddt
mock
-nose
pytest
pytest-cov
pytest-django
diff --git a/requirements/test.txt b/requirements/test.txt
index 93b6ceb..377346b 100644
--- a/requirements/test.txt
+++ b/requirements/test.txt
@@ -8,17 +8,21 @@ appdirs==1.4.4
# via fs
arrow==1.3.0
# via cookiecutter
-asgiref==3.7.2
+asgiref==3.8.1
# via django
+backports-zoneinfo==0.2.1 ; python_version < "3.9"
+ # via
+ # -c requirements/constraints.txt
+ # django
binaryornot==0.4.4
# via cookiecutter
-boto3==1.34.49
+boto3==1.34.85
# via fs-s3fs
-botocore==1.34.49
+botocore==1.34.85
# via
# boto3
# s3transfer
-build==1.0.3
+build==1.2.1
# via pip-tools
certifi==2024.2.2
# via requests
@@ -34,11 +38,11 @@ click==8.1.7
# pip-tools
cookiecutter==2.6.0
# via xblock-sdk
-coverage[toml]==7.4.3
+coverage[toml]==7.4.4
# via pytest-cov
-ddt==1.7.1
+ddt==1.7.2
# via -r requirements/test.in
-diff-cover==8.0.3
+diff-cover==9.0.0
# via -r requirements/dev.in
# via
# -c requirements/common_constraints.txt
@@ -46,7 +50,7 @@ diff-cover==8.0.3
# edx-i18n-tools
# openedx-django-pyfs
# xblock-sdk
-edx-i18n-tools==1.3.0
+edx-i18n-tools==1.5.0
# via -r requirements/test.in
exceptiongroup==1.2.0
# via pytest
@@ -59,10 +63,12 @@ fs-s3fs==1.1.1
# via
# openedx-django-pyfs
# xblock-sdk
-idna==3.6
+idna==3.7
# via requests
-importlib-metadata==7.0.2
- # via build
+importlib-metadata==6.11.0
+ # via
+ # -c requirements/common_constraints.txt
+ # build
iniconfig==2.0.0
# via pytest
jinja2==3.1.3
@@ -75,12 +81,12 @@ jmespath==1.0.1
# botocore
lazy==1.6
# via xblock
-lxml==5.1.0
+lxml==4.9.4
# via
# edx-i18n-tools
# xblock
# xblock-sdk
-mako==1.3.2
+mako==1.3.3
# via xblock
markdown-it-py==3.0.0
# via rich
@@ -93,17 +99,15 @@ mdurl==0.1.2
# via markdown-it-py
mock==5.1.0
# via -r requirements/test.in
-nose==1.3.7
- # via -r requirements/test.in
-openedx-django-pyfs==3.5.0
+openedx-django-pyfs==3.6.0
# via xblock
-packaging==23.2
+packaging==24.0
# via
# build
# pytest
-path==16.10.0
+path==16.14.0
# via edx-i18n-tools
-pip-tools==7.4.0
+pip-tools==7.4.1
# via -r requirements/dev.in
pluggy==1.4.0
# via
@@ -123,26 +127,24 @@ pyproject-hooks==1.0.0
# via
# build
# pip-tools
-pytest==8.0.2
+pytest==8.1.1
# via
# -r requirements/test.in
# pytest-cov
# pytest-django
-pytest-cov==4.1.0
+pytest-cov==5.0.0
# via -r requirements/test.in
pytest-django==4.8.0
# via -r requirements/test.in
-python-dateutil==2.8.2
+python-dateutil==2.9.0.post0
# via
# arrow
# botocore
# xblock
-python-slugify==4.0.1
+python-slugify==8.0.4
# via cookiecutter
pytz==2024.1
- # via
- # django
- # xblock
+ # via xblock
pyyaml==6.0.1
# via
# cookiecutter
@@ -153,9 +155,9 @@ requests==2.31.0
# -r requirements/base.in
# cookiecutter
# xblock-sdk
-rich==13.7.0
+rich==13.7.1
# via cookiecutter
-s3transfer==0.10.0
+s3transfer==0.10.1
# via boto3
simplejson==3.19.2
# via
@@ -166,7 +168,7 @@ six==1.16.0
# fs
# fs-s3fs
# python-dateutil
-sqlparse==0.4.4
+sqlparse==0.5.0
# via django
text-unidecode==1.3
# via python-slugify
@@ -177,9 +179,9 @@ tomli==2.0.1
# pip-tools
# pyproject-hooks
# pytest
-types-python-dateutil==2.8.19.20240106
+types-python-dateutil==2.9.0.20240316
# via arrow
-typing-extensions==4.10.0
+typing-extensions==4.11.0
# via
# asgiref
# rich
@@ -187,7 +189,7 @@ urllib3==1.26.18
# via
# botocore
# requests
-web-fragments==2.1.0
+web-fragments==2.2.0
# via
# xblock
# xblock-sdk
@@ -195,17 +197,17 @@ webob==1.8.7
# via
# xblock
# xblock-sdk
-wheel==0.42.0
+wheel==0.43.0
# via pip-tools
-xblock[django]==1.10.0
+xblock[django]==3.1.0
# via
# -r requirements/base.in
# xblock-sdk
-xblock-sdk==0.7.0
+xblock-sdk==0.10.0
# via
# -r requirements/dev.in
# -r requirements/test.in
-zipp==3.17.0
+zipp==3.18.1
# via importlib-metadata
# The following packages are considered to be unsafe in a requirements file:
diff --git a/setup.py b/setup.py
index 0aca009..3ef3bd5 100644
--- a/setup.py
+++ b/setup.py
@@ -115,8 +115,9 @@ def package_data(pkg, root_list):
classifiers=[
'Programming Language :: Python',
'Programming Language :: Python :: 3.8',
+ 'Programming Language :: Python :: 3.11',
+ 'Programming Language :: Python :: 3.12',
'Framework :: Django',
- 'Framework :: Django :: 3.2',
'Framework :: Django :: 4.2',
],
url='https://github.com/openedx/xblock-google-drive',
diff --git a/tox.ini b/tox.ini
index 4a59232..03e1978 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,5 +1,5 @@
[tox]
-envlist = py38-django{32,42},quality,package
+envlist = py{38,311,312}-django{42},quality,package
[pycodestyle]
exclude = .git,.tox
@@ -19,7 +19,6 @@ allowlist_externals =
mkdir
rm
deps =
- django32: Django>=3.2,<4.0
django42: Django>=4.2,<4.3
-r{toxinidir}/requirements/test.txt
setenv =