From bf6f3f2ae87df1b021a9d86b60d08a5f3908daa0 Mon Sep 17 00:00:00 2001 From: Sheila Kahwai Date: Mon, 13 Feb 2023 15:54:04 +0300 Subject: [PATCH 01/16] add pytest_jupyterhub as a dependency in requirements.txt --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index e925b825..6cc0b6cf 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ docker escapism jupyterhub>=1.0 +git+https://github.com/jupyterhub/pytest-jupyterhub.git@main#egg=pytest_jupyterhub \ No newline at end of file From 512c9e2eea86292c65cc310a60901121af8b28db Mon Sep 17 00:00:00 2001 From: Sheila Kahwai Date: Mon, 13 Feb 2023 16:03:54 +0300 Subject: [PATCH 02/16] modify dependency url format --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 6cc0b6cf..97aac141 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ docker escapism jupyterhub>=1.0 -git+https://github.com/jupyterhub/pytest-jupyterhub.git@main#egg=pytest_jupyterhub \ No newline at end of file +pytest-jupyterhub @ git+https://github.com/jupyterhub/pytest-jupyterhub.git@main \ No newline at end of file From 5a3c40ad82bf3da9c370e84b3b0a6c3a201aff44 Mon Sep 17 00:00:00 2001 From: Sheila Kahwai Date: Mon, 20 Feb 2023 11:50:38 +0300 Subject: [PATCH 03/16] use the hub_app fixture --- tests/conftest.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tests/conftest.py b/tests/conftest.py index c792bc88..a4aed0b0 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -8,6 +8,7 @@ import jupyterhub import netifaces import pytest +from pytest_jupyterhub.jupyterhub_spawners import hub_app from docker import from_env as docker_from_env from docker.errors import APIError from jupyterhub import version_info as jh_version_info @@ -23,6 +24,8 @@ # make Hub connectable from docker by default # do this here because the `app` fixture has already loaded configuration + + MockHub.hub_ip = "0.0.0.0" if os.environ.get("HUB_CONNECT_IP"): @@ -56,6 +59,7 @@ def pytest_collection_modifyitems(items): assert not inspect.isasyncgenfunction(item.obj) +""" @pytest.fixture def app(jupyterhub_app): app = jupyterhub_app @@ -65,7 +69,25 @@ def app(jupyterhub_app): tag = jupyterhub.__version__ app.config.DockerSpawner.image = f"jupyterhub/singleuser:{tag}" return app + """ + + +@pytest.fixture +async def app(hub_app): + config = { + "Dockerspawner": { + "prefix": "dockerspawner-test" + } + } + if len(jh_version_info) > 3 and jh_version_info[3]: + tag = jupyterhub.__version__ + config["Dockerspawner"]["image"] = f"jupyterhub/singleuser:{tag}" + + app = await hub_app(config=config) + + return app + @pytest.fixture def named_servers(app): From 8c04fee86ff898e807d0d528f6c2a734e4109fb7 Mon Sep 17 00:00:00 2001 From: Sheila Kahwai Date: Mon, 20 Feb 2023 12:09:28 +0300 Subject: [PATCH 04/16] remove async keyword --- tests/conftest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/conftest.py b/tests/conftest.py index a4aed0b0..b341ba1f 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -87,7 +87,7 @@ async def app(hub_app): app = await hub_app(config=config) return app - + @pytest.fixture def named_servers(app): From b6cdf66c49d674c0f312702df7e466ec4dc18f21 Mon Sep 17 00:00:00 2001 From: Sheila Kahwai Date: Mon, 13 Feb 2023 15:26:49 +0300 Subject: [PATCH 05/16] configure test suite to use jupyterhub pytest plugin --- tests/conftest.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index b341ba1f..5597c765 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -12,7 +12,7 @@ from docker import from_env as docker_from_env from docker.errors import APIError from jupyterhub import version_info as jh_version_info -from jupyterhub.tests.conftest import app as jupyterhub_app # noqa: F401 +# from jupyterhub.tests.conftest import app as jupyterhub_app # noqa: F401 from jupyterhub.tests.conftest import event_loop # noqa: F401 from jupyterhub.tests.conftest import io_loop # noqa: F401 from jupyterhub.tests.conftest import ssl_tmpdir # noqa: F401 @@ -20,6 +20,7 @@ from dockerspawner import DockerSpawner, SwarmSpawner, SystemUserSpawner + # import base jupyterhub fixtures # make Hub connectable from docker by default @@ -90,7 +91,7 @@ async def app(hub_app): @pytest.fixture -def named_servers(app): +async def named_servers(app): with mock.patch.dict( app.tornado_settings, {"allow_named_servers": True, "named_server_limit_per_user": 2}, @@ -99,7 +100,7 @@ def named_servers(app): @pytest.fixture -def dockerspawner_configured_app(app, named_servers): +async def dockerspawner_configured_app(app, named_servers): """Configure JupyterHub to use DockerSpawner""" # app.config.DockerSpawner.remove = True with mock.patch.dict(app.tornado_settings, {"spawner_class": DockerSpawner}): @@ -107,7 +108,7 @@ def dockerspawner_configured_app(app, named_servers): @pytest.fixture -def swarmspawner_configured_app(app, named_servers): +async def swarmspawner_configured_app(app, named_servers): """Configure JupyterHub to use DockerSpawner""" with mock.patch.dict( app.tornado_settings, {"spawner_class": SwarmSpawner} @@ -116,7 +117,7 @@ def swarmspawner_configured_app(app, named_servers): @pytest.fixture -def systemuserspawner_configured_app(app, named_servers): +async def systemuserspawner_configured_app(app, named_servers): """Configure JupyterHub to use DockerSpawner""" with mock.patch.dict(app.tornado_settings, {"spawner_class": SystemUserSpawner}): yield app From 428a848cd90b04a5d87d9094ed33868cbc4af7ba Mon Sep 17 00:00:00 2001 From: Sheila Kahwai Date: Mon, 20 Feb 2023 11:50:38 +0300 Subject: [PATCH 06/16] test the hub_app fixture --- tests/conftest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/conftest.py b/tests/conftest.py index 5597c765..1ca6c17a 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -12,7 +12,7 @@ from docker import from_env as docker_from_env from docker.errors import APIError from jupyterhub import version_info as jh_version_info -# from jupyterhub.tests.conftest import app as jupyterhub_app # noqa: F401 +from jupyterhub.tests.conftest import app as jupyterhub_app # noqa: F401 from jupyterhub.tests.conftest import event_loop # noqa: F401 from jupyterhub.tests.conftest import io_loop # noqa: F401 from jupyterhub.tests.conftest import ssl_tmpdir # noqa: F401 From 3f1eb10d1c2f6c91f3c78030c6e1f5e0b1f29f2a Mon Sep 17 00:00:00 2001 From: Sheila Kahwai Date: Mon, 20 Feb 2023 12:09:28 +0300 Subject: [PATCH 07/16] remove async keyword --- tests/conftest.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 1ca6c17a..f50dd683 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -91,7 +91,7 @@ async def app(hub_app): @pytest.fixture -async def named_servers(app): +def named_servers(app): with mock.patch.dict( app.tornado_settings, {"allow_named_servers": True, "named_server_limit_per_user": 2}, @@ -100,7 +100,7 @@ async def named_servers(app): @pytest.fixture -async def dockerspawner_configured_app(app, named_servers): +def dockerspawner_configured_app(app, named_servers): """Configure JupyterHub to use DockerSpawner""" # app.config.DockerSpawner.remove = True with mock.patch.dict(app.tornado_settings, {"spawner_class": DockerSpawner}): @@ -108,7 +108,7 @@ async def dockerspawner_configured_app(app, named_servers): @pytest.fixture -async def swarmspawner_configured_app(app, named_servers): +def swarmspawner_configured_app(app, named_servers): """Configure JupyterHub to use DockerSpawner""" with mock.patch.dict( app.tornado_settings, {"spawner_class": SwarmSpawner} @@ -117,7 +117,7 @@ async def swarmspawner_configured_app(app, named_servers): @pytest.fixture -async def systemuserspawner_configured_app(app, named_servers): +def systemuserspawner_configured_app(app, named_servers): """Configure JupyterHub to use DockerSpawner""" with mock.patch.dict(app.tornado_settings, {"spawner_class": SystemUserSpawner}): yield app From e33a46ec4493795b7563a60ee78930e8c370b353 Mon Sep 17 00:00:00 2001 From: Sheila Kahwai Date: Wed, 1 Mar 2023 12:17:45 +0300 Subject: [PATCH 08/16] remove irrelevant imports --- tests/conftest.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index f50dd683..1eebdcee 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -12,10 +12,6 @@ from docker import from_env as docker_from_env from docker.errors import APIError from jupyterhub import version_info as jh_version_info -from jupyterhub.tests.conftest import app as jupyterhub_app # noqa: F401 -from jupyterhub.tests.conftest import event_loop # noqa: F401 -from jupyterhub.tests.conftest import io_loop # noqa: F401 -from jupyterhub.tests.conftest import ssl_tmpdir # noqa: F401 from jupyterhub.tests.mocking import MockHub from dockerspawner import DockerSpawner, SwarmSpawner, SystemUserSpawner From f2e6302d7c56af03e9f15a5161052d1c3f732369 Mon Sep 17 00:00:00 2001 From: Sheila Kahwai Date: Wed, 1 Mar 2023 12:33:41 +0300 Subject: [PATCH 09/16] add sqlalchemy v1 dependency --- dev-requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/dev-requirements.txt b/dev-requirements.txt index 079eb6ca..af19c570 100644 --- a/dev-requirements.txt +++ b/dev-requirements.txt @@ -5,3 +5,4 @@ pyflakes pytest>=3.6 pytest-asyncio pytest-cov +sqlalchemy==1.* From e8122c351a55570732cf1738f70fdf0b42f1f20c Mon Sep 17 00:00:00 2001 From: Sheila Kahwai Date: Wed, 5 Apr 2023 11:10:24 +0300 Subject: [PATCH 10/16] load plugin instead of importing --- tests/conftest.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/conftest.py b/tests/conftest.py index 1eebdcee..ec055252 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -8,7 +8,7 @@ import jupyterhub import netifaces import pytest -from pytest_jupyterhub.jupyterhub_spawners import hub_app +# from pytest_jupyterhub.jupyterhub_spawners import hub_app from docker import from_env as docker_from_env from docker.errors import APIError from jupyterhub import version_info as jh_version_info @@ -22,6 +22,8 @@ # make Hub connectable from docker by default # do this here because the `app` fixture has already loaded configuration +# Load pytest plugins +pytest_plugins = "jupyterhub-spawners-plugin" MockHub.hub_ip = "0.0.0.0" From 8e0a9738a325edb7235846ca6a6175810bc8a50a Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 5 Apr 2023 09:19:25 +0000 Subject: [PATCH 11/16] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- requirements.txt | 2 +- tests/conftest.py | 12 ++++-------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/requirements.txt b/requirements.txt index 97aac141..d087648c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ docker escapism jupyterhub>=1.0 -pytest-jupyterhub @ git+https://github.com/jupyterhub/pytest-jupyterhub.git@main \ No newline at end of file +pytest-jupyterhub @ git+https://github.com/jupyterhub/pytest-jupyterhub.git@main diff --git a/tests/conftest.py b/tests/conftest.py index ec055252..78a5840c 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -8,6 +8,7 @@ import jupyterhub import netifaces import pytest + # from pytest_jupyterhub.jupyterhub_spawners import hub_app from docker import from_env as docker_from_env from docker.errors import APIError @@ -16,7 +17,6 @@ from dockerspawner import DockerSpawner, SwarmSpawner, SystemUserSpawner - # import base jupyterhub fixtures # make Hub connectable from docker by default @@ -69,20 +69,16 @@ def app(jupyterhub_app): app.config.DockerSpawner.image = f"jupyterhub/singleuser:{tag}" return app """ - + @pytest.fixture async def app(hub_app): - config = { - "Dockerspawner": { - "prefix": "dockerspawner-test" - } - } + config = {"Dockerspawner": {"prefix": "dockerspawner-test"}} if len(jh_version_info) > 3 and jh_version_info[3]: tag = jupyterhub.__version__ config["Dockerspawner"]["image"] = f"jupyterhub/singleuser:{tag}" - + app = await hub_app(config=config) return app From 904484158d6f14ad096ebdf1e5c6ebeed9429aa0 Mon Sep 17 00:00:00 2001 From: Sheila-nk Date: Wed, 10 May 2023 22:56:50 +0200 Subject: [PATCH 12/16] install package from PyPI and remove commented out code --- requirements.txt | 2 +- tests/conftest.py | 15 --------------- 2 files changed, 1 insertion(+), 16 deletions(-) diff --git a/requirements.txt b/requirements.txt index d087648c..024ff0f3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ docker escapism jupyterhub>=1.0 -pytest-jupyterhub @ git+https://github.com/jupyterhub/pytest-jupyterhub.git@main +pytest-jupyterhub diff --git a/tests/conftest.py b/tests/conftest.py index 78a5840c..f2b0d807 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -8,8 +8,6 @@ import jupyterhub import netifaces import pytest - -# from pytest_jupyterhub.jupyterhub_spawners import hub_app from docker import from_env as docker_from_env from docker.errors import APIError from jupyterhub import version_info as jh_version_info @@ -58,19 +56,6 @@ def pytest_collection_modifyitems(items): assert not inspect.isasyncgenfunction(item.obj) -""" -@pytest.fixture -def app(jupyterhub_app): - app = jupyterhub_app - app.config.DockerSpawner.prefix = "dockerspawner-test" - # If it's a prerelease e.g. (2, 0, 0, 'rc4', '') use full tag - if len(jh_version_info) > 3 and jh_version_info[3]: - tag = jupyterhub.__version__ - app.config.DockerSpawner.image = f"jupyterhub/singleuser:{tag}" - return app - """ - - @pytest.fixture async def app(hub_app): config = {"Dockerspawner": {"prefix": "dockerspawner-test"}} From be11f865ab6a6f3850469078bdce794748305316 Mon Sep 17 00:00:00 2001 From: Sheila-nk Date: Thu, 11 May 2023 12:01:38 +0200 Subject: [PATCH 13/16] install pytest-jupyterhub from github --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 024ff0f3..fef0719e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ docker escapism jupyterhub>=1.0 -pytest-jupyterhub +git+https://github.com/jupyterhub/pytest-jupyterhub.git@main#egg=pytest_jupyterhub From fb6ca23e850fff5647625f4294f3574c28fa33cc Mon Sep 17 00:00:00 2001 From: Sheila-nk Date: Thu, 11 May 2023 12:08:31 +0200 Subject: [PATCH 14/16] Revert "install pytest-jupyterhub from github" This reverts commit be11f865ab6a6f3850469078bdce794748305316. --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index fef0719e..024ff0f3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ docker escapism jupyterhub>=1.0 -git+https://github.com/jupyterhub/pytest-jupyterhub.git@main#egg=pytest_jupyterhub +pytest-jupyterhub From bd4d0d5f23206621b6a549338d4ba204a4d47510 Mon Sep 17 00:00:00 2001 From: Sheila-nk Date: Thu, 11 May 2023 12:22:26 +0200 Subject: [PATCH 15/16] use correct format to install package from gh --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 024ff0f3..d087648c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ docker escapism jupyterhub>=1.0 -pytest-jupyterhub +pytest-jupyterhub @ git+https://github.com/jupyterhub/pytest-jupyterhub.git@main From fbceba4daeb62f8214f59edc1a25fc6cd5f0c7ad Mon Sep 17 00:00:00 2001 From: Sheila-nk Date: Thu, 11 May 2023 12:36:49 +0200 Subject: [PATCH 16/16] changed pinned versions of Python & JupyterHub --- .github/workflows/test.yml | 2 -- requirements.txt | 2 +- setup.py | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 29994b25..6a4c4d15 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -20,8 +20,6 @@ jobs: include: - python: 3.8 test: internal-ssl - - python: 3.7 - jupyterhub: 1.5 - python: 3.8 jupyterhub: 2.0 - python: 3.9 diff --git a/requirements.txt b/requirements.txt index d087648c..0cd708bb 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ docker escapism -jupyterhub>=1.0 +jupyterhub>=2.0 pytest-jupyterhub @ git+https://github.com/jupyterhub/pytest-jupyterhub.git@main diff --git a/setup.py b/setup.py index cd4e5968..e43bf428 100644 --- a/setup.py +++ b/setup.py @@ -78,7 +78,7 @@ def run(self): 'docker-swarm = dockerspawner:SwarmSpawner', ], }, - python_requires=">=3.6", + python_requires=">=3.8", cmdclass={ 'bdist_egg': bdist_egg if 'bdist_egg' in sys.argv else bdist_egg_disabled, },