diff --git a/requirements/base.txt b/requirements/base.txt index f09021f..aaa75f7 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -17,15 +17,16 @@ django==3.2.20 # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.in # django-crum + # django-waffle # djangorestframework # edx-django-utils django-crum==0.7.9 # via edx-django-utils -django-waffle==3.0.0 +django-waffle==4.0.0 # via edx-django-utils djangorestframework==3.14.0 # via -r requirements/base.in -edx-django-utils==5.5.0 +edx-django-utils==5.6.0 # via -r requirements/base.in edx-opaque-keys==2.3.0 # via -r requirements/base.in diff --git a/requirements/ci.txt b/requirements/ci.txt index 4d3e51e..cb1f9e5 100644 --- a/requirements/ci.txt +++ b/requirements/ci.txt @@ -29,5 +29,5 @@ tox==3.28.0 # tox-battery tox-battery==0.6.1 # via -r requirements/ci.in -virtualenv==20.24.0 +virtualenv==20.24.2 # via tox diff --git a/requirements/dev.txt b/requirements/dev.txt index 86ddd2f..21bee01 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -40,7 +40,7 @@ click-log==0.4.0 # via # -r requirements/quality.txt # edx-lint -code-annotations==1.3.0 +code-annotations==1.5.0 # via # -r requirements/quality.txt # edx-lint @@ -48,9 +48,11 @@ coverage[toml]==7.2.7 # via # -r requirements/quality.txt # pytest-cov +ddt==1.6.0 + # via -r requirements/quality.txt diff-cover==7.7.0 # via -r requirements/dev.in -dill==0.3.6 +dill==0.3.7 # via # -r requirements/quality.txt # pylint @@ -63,6 +65,7 @@ django==3.2.20 # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/quality.txt # django-crum + # django-waffle # djangorestframework # edx-django-utils # edx-i18n-tools @@ -70,13 +73,13 @@ django-crum==0.7.9 # via # -r requirements/quality.txt # edx-django-utils -django-waffle==3.0.0 +django-waffle==4.0.0 # via # -r requirements/quality.txt # edx-django-utils djangorestframework==3.14.0 # via -r requirements/quality.txt -edx-django-utils==5.5.0 +edx-django-utils==5.6.0 # via -r requirements/quality.txt edx-i18n-tools==1.0.0 # via -r requirements/dev.in @@ -180,7 +183,7 @@ pydocstyle==6.3.0 # via -r requirements/quality.txt pygments==2.15.1 # via diff-cover -pylint==2.17.4 +pylint==2.17.5 # via # -r requirements/quality.txt # edx-lint @@ -279,7 +282,7 @@ tomli==2.0.1 # pyproject-hooks # pytest # tox -tomlkit==0.11.8 +tomlkit==0.12.1 # via # -r requirements/quality.txt # pylint @@ -296,7 +299,7 @@ typing-extensions==4.7.1 # asgiref # astroid # pylint -virtualenv==20.24.0 +virtualenv==20.24.2 # via # -r requirements/ci.txt # tox @@ -308,7 +311,7 @@ webob==1.8.7 # via # -r requirements/quality.txt # xblock -wheel==0.40.0 +wheel==0.41.0 # via # -r requirements/pip-tools.txt # pip-tools diff --git a/requirements/doc.txt b/requirements/doc.txt index e8f50ce..a32b0fb 100644 --- a/requirements/doc.txt +++ b/requirements/doc.txt @@ -26,7 +26,7 @@ bleach==6.0.0 # via readme-renderer build==0.10.0 # via -r requirements/doc.in -certifi==2023.5.7 +certifi==2023.7.22 # via requests cffi==1.15.1 # via @@ -39,24 +39,27 @@ click==8.1.6 # -r requirements/test.txt # code-annotations # edx-django-utils -code-annotations==1.3.0 +code-annotations==1.5.0 # via -r requirements/test.txt coverage[toml]==7.2.7 # via # -r requirements/test.txt # pytest-cov +ddt==1.6.0 + # via -r requirements/test.txt django==3.2.20 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/test.txt # django-crum + # django-waffle # djangorestframework # edx-django-utils django-crum==0.7.9 # via # -r requirements/test.txt # edx-django-utils -django-waffle==3.0.0 +django-waffle==4.0.0 # via # -r requirements/test.txt # edx-django-utils @@ -71,7 +74,7 @@ docutils==0.19 # readme-renderer # restructuredtext-lint # sphinx -edx-django-utils==5.5.0 +edx-django-utils==5.6.0 # via -r requirements/test.txt edx-opaque-keys==2.3.0 # via -r requirements/test.txt @@ -120,7 +123,7 @@ markupsafe==2.1.3 # xblock mdurl==0.1.2 # via markdown-it-py -more-itertools==9.1.0 +more-itertools==10.0.0 # via jaraco-classes newrelic==8.8.1 # via diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index e247d78..5748bf6 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -18,7 +18,8 @@ tomli==2.0.1 # via # build # pip-tools -wheel==0.40.0 + # pyproject-hooks +wheel==0.41.0 # via pip-tools # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/pip.txt b/requirements/pip.txt index bd9fb55..fb1908e 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -4,11 +4,11 @@ # # make upgrade # -wheel==0.40.0 +wheel==0.41.0 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==23.2 +pip==23.2.1 # via -r requirements/pip.in setuptools==68.0.0 # via -r requirements/pip.in diff --git a/requirements/quality.txt b/requirements/quality.txt index 2fdb974..db3a3e7 100644 --- a/requirements/quality.txt +++ b/requirements/quality.txt @@ -29,7 +29,7 @@ click==8.1.6 # edx-lint click-log==0.4.0 # via edx-lint -code-annotations==1.3.0 +code-annotations==1.5.0 # via # -r requirements/test.txt # edx-lint @@ -37,26 +37,29 @@ coverage[toml]==7.2.7 # via # -r requirements/test.txt # pytest-cov -dill==0.3.6 +ddt==1.6.0 + # via -r requirements/test.txt +dill==0.3.7 # via pylint django==3.2.20 # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/test.txt # django-crum + # django-waffle # djangorestframework # edx-django-utils django-crum==0.7.9 # via # -r requirements/test.txt # edx-django-utils -django-waffle==3.0.0 +django-waffle==4.0.0 # via # -r requirements/test.txt # edx-django-utils djangorestframework==3.14.0 # via -r requirements/test.txt -edx-django-utils==5.5.0 +edx-django-utils==5.6.0 # via -r requirements/test.txt edx-lint==5.3.4 # via -r requirements/quality.in @@ -125,7 +128,7 @@ pycparser==2.21 # cffi pydocstyle==6.3.0 # via -r requirements/quality.in -pylint==2.17.4 +pylint==2.17.5 # via # edx-lint # pylint-celery @@ -203,7 +206,7 @@ tomli==2.0.1 # coverage # pylint # pytest -tomlkit==0.11.8 +tomlkit==0.12.1 # via pylint typing-extensions==4.7.1 # via diff --git a/requirements/test.in b/requirements/test.in index 6797160..6c9e869 100644 --- a/requirements/test.in +++ b/requirements/test.in @@ -6,3 +6,5 @@ pytest-cov # pytest extension for code coverage statistics pytest-django # pytest extension for better Django support code-annotations # provides commands used by the pii_check make target. + +ddt \ No newline at end of file diff --git a/requirements/test.txt b/requirements/test.txt index 5a8dbb2..9b79318 100644 --- a/requirements/test.txt +++ b/requirements/test.txt @@ -21,27 +21,30 @@ click==8.1.6 # -r requirements/base.txt # code-annotations # edx-django-utils -code-annotations==1.3.0 +code-annotations==1.5.0 # via -r requirements/test.in coverage[toml]==7.2.7 # via pytest-cov +ddt==1.6.0 + # via -r requirements/test.in # via # -c https://raw.githubusercontent.com/edx/edx-lint/master/edx_lint/files/common_constraints.txt # -r requirements/base.txt # django-crum + # django-waffle # djangorestframework # edx-django-utils django-crum==0.7.9 # via # -r requirements/base.txt # edx-django-utils -django-waffle==3.0.0 +django-waffle==4.0.0 # via # -r requirements/base.txt # edx-django-utils djangorestframework==3.14.0 # via -r requirements/base.txt -edx-django-utils==5.5.0 +edx-django-utils==5.6.0 # via -r requirements/base.txt edx-opaque-keys==2.3.0 # via -r requirements/base.txt diff --git a/tests/api/test_views.py b/tests/api/test_views.py index 9b32419..133db99 100644 --- a/tests/api/test_views.py +++ b/tests/api/test_views.py @@ -1,6 +1,9 @@ """ Tests for the API """ +from unittest.mock import patch + +import ddt from django.urls import reverse from opaque_keys.edx.keys import CourseKey, UsageKey from rest_framework.test import APITestCase @@ -18,9 +21,23 @@ ] +@ddt.ddt class TestApiViews(APITestCase): """API Endpoint View tests""" + @ddt.data(True, False) + @patch('ai_aside.api.api.summaries_configuration_enabled') + def test_course_configurable(self, enabled, mock_enabled): + mock_enabled.return_value = enabled + course_id = course_keys[0] + + api_url = reverse('api-course-configurable', kwargs={'course_id': course_id}) + response = self.client.get(api_url) + + self.assertEqual(response.status_code, 200) + self.assertEqual(response.data['response']['success'], True) + self.assertEqual(response.data['response']['enabled'], enabled) + def test_course_enabled_setter_enable_valid(self): course_id = course_keys[0]