diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 505b292..cb4718d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,15 +12,19 @@ on: jobs: build: - + name: tests runs-on: ubuntu-latest + strategy: + matrix: + python-version: ["3.8", "3.11", "3.12"] steps: - - uses: actions/checkout@v2 - - name: Set up Python 3.8 - uses: actions/setup-python@v2 + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 with: - python-version: 3.8 + python-version: ${{ matrix.python-version }} - name: Install dependencies run: | make requirements diff --git a/codejailservice/tests/test_code_exec_service.py b/codejailservice/tests/test_code_exec_service.py index dbd1017..de7b9bc 100644 --- a/codejailservice/tests/test_code_exec_service.py +++ b/codejailservice/tests/test_code_exec_service.py @@ -150,8 +150,8 @@ def test_unsafe_code_exec_failure(self, import_code_jail_safe_exec): data={"payload": json.dumps(payload)}, ) self.assertEqual(200, response.status_code) - self.assertIn(expected_result.pop("emsg"), response.json["emsg"]) - self.assertDictContainsSubset(expected_result, response.json) + self.assertEqual(expected_result['emsg'], response.json["emsg"]) + self.assertEqual(expected_result['globals_dict'], response.json["globals_dict"]) @mock.patch("codejailservice.routes.code_exec_service.import_code_jail_safe_exec") def test_safe_code_exec_failure(self, import_code_jail_safe_exec): @@ -190,5 +190,5 @@ def test_safe_code_exec_failure(self, import_code_jail_safe_exec): data={"payload": json.dumps(payload)}, ) self.assertEqual(200, response.status_code) - self.assertIn(expected_result.pop("emsg"), response.json["emsg"]) - self.assertDictContainsSubset(expected_result, response.json) + self.assertEqual(expected_result['emsg'], response.json["emsg"]) + self.assertEqual(expected_result['globals_dict'], response.json["globals_dict"]) diff --git a/requirements/base.txt b/requirements/base.txt index 6de036a..eb6d07a 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -1,38 +1,42 @@ # -# This file is autogenerated by pip-compile with python 3.8 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: # # make upgrade # -certifi==2022.5.18.1 +blinker==1.7.0 + # via flask +certifi==2024.2.2 # via requests -charset-normalizer==2.0.12 +charset-normalizer==3.3.2 # via requests -click==8.1.3 +click==8.1.7 # via flask edx-codejail==3.2.0 # via # -c requirements/constraints.txt # -r requirements/base.in -flask==2.1.2 +flask==3.0.3 # via -r requirements/base.in -idna==3.3 +idna==3.7 # via requests -importlib-metadata==4.11.4 +importlib-metadata==7.1.0 # via flask -itsdangerous==2.1.2 +itsdangerous==2.2.0 # via flask -jinja2==3.1.2 +jinja2==3.1.3 # via flask -markupsafe==2.1.1 - # via jinja2 -requests==2.27.1 +markupsafe==2.1.5 + # via + # jinja2 + # werkzeug +requests==2.31.0 # via -r requirements/base.in six==1.16.0 # via edx-codejail -urllib3==1.26.9 +urllib3==2.2.1 # via requests -werkzeug==2.1.2 +werkzeug==3.0.2 # via flask -zipp==3.8.0 +zipp==3.18.1 # via importlib-metadata diff --git a/requirements/dev.txt b/requirements/dev.txt index 1b45b6d..2948a71 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,92 +1,91 @@ # -# This file is autogenerated by pip-compile with python 3.8 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: # # make upgrade # -astroid==2.11.5 +astroid==3.1.0 # via pylint -attrs==21.4.0 - # via pytest -certifi==2022.5.18.1 +blinker==1.7.0 + # via + # -r requirements/base.txt + # flask +certifi==2024.2.2 # via # -r requirements/base.txt # requests -charset-normalizer==2.0.12 +charset-normalizer==3.3.2 # via # -r requirements/base.txt # requests -click==8.1.3 +click==8.1.7 # via # -r requirements/base.txt # flask -coverage==6.4 +coverage==7.5.0 # via -r requirements/dev.in -dill==0.3.5.1 +dill==0.3.8 # via pylint edx-codejail==3.2.0 # via # -c requirements/constraints.txt # -r requirements/base.txt -flask==2.1.2 +exceptiongroup==1.2.1 + # via pytest +flask==3.0.3 # via -r requirements/base.txt -idna==3.3 +idna==3.7 # via # -r requirements/base.txt # requests -importlib-metadata==4.11.4 +importlib-metadata==7.1.0 # via # -r requirements/base.txt # flask -iniconfig==1.1.1 +iniconfig==2.0.0 # via pytest -isort==5.10.1 +isort==5.13.2 # via pylint -itsdangerous==2.1.2 +itsdangerous==2.2.0 # via # -r requirements/base.txt # flask -jedi==0.18.1 +jedi==0.19.1 # via pudb -jinja2==3.1.2 +jinja2==3.1.3 # via # -r requirements/base.txt # flask -lazy-object-proxy==1.7.1 - # via astroid -markupsafe==2.1.1 +markupsafe==2.1.5 # via # -r requirements/base.txt # jinja2 + # werkzeug mccabe==0.7.0 # via pylint -packaging==21.3 +packaging==24.0 # via # pudb # pytest -parso==0.8.3 +parso==0.8.4 # via jedi -platformdirs==2.5.2 +platformdirs==4.2.1 # via pylint -pluggy==1.0.0 +pluggy==1.5.0 # via pytest -pudb==2022.1.1 +pudb==2024.1 # via -r requirements/dev.in -py==1.11.0 - # via pytest -pycodestyle==2.8.0 +pycodestyle==2.11.1 # via -r requirements/dev.in -pydocstyle==6.1.1 +pydocstyle==6.3.0 # via -r requirements/dev.in -pygments==2.12.0 +pygments==2.17.2 # via pudb -pylint==2.13.9 +pylint==3.1.0 # via -r requirements/dev.in -pyparsing==3.0.9 - # via packaging -pytest==7.1.2 +pytest==8.1.1 # via -r requirements/dev.in -requests==2.27.1 +requests==2.31.0 # via -r requirements/base.txt six==1.16.0 # via @@ -98,30 +97,30 @@ tomli==2.0.1 # via # pylint # pytest -typing-extensions==4.2.0 +tomlkit==0.12.4 + # via pylint +typing-extensions==4.11.0 # via # astroid # pylint -urllib3==1.26.9 + # urwid +urllib3==2.2.1 # via # -r requirements/base.txt # requests -urwid==2.1.2 +urwid==2.6.11 # via # pudb # urwid-readline -urwid-readline==0.13 +urwid-readline==0.14 # via pudb -werkzeug==2.1.2 +wcwidth==0.2.13 + # via urwid +werkzeug==3.0.2 # via # -r requirements/base.txt # flask -wrapt==1.14.1 - # via astroid -zipp==3.8.0 +zipp==3.18.1 # via # -r requirements/base.txt # importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/pip-tools.txt b/requirements/pip-tools.txt index 899a014..1471edd 100644 --- a/requirements/pip-tools.txt +++ b/requirements/pip-tools.txt @@ -1,19 +1,32 @@ # -# This file is autogenerated by pip-compile with python 3.8 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: # # make upgrade # -click==8.1.3 +build==1.2.1 # via pip-tools -pep517==0.12.0 +click==8.1.7 # via pip-tools -pip-tools==6.6.1 +importlib-metadata==7.1.0 + # via build +packaging==24.0 + # via build +pip-tools==7.4.1 # via -r requirements/pip-tools.in +pyproject-hooks==1.0.0 + # via + # build + # pip-tools tomli==2.0.1 - # via pep517 -wheel==0.37.1 + # via + # build + # pip-tools + # pyproject-hooks +wheel==0.43.0 # via pip-tools +zipp==3.18.1 + # via importlib-metadata # The following packages are considered to be unsafe in a requirements file: # pip diff --git a/requirements/pip.txt b/requirements/pip.txt index 8fa0000..e3ffcc7 100644 --- a/requirements/pip.txt +++ b/requirements/pip.txt @@ -1,14 +1,14 @@ # -# This file is autogenerated by pip-compile with python 3.8 -# To update, run: +# This file is autogenerated by pip-compile with Python 3.8 +# by the following command: # # make upgrade # -wheel==0.37.1 +wheel==0.43.0 # via -r requirements/pip.in # The following packages are considered to be unsafe in a requirements file: -pip==22.1.1 +pip==24.0 # via -r requirements/pip.in -setuptools==62.3.2 +setuptools==69.5.1 # via -r requirements/pip.in