From 7171c47fc2eb5dc5718572b82fa88ec7a582d4bd Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 15 Feb 2022 20:10:15 -0600 Subject: [PATCH 01/14] move tests to top level --- .github/workflows/python-linux.yml | 12 +- .github/workflows/python-macos.yml | 4 +- MANIFEST.in | 1 + examples/simple/conftest.py | 2 +- package-lock.json | 409 +++++++++++++++++- setup.cfg | 6 +- {jupyter_server/tests => tests}/__init__.py | 0 .../tests => tests}/auth/__init__.py | 0 .../tests => tests}/auth/test_authorizer.py | 0 .../tests => tests}/auth/test_login.py | 0 .../tests => tests}/auth/test_security.py | 0 .../tests => tests}/auth/test_utils.py | 0 {jupyter_server => tests}/conftest.py | 0 .../tests => tests}/extension/__init__.py | 0 .../tests => tests}/extension/conftest.py | 0 .../extension/mockextensions/__init__.py | 0 .../extension/mockextensions/app.py | 0 .../extension/mockextensions/mock1.py | 0 .../extension/mockextensions/mock2.py | 0 .../extension/mockextensions/mock3.py | 0 .../extension/mockextensions/mockext_both.py | 0 .../extension/mockextensions/mockext_py.py | 0 .../extension/mockextensions/mockext_sys.py | 0 .../extension/mockextensions/mockext_user.py | 0 .../extension/mockextensions/static/mock.txt | 0 .../tests => tests}/extension/test_app.py | 0 .../tests => tests}/extension/test_config.py | 0 .../extension/test_entrypoint.py | 0 .../tests => tests}/extension/test_handler.py | 0 .../tests => tests}/extension/test_launch.py | 0 .../tests => tests}/extension/test_manager.py | 0 .../extension/test_serverextension.py | 0 .../tests => tests}/extension/test_utils.py | 0 .../namespace-package-test/README.md | 0 .../namespace-package-test/setup.cfg | 0 .../test_namespace/test_package/__init__.py | 0 .../tests => tests}/nbconvert/__init__.py | 0 .../nbconvert/test_handlers.py | 0 .../tests => tests}/services/__init__.py | 0 .../tests => tests}/services/api/__init__.py | 0 .../tests => tests}/services/api/test_api.py | 0 .../services/config/__init__.py | 0 .../services/config/test_api.py | 0 .../services/contents/__init__.py | 0 .../services/contents/test_api.py | 0 .../services/contents/test_config.py | 0 .../services/contents/test_fileio.py | 0 .../contents/test_largefilemanager.py | 0 .../services/contents/test_manager.py | 0 .../services/kernels/__init__.py | 0 .../services/kernels/test_api.py | 0 .../services/kernels/test_config.py | 0 .../services/kernels/test_cull.py | 0 .../services/kernelspecs/__init__.py | 0 .../services/kernelspecs/test_api.py | 0 .../services/nbconvert/__init__.py | 0 .../services/nbconvert/test_api.py | 0 .../services/sessions/__init__.py | 0 .../services/sessions/test_api.py | 0 .../services/sessions/test_manager.py | 0 .../tests => tests}/test_config_manager.py | 0 {jupyter_server/tests => tests}/test_files.py | 0 .../tests => tests}/test_gateway.py | 0 {jupyter_server/tests => tests}/test_paths.py | 0 .../tests => tests}/test_serialize.py | 0 .../tests => tests}/test_serverapp.py | 0 .../tests => tests}/test_terminal.py | 0 .../tests => tests}/test_traittypes.py | 0 {jupyter_server/tests => tests}/test_utils.py | 0 .../tests => tests}/test_version.py | 0 {jupyter_server/tests => tests}/test_view.py | 0 .../tests => tests}/unix_sockets/__init__.py | 0 .../tests => tests}/unix_sockets/conftest.py | 0 .../tests => tests}/unix_sockets/test_api.py | 0 .../test_serverapp_integration.py | 0 {jupyter_server/tests => tests}/utils.py | 0 76 files changed, 420 insertions(+), 14 deletions(-) rename {jupyter_server/tests => tests}/__init__.py (100%) rename {jupyter_server/tests => tests}/auth/__init__.py (100%) rename {jupyter_server/tests => tests}/auth/test_authorizer.py (100%) rename {jupyter_server/tests => tests}/auth/test_login.py (100%) rename {jupyter_server/tests => tests}/auth/test_security.py (100%) rename {jupyter_server/tests => tests}/auth/test_utils.py (100%) rename {jupyter_server => tests}/conftest.py (100%) rename {jupyter_server/tests => tests}/extension/__init__.py (100%) rename {jupyter_server/tests => tests}/extension/conftest.py (100%) rename {jupyter_server/tests => tests}/extension/mockextensions/__init__.py (100%) rename {jupyter_server/tests => tests}/extension/mockextensions/app.py (100%) rename {jupyter_server/tests => tests}/extension/mockextensions/mock1.py (100%) rename {jupyter_server/tests => tests}/extension/mockextensions/mock2.py (100%) rename {jupyter_server/tests => tests}/extension/mockextensions/mock3.py (100%) rename {jupyter_server/tests => tests}/extension/mockextensions/mockext_both.py (100%) rename {jupyter_server/tests => tests}/extension/mockextensions/mockext_py.py (100%) rename {jupyter_server/tests => tests}/extension/mockextensions/mockext_sys.py (100%) rename {jupyter_server/tests => tests}/extension/mockextensions/mockext_user.py (100%) rename {jupyter_server/tests => tests}/extension/mockextensions/static/mock.txt (100%) rename {jupyter_server/tests => tests}/extension/test_app.py (100%) rename {jupyter_server/tests => tests}/extension/test_config.py (100%) rename {jupyter_server/tests => tests}/extension/test_entrypoint.py (100%) rename {jupyter_server/tests => tests}/extension/test_handler.py (100%) rename {jupyter_server/tests => tests}/extension/test_launch.py (100%) rename {jupyter_server/tests => tests}/extension/test_manager.py (100%) rename {jupyter_server/tests => tests}/extension/test_serverextension.py (100%) rename {jupyter_server/tests => tests}/extension/test_utils.py (100%) rename {jupyter_server/tests => tests}/namespace-package-test/README.md (100%) rename {jupyter_server/tests => tests}/namespace-package-test/setup.cfg (100%) rename {jupyter_server/tests => tests}/namespace-package-test/test_namespace/test_package/__init__.py (100%) rename {jupyter_server/tests => tests}/nbconvert/__init__.py (100%) rename {jupyter_server/tests => tests}/nbconvert/test_handlers.py (100%) rename {jupyter_server/tests => tests}/services/__init__.py (100%) rename {jupyter_server/tests => tests}/services/api/__init__.py (100%) rename {jupyter_server/tests => tests}/services/api/test_api.py (100%) rename {jupyter_server/tests => tests}/services/config/__init__.py (100%) rename {jupyter_server/tests => tests}/services/config/test_api.py (100%) rename {jupyter_server/tests => tests}/services/contents/__init__.py (100%) rename {jupyter_server/tests => tests}/services/contents/test_api.py (100%) rename {jupyter_server/tests => tests}/services/contents/test_config.py (100%) rename {jupyter_server/tests => tests}/services/contents/test_fileio.py (100%) rename {jupyter_server/tests => tests}/services/contents/test_largefilemanager.py (100%) rename {jupyter_server/tests => tests}/services/contents/test_manager.py (100%) rename {jupyter_server/tests => tests}/services/kernels/__init__.py (100%) rename {jupyter_server/tests => tests}/services/kernels/test_api.py (100%) rename {jupyter_server/tests => tests}/services/kernels/test_config.py (100%) rename {jupyter_server/tests => tests}/services/kernels/test_cull.py (100%) rename {jupyter_server/tests => tests}/services/kernelspecs/__init__.py (100%) rename {jupyter_server/tests => tests}/services/kernelspecs/test_api.py (100%) rename {jupyter_server/tests => tests}/services/nbconvert/__init__.py (100%) rename {jupyter_server/tests => tests}/services/nbconvert/test_api.py (100%) rename {jupyter_server/tests => tests}/services/sessions/__init__.py (100%) rename {jupyter_server/tests => tests}/services/sessions/test_api.py (100%) rename {jupyter_server/tests => tests}/services/sessions/test_manager.py (100%) rename {jupyter_server/tests => tests}/test_config_manager.py (100%) rename {jupyter_server/tests => tests}/test_files.py (100%) rename {jupyter_server/tests => tests}/test_gateway.py (100%) rename {jupyter_server/tests => tests}/test_paths.py (100%) rename {jupyter_server/tests => tests}/test_serialize.py (100%) rename {jupyter_server/tests => tests}/test_serverapp.py (100%) rename {jupyter_server/tests => tests}/test_terminal.py (100%) rename {jupyter_server/tests => tests}/test_traittypes.py (100%) rename {jupyter_server/tests => tests}/test_utils.py (100%) rename {jupyter_server/tests => tests}/test_version.py (100%) rename {jupyter_server/tests => tests}/test_view.py (100%) rename {jupyter_server/tests => tests}/unix_sockets/__init__.py (100%) rename {jupyter_server/tests => tests}/unix_sockets/conftest.py (100%) rename {jupyter_server/tests => tests}/unix_sockets/test_api.py (100%) rename {jupyter_server/tests => tests}/unix_sockets/test_serverapp_integration.py (100%) rename {jupyter_server/tests => tests}/utils.py (100%) diff --git a/.github/workflows/python-linux.yml b/.github/workflows/python-linux.yml index 8a6bfb4cfc..dc9383a94a 100644 --- a/.github/workflows/python-linux.yml +++ b/.github/workflows/python-linux.yml @@ -51,11 +51,11 @@ jobs: - name: Run the tests if: ${{ matrix.python-version != 'pypy-3.7' }} run: | - pytest -vv jupyter_server --cov jupyter_server --cov-branch --cov-report term-missing:skip-covered + pytest -vv --cov jupyter_server --cov-branch --cov-report term-missing:skip-covered tests - name: Run the tests on pypy if: ${{ matrix.python-version == 'pypy-3.7' }} run: | - pytest -vv jupyter_server + pytest -vv tests - name: Install the Python dependencies for the examples run: | cd examples/simple && pip install -e . @@ -99,7 +99,11 @@ jobs: uses: actions/download-artifact@v2 - name: Install From SDist run: | - pip install --find-links=./sdist "jupyter_server[test]>=0.0.dev0" + cd sdist + mkdir test + tar --strip-components=2 -zxvf jupyter_server* -C ./test + cd test + pip install .[test] pip install pytest-github-actions-annotate-failures - name: Run Test - run: pytest -vv --pyargs --timeout=300 --timeout_method=thread jupyter_server --capture=no + run: pytest -vv --timeout=300 --timeout_method=thread --capture=no tests diff --git a/.github/workflows/python-macos.yml b/.github/workflows/python-macos.yml index 595c586d79..337696783b 100644 --- a/.github/workflows/python-macos.yml +++ b/.github/workflows/python-macos.yml @@ -28,11 +28,11 @@ jobs: - name: Run the tests if: ${{ !startsWith( matrix.python-version, 'pypy' ) }} run: | - pytest -vv jupyter_server --cov jupyter_server --cov-branch --cov-report term-missing:skip-covered + pytest -vv --cov jupyter_server --cov-branch --cov-report term-missing:skip-covered tests - name: Run the tests on pypy if: ${{ startsWith( matrix.python-version, 'pypy' ) }} run: | - pytest -vv jupyter_server + pytest -vv tests - name: Install the Python dependencies for the examples run: | cd examples/simple && pip install -e . diff --git a/MANIFEST.in b/MANIFEST.in index 70ccbaaa91..713cd9e4e2 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -8,6 +8,7 @@ include package.json # include everything in package_data recursive-include jupyter_server * +recursive-include tests * # Documentation graft docs diff --git a/examples/simple/conftest.py b/examples/simple/conftest.py index 366de33537..c661b537d4 100644 --- a/examples/simple/conftest.py +++ b/examples/simple/conftest.py @@ -1 +1 @@ -from jupyter_server.conftest import * # noqa +pytest_plugins = ["jupyter_server.pytest_plugin"] diff --git a/package-lock.json b/package-lock.json index 3e30b1eb86..32df0cb753 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8 +1,405 @@ { "name": "jupyter_server", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "jupyter_server", + "version": "1.0.0", + "license": "BSD", + "dependencies": { + "bootstrap": "^3.4.0", + "copyfiles": "^2.4.1" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/bootstrap": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.4.1.tgz", + "integrity": "sha512-yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/copyfiles": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", + "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", + "dependencies": { + "glob": "^7.0.5", + "minimatch": "^3.0.3", + "mkdirp": "^1.0.4", + "noms": "0.0.0", + "through2": "^2.0.1", + "untildify": "^4.0.0", + "yargs": "^16.1.0" + }, + "bin": { + "copyfiles": "copyfiles", + "copyup": "copyfiles" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/noms": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", + "integrity": "sha1-2o69nzr51nYJGbJ9nNyAkqczKFk=", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "~1.0.31" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "node_modules/string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "engines": { + "node": ">=10" + } + } + }, "dependencies": { "ansi-regex": { "version": "5.0.1", @@ -201,6 +598,11 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, "string-width": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", @@ -211,11 +613,6 @@ "strip-ansi": "^6.0.0" } }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", diff --git a/setup.cfg b/setup.cfg index 322c5106f1..e645842b52 100644 --- a/setup.cfg +++ b/setup.cfg @@ -64,7 +64,11 @@ console_scripts = jupyter-server = jupyter_server.serverapp:main [options.packages.find] -exclude = ['docs*', 'examples*'] +exclude = + docs.* + examples.* + tests + tests.* [flake8] ignore = E, C, W, F403, F811, F841, E402, I100, I101, D400 diff --git a/jupyter_server/tests/__init__.py b/tests/__init__.py similarity index 100% rename from jupyter_server/tests/__init__.py rename to tests/__init__.py diff --git a/jupyter_server/tests/auth/__init__.py b/tests/auth/__init__.py similarity index 100% rename from jupyter_server/tests/auth/__init__.py rename to tests/auth/__init__.py diff --git a/jupyter_server/tests/auth/test_authorizer.py b/tests/auth/test_authorizer.py similarity index 100% rename from jupyter_server/tests/auth/test_authorizer.py rename to tests/auth/test_authorizer.py diff --git a/jupyter_server/tests/auth/test_login.py b/tests/auth/test_login.py similarity index 100% rename from jupyter_server/tests/auth/test_login.py rename to tests/auth/test_login.py diff --git a/jupyter_server/tests/auth/test_security.py b/tests/auth/test_security.py similarity index 100% rename from jupyter_server/tests/auth/test_security.py rename to tests/auth/test_security.py diff --git a/jupyter_server/tests/auth/test_utils.py b/tests/auth/test_utils.py similarity index 100% rename from jupyter_server/tests/auth/test_utils.py rename to tests/auth/test_utils.py diff --git a/jupyter_server/conftest.py b/tests/conftest.py similarity index 100% rename from jupyter_server/conftest.py rename to tests/conftest.py diff --git a/jupyter_server/tests/extension/__init__.py b/tests/extension/__init__.py similarity index 100% rename from jupyter_server/tests/extension/__init__.py rename to tests/extension/__init__.py diff --git a/jupyter_server/tests/extension/conftest.py b/tests/extension/conftest.py similarity index 100% rename from jupyter_server/tests/extension/conftest.py rename to tests/extension/conftest.py diff --git a/jupyter_server/tests/extension/mockextensions/__init__.py b/tests/extension/mockextensions/__init__.py similarity index 100% rename from jupyter_server/tests/extension/mockextensions/__init__.py rename to tests/extension/mockextensions/__init__.py diff --git a/jupyter_server/tests/extension/mockextensions/app.py b/tests/extension/mockextensions/app.py similarity index 100% rename from jupyter_server/tests/extension/mockextensions/app.py rename to tests/extension/mockextensions/app.py diff --git a/jupyter_server/tests/extension/mockextensions/mock1.py b/tests/extension/mockextensions/mock1.py similarity index 100% rename from jupyter_server/tests/extension/mockextensions/mock1.py rename to tests/extension/mockextensions/mock1.py diff --git a/jupyter_server/tests/extension/mockextensions/mock2.py b/tests/extension/mockextensions/mock2.py similarity index 100% rename from jupyter_server/tests/extension/mockextensions/mock2.py rename to tests/extension/mockextensions/mock2.py diff --git a/jupyter_server/tests/extension/mockextensions/mock3.py b/tests/extension/mockextensions/mock3.py similarity index 100% rename from jupyter_server/tests/extension/mockextensions/mock3.py rename to tests/extension/mockextensions/mock3.py diff --git a/jupyter_server/tests/extension/mockextensions/mockext_both.py b/tests/extension/mockextensions/mockext_both.py similarity index 100% rename from jupyter_server/tests/extension/mockextensions/mockext_both.py rename to tests/extension/mockextensions/mockext_both.py diff --git a/jupyter_server/tests/extension/mockextensions/mockext_py.py b/tests/extension/mockextensions/mockext_py.py similarity index 100% rename from jupyter_server/tests/extension/mockextensions/mockext_py.py rename to tests/extension/mockextensions/mockext_py.py diff --git a/jupyter_server/tests/extension/mockextensions/mockext_sys.py b/tests/extension/mockextensions/mockext_sys.py similarity index 100% rename from jupyter_server/tests/extension/mockextensions/mockext_sys.py rename to tests/extension/mockextensions/mockext_sys.py diff --git a/jupyter_server/tests/extension/mockextensions/mockext_user.py b/tests/extension/mockextensions/mockext_user.py similarity index 100% rename from jupyter_server/tests/extension/mockextensions/mockext_user.py rename to tests/extension/mockextensions/mockext_user.py diff --git a/jupyter_server/tests/extension/mockextensions/static/mock.txt b/tests/extension/mockextensions/static/mock.txt similarity index 100% rename from jupyter_server/tests/extension/mockextensions/static/mock.txt rename to tests/extension/mockextensions/static/mock.txt diff --git a/jupyter_server/tests/extension/test_app.py b/tests/extension/test_app.py similarity index 100% rename from jupyter_server/tests/extension/test_app.py rename to tests/extension/test_app.py diff --git a/jupyter_server/tests/extension/test_config.py b/tests/extension/test_config.py similarity index 100% rename from jupyter_server/tests/extension/test_config.py rename to tests/extension/test_config.py diff --git a/jupyter_server/tests/extension/test_entrypoint.py b/tests/extension/test_entrypoint.py similarity index 100% rename from jupyter_server/tests/extension/test_entrypoint.py rename to tests/extension/test_entrypoint.py diff --git a/jupyter_server/tests/extension/test_handler.py b/tests/extension/test_handler.py similarity index 100% rename from jupyter_server/tests/extension/test_handler.py rename to tests/extension/test_handler.py diff --git a/jupyter_server/tests/extension/test_launch.py b/tests/extension/test_launch.py similarity index 100% rename from jupyter_server/tests/extension/test_launch.py rename to tests/extension/test_launch.py diff --git a/jupyter_server/tests/extension/test_manager.py b/tests/extension/test_manager.py similarity index 100% rename from jupyter_server/tests/extension/test_manager.py rename to tests/extension/test_manager.py diff --git a/jupyter_server/tests/extension/test_serverextension.py b/tests/extension/test_serverextension.py similarity index 100% rename from jupyter_server/tests/extension/test_serverextension.py rename to tests/extension/test_serverextension.py diff --git a/jupyter_server/tests/extension/test_utils.py b/tests/extension/test_utils.py similarity index 100% rename from jupyter_server/tests/extension/test_utils.py rename to tests/extension/test_utils.py diff --git a/jupyter_server/tests/namespace-package-test/README.md b/tests/namespace-package-test/README.md similarity index 100% rename from jupyter_server/tests/namespace-package-test/README.md rename to tests/namespace-package-test/README.md diff --git a/jupyter_server/tests/namespace-package-test/setup.cfg b/tests/namespace-package-test/setup.cfg similarity index 100% rename from jupyter_server/tests/namespace-package-test/setup.cfg rename to tests/namespace-package-test/setup.cfg diff --git a/jupyter_server/tests/namespace-package-test/test_namespace/test_package/__init__.py b/tests/namespace-package-test/test_namespace/test_package/__init__.py similarity index 100% rename from jupyter_server/tests/namespace-package-test/test_namespace/test_package/__init__.py rename to tests/namespace-package-test/test_namespace/test_package/__init__.py diff --git a/jupyter_server/tests/nbconvert/__init__.py b/tests/nbconvert/__init__.py similarity index 100% rename from jupyter_server/tests/nbconvert/__init__.py rename to tests/nbconvert/__init__.py diff --git a/jupyter_server/tests/nbconvert/test_handlers.py b/tests/nbconvert/test_handlers.py similarity index 100% rename from jupyter_server/tests/nbconvert/test_handlers.py rename to tests/nbconvert/test_handlers.py diff --git a/jupyter_server/tests/services/__init__.py b/tests/services/__init__.py similarity index 100% rename from jupyter_server/tests/services/__init__.py rename to tests/services/__init__.py diff --git a/jupyter_server/tests/services/api/__init__.py b/tests/services/api/__init__.py similarity index 100% rename from jupyter_server/tests/services/api/__init__.py rename to tests/services/api/__init__.py diff --git a/jupyter_server/tests/services/api/test_api.py b/tests/services/api/test_api.py similarity index 100% rename from jupyter_server/tests/services/api/test_api.py rename to tests/services/api/test_api.py diff --git a/jupyter_server/tests/services/config/__init__.py b/tests/services/config/__init__.py similarity index 100% rename from jupyter_server/tests/services/config/__init__.py rename to tests/services/config/__init__.py diff --git a/jupyter_server/tests/services/config/test_api.py b/tests/services/config/test_api.py similarity index 100% rename from jupyter_server/tests/services/config/test_api.py rename to tests/services/config/test_api.py diff --git a/jupyter_server/tests/services/contents/__init__.py b/tests/services/contents/__init__.py similarity index 100% rename from jupyter_server/tests/services/contents/__init__.py rename to tests/services/contents/__init__.py diff --git a/jupyter_server/tests/services/contents/test_api.py b/tests/services/contents/test_api.py similarity index 100% rename from jupyter_server/tests/services/contents/test_api.py rename to tests/services/contents/test_api.py diff --git a/jupyter_server/tests/services/contents/test_config.py b/tests/services/contents/test_config.py similarity index 100% rename from jupyter_server/tests/services/contents/test_config.py rename to tests/services/contents/test_config.py diff --git a/jupyter_server/tests/services/contents/test_fileio.py b/tests/services/contents/test_fileio.py similarity index 100% rename from jupyter_server/tests/services/contents/test_fileio.py rename to tests/services/contents/test_fileio.py diff --git a/jupyter_server/tests/services/contents/test_largefilemanager.py b/tests/services/contents/test_largefilemanager.py similarity index 100% rename from jupyter_server/tests/services/contents/test_largefilemanager.py rename to tests/services/contents/test_largefilemanager.py diff --git a/jupyter_server/tests/services/contents/test_manager.py b/tests/services/contents/test_manager.py similarity index 100% rename from jupyter_server/tests/services/contents/test_manager.py rename to tests/services/contents/test_manager.py diff --git a/jupyter_server/tests/services/kernels/__init__.py b/tests/services/kernels/__init__.py similarity index 100% rename from jupyter_server/tests/services/kernels/__init__.py rename to tests/services/kernels/__init__.py diff --git a/jupyter_server/tests/services/kernels/test_api.py b/tests/services/kernels/test_api.py similarity index 100% rename from jupyter_server/tests/services/kernels/test_api.py rename to tests/services/kernels/test_api.py diff --git a/jupyter_server/tests/services/kernels/test_config.py b/tests/services/kernels/test_config.py similarity index 100% rename from jupyter_server/tests/services/kernels/test_config.py rename to tests/services/kernels/test_config.py diff --git a/jupyter_server/tests/services/kernels/test_cull.py b/tests/services/kernels/test_cull.py similarity index 100% rename from jupyter_server/tests/services/kernels/test_cull.py rename to tests/services/kernels/test_cull.py diff --git a/jupyter_server/tests/services/kernelspecs/__init__.py b/tests/services/kernelspecs/__init__.py similarity index 100% rename from jupyter_server/tests/services/kernelspecs/__init__.py rename to tests/services/kernelspecs/__init__.py diff --git a/jupyter_server/tests/services/kernelspecs/test_api.py b/tests/services/kernelspecs/test_api.py similarity index 100% rename from jupyter_server/tests/services/kernelspecs/test_api.py rename to tests/services/kernelspecs/test_api.py diff --git a/jupyter_server/tests/services/nbconvert/__init__.py b/tests/services/nbconvert/__init__.py similarity index 100% rename from jupyter_server/tests/services/nbconvert/__init__.py rename to tests/services/nbconvert/__init__.py diff --git a/jupyter_server/tests/services/nbconvert/test_api.py b/tests/services/nbconvert/test_api.py similarity index 100% rename from jupyter_server/tests/services/nbconvert/test_api.py rename to tests/services/nbconvert/test_api.py diff --git a/jupyter_server/tests/services/sessions/__init__.py b/tests/services/sessions/__init__.py similarity index 100% rename from jupyter_server/tests/services/sessions/__init__.py rename to tests/services/sessions/__init__.py diff --git a/jupyter_server/tests/services/sessions/test_api.py b/tests/services/sessions/test_api.py similarity index 100% rename from jupyter_server/tests/services/sessions/test_api.py rename to tests/services/sessions/test_api.py diff --git a/jupyter_server/tests/services/sessions/test_manager.py b/tests/services/sessions/test_manager.py similarity index 100% rename from jupyter_server/tests/services/sessions/test_manager.py rename to tests/services/sessions/test_manager.py diff --git a/jupyter_server/tests/test_config_manager.py b/tests/test_config_manager.py similarity index 100% rename from jupyter_server/tests/test_config_manager.py rename to tests/test_config_manager.py diff --git a/jupyter_server/tests/test_files.py b/tests/test_files.py similarity index 100% rename from jupyter_server/tests/test_files.py rename to tests/test_files.py diff --git a/jupyter_server/tests/test_gateway.py b/tests/test_gateway.py similarity index 100% rename from jupyter_server/tests/test_gateway.py rename to tests/test_gateway.py diff --git a/jupyter_server/tests/test_paths.py b/tests/test_paths.py similarity index 100% rename from jupyter_server/tests/test_paths.py rename to tests/test_paths.py diff --git a/jupyter_server/tests/test_serialize.py b/tests/test_serialize.py similarity index 100% rename from jupyter_server/tests/test_serialize.py rename to tests/test_serialize.py diff --git a/jupyter_server/tests/test_serverapp.py b/tests/test_serverapp.py similarity index 100% rename from jupyter_server/tests/test_serverapp.py rename to tests/test_serverapp.py diff --git a/jupyter_server/tests/test_terminal.py b/tests/test_terminal.py similarity index 100% rename from jupyter_server/tests/test_terminal.py rename to tests/test_terminal.py diff --git a/jupyter_server/tests/test_traittypes.py b/tests/test_traittypes.py similarity index 100% rename from jupyter_server/tests/test_traittypes.py rename to tests/test_traittypes.py diff --git a/jupyter_server/tests/test_utils.py b/tests/test_utils.py similarity index 100% rename from jupyter_server/tests/test_utils.py rename to tests/test_utils.py diff --git a/jupyter_server/tests/test_version.py b/tests/test_version.py similarity index 100% rename from jupyter_server/tests/test_version.py rename to tests/test_version.py diff --git a/jupyter_server/tests/test_view.py b/tests/test_view.py similarity index 100% rename from jupyter_server/tests/test_view.py rename to tests/test_view.py diff --git a/jupyter_server/tests/unix_sockets/__init__.py b/tests/unix_sockets/__init__.py similarity index 100% rename from jupyter_server/tests/unix_sockets/__init__.py rename to tests/unix_sockets/__init__.py diff --git a/jupyter_server/tests/unix_sockets/conftest.py b/tests/unix_sockets/conftest.py similarity index 100% rename from jupyter_server/tests/unix_sockets/conftest.py rename to tests/unix_sockets/conftest.py diff --git a/jupyter_server/tests/unix_sockets/test_api.py b/tests/unix_sockets/test_api.py similarity index 100% rename from jupyter_server/tests/unix_sockets/test_api.py rename to tests/unix_sockets/test_api.py diff --git a/jupyter_server/tests/unix_sockets/test_serverapp_integration.py b/tests/unix_sockets/test_serverapp_integration.py similarity index 100% rename from jupyter_server/tests/unix_sockets/test_serverapp_integration.py rename to tests/unix_sockets/test_serverapp_integration.py diff --git a/jupyter_server/tests/utils.py b/tests/utils.py similarity index 100% rename from jupyter_server/tests/utils.py rename to tests/utils.py From cc086171bd5296252eac1061ce172ad1d5263fc4 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 15 Feb 2022 20:11:16 -0600 Subject: [PATCH 02/14] try on my branch --- .github/workflows/python-linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-linux.yml b/.github/workflows/python-linux.yml index dc9383a94a..647bca9fd9 100644 --- a/.github/workflows/python-linux.yml +++ b/.github/workflows/python-linux.yml @@ -1,7 +1,7 @@ name: Jupyter Server Tests [Linux] on: push: - branches: ["main"] + branches: ["*"] pull_request: branches: ["*"] jobs: From 03334483913db75b869318f05bed5ba9cd9696c8 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 15 Feb 2022 20:17:44 -0600 Subject: [PATCH 03/14] debug --- .github/workflows/python-linux.yml | 2 ++ MANIFEST.in | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/python-linux.yml b/.github/workflows/python-linux.yml index 647bca9fd9..5d76cfdae2 100644 --- a/.github/workflows/python-linux.yml +++ b/.github/workflows/python-linux.yml @@ -99,10 +99,12 @@ jobs: uses: actions/download-artifact@v2 - name: Install From SDist run: | + set -ex cd sdist mkdir test tar --strip-components=2 -zxvf jupyter_server* -C ./test cd test + ls pip install .[test] pip install pytest-github-actions-annotate-failures - name: Run Test diff --git a/MANIFEST.in b/MANIFEST.in index 713cd9e4e2..5ec49b2ec5 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -3,7 +3,6 @@ include CONTRIBUTING.rst include README.md include RELEASE.md include CHANGELOG.md -include setupbase.py include package.json # include everything in package_data From 83af755f5ee0a63c4d27505abb08eaa09b2312b5 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 15 Feb 2022 20:21:08 -0600 Subject: [PATCH 04/14] fix extraction --- .github/workflows/python-linux.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/python-linux.yml b/.github/workflows/python-linux.yml index 5d76cfdae2..1aa7fa9b42 100644 --- a/.github/workflows/python-linux.yml +++ b/.github/workflows/python-linux.yml @@ -102,9 +102,8 @@ jobs: set -ex cd sdist mkdir test - tar --strip-components=2 -zxvf jupyter_server* -C ./test + tar --strip-components=1 -zxvf jupyter_server* -C ./test cd test - ls pip install .[test] pip install pytest-github-actions-annotate-failures - name: Run Test From 07019e5f57d3ee8afba0c5cfc95ddb426b5bff5e Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 15 Feb 2022 20:21:41 -0600 Subject: [PATCH 05/14] fix test step --- .github/workflows/python-linux.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/python-linux.yml b/.github/workflows/python-linux.yml index 1aa7fa9b42..0e466d6a00 100644 --- a/.github/workflows/python-linux.yml +++ b/.github/workflows/python-linux.yml @@ -107,4 +107,6 @@ jobs: pip install .[test] pip install pytest-github-actions-annotate-failures - name: Run Test - run: pytest -vv --timeout=300 --timeout_method=thread --capture=no tests + run: | + cd sdist/test + pytest -vv --timeout=300 --timeout_method=thread --capture=no tests From feeba0c177387fbe0aa8f7c58dae76323d4f2bc7 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Tue, 15 Feb 2022 20:37:45 -0600 Subject: [PATCH 06/14] clean up imports --- tests/extension/mockextensions/__init__.py | 8 +++---- tests/extension/mockextensions/app.py | 6 ++--- tests/extension/mockextensions/mock1.py | 2 +- tests/extension/mockextensions/mock2.py | 2 +- .../extension/mockextensions/mockext_both.py | 2 +- tests/extension/mockextensions/mockext_py.py | 2 +- tests/extension/mockextensions/mockext_sys.py | 2 +- .../extension/mockextensions/mockext_user.py | 2 +- tests/extension/test_app.py | 14 ++++++------ tests/extension/test_handler.py | 10 +++------ tests/extension/test_manager.py | 18 +++++++-------- tests/extension/test_serverextension.py | 22 +++++++++---------- tests/extension/test_utils.py | 8 +++---- tests/services/sessions/test_api.py | 6 ++--- 14 files changed, 49 insertions(+), 55 deletions(-) diff --git a/tests/extension/mockextensions/__init__.py b/tests/extension/mockextensions/__init__.py index 7b60ae58ba..0858256984 100644 --- a/tests/extension/mockextensions/__init__.py +++ b/tests/extension/mockextensions/__init__.py @@ -9,10 +9,10 @@ def _jupyter_server_extension_points(): return [ { - "module": "jupyter_server.tests.extension.mockextensions.app", + "module": "tests.extension.mockextensions.app", "app": MockExtensionApp, }, - {"module": "jupyter_server.tests.extension.mockextensions.mock1"}, - {"module": "jupyter_server.tests.extension.mockextensions.mock2"}, - {"module": "jupyter_server.tests.extension.mockextensions.mock3"}, + {"module": "tests.extension.mockextensions.mock1"}, + {"module": "tests.extension.mockextensions.mock2"}, + {"module": "tests.extension.mockextensions.mock3"}, ] diff --git a/tests/extension/mockextensions/app.py b/tests/extension/mockextensions/app.py index 7045417b23..3e86f4fc36 100644 --- a/tests/extension/mockextensions/app.py +++ b/tests/extension/mockextensions/app.py @@ -37,13 +37,11 @@ class MockExtensionApp(ExtensionAppJinjaMixin, ExtensionApp): mock_trait = Unicode("mock trait", config=True) loaded = False - serverapp_config = { - "jpserver_extensions": {"jupyter_server.tests.extension.mockextensions.mock1": True} - } + serverapp_config = {"jpserver_extensions": {"tests.extension.mockextensions.mock1": True}} @staticmethod def get_extension_package(): - return "jupyter_server.tests.extension.mockextensions" + return "tests.extension.mockextensions" def initialize_handlers(self): self.handlers.append(("/mock", MockExtensionHandler)) diff --git a/tests/extension/mockextensions/mock1.py b/tests/extension/mockextensions/mock1.py index 49f6d77a26..9d2a3cce69 100644 --- a/tests/extension/mockextensions/mock1.py +++ b/tests/extension/mockextensions/mock1.py @@ -2,7 +2,7 @@ """ # by the test functions. def _jupyter_server_extension_paths(): - return [{"module": "jupyter_server.tests.extension.mockextensions.mock1"}] + return [{"module": "tests.extension.mockextensions.mock1"}] def _load_jupyter_server_extension(serverapp): diff --git a/tests/extension/mockextensions/mock2.py b/tests/extension/mockextensions/mock2.py index 87b8f4591c..97cce4c776 100644 --- a/tests/extension/mockextensions/mock2.py +++ b/tests/extension/mockextensions/mock2.py @@ -2,7 +2,7 @@ """ # by the test functions. def _jupyter_server_extension_paths(): - return [{"module": "jupyter_server.tests.extension.mockextensions.mock2"}] + return [{"module": "tests.extension.mockextensions.mock2"}] def _load_jupyter_server_extension(serverapp): diff --git a/tests/extension/mockextensions/mockext_both.py b/tests/extension/mockextensions/mockext_both.py index 38076e5c2d..7df390f7cf 100644 --- a/tests/extension/mockextensions/mockext_both.py +++ b/tests/extension/mockextensions/mockext_both.py @@ -3,7 +3,7 @@ # Function that makes these extensions discoverable # by the test functions. def _jupyter_server_extension_paths(): - return [{"module": "jupyter_server.tests.extension.mockextensions.mockext_both"}] + return [{"module": "tests.extension.mockextensions.mockext_both"}] def _load_jupyter_server_extension(serverapp): diff --git a/tests/extension/mockextensions/mockext_py.py b/tests/extension/mockextensions/mockext_py.py index d0cf69b38c..bef4b6be52 100644 --- a/tests/extension/mockextensions/mockext_py.py +++ b/tests/extension/mockextensions/mockext_py.py @@ -3,7 +3,7 @@ # Function that makes these extensions discoverable # by the test functions. def _jupyter_server_extension_paths(): - return [{"module": "jupyter_server.tests.extension.mockextensions.mockext_py"}] + return [{"module": "tests.extension.mockextensions.mockext_py"}] def _load_jupyter_server_extension(serverapp): diff --git a/tests/extension/mockextensions/mockext_sys.py b/tests/extension/mockextensions/mockext_sys.py index 70506e2fe3..f06aa4e973 100644 --- a/tests/extension/mockextensions/mockext_sys.py +++ b/tests/extension/mockextensions/mockext_sys.py @@ -3,7 +3,7 @@ # Function that makes these extensions discoverable # by the test functions. def _jupyter_server_extension_paths(): - return [{"module": "jupyter_server.tests.extension.mockextensions.mockext_sys"}] + return [{"module": "tests.extension.mockextensions.mockext_sys"}] def _load_jupyter_server_extension(serverapp): diff --git a/tests/extension/mockextensions/mockext_user.py b/tests/extension/mockextensions/mockext_user.py index c1e8eafebc..c9ba107cb5 100644 --- a/tests/extension/mockextensions/mockext_user.py +++ b/tests/extension/mockextensions/mockext_user.py @@ -3,7 +3,7 @@ # Function that makes these extensions discoverable # by the test functions. def _jupyter_server_extension_paths(): - return [{"module": "jupyter_server.tests.extension.mockextensions.mockext_user"}] + return [{"module": "tests.extension.mockextensions.mockext_user"}] def _load_jupyter_server_extension(serverapp): diff --git a/tests/extension/test_app.py b/tests/extension/test_app.py index 5078a5c5bc..dc045631a2 100644 --- a/tests/extension/test_app.py +++ b/tests/extension/test_app.py @@ -10,7 +10,7 @@ def jp_server_config(jp_template_dir): config = { "ServerApp": { - "jpserver_extensions": {"jupyter_server.tests.extension.mockextensions": True}, + "jpserver_extensions": {"tests.extension.mockextensions": True}, }, "MockExtensionApp": { "template_paths": [str(jp_template_dir)], @@ -22,7 +22,7 @@ def jp_server_config(jp_template_dir): @pytest.fixture def mock_extension(extension_manager): - name = "jupyter_server.tests.extension.mockextensions" + name = "tests.extension.mockextensions" pkg = extension_manager.extensions[name] point = pkg.extension_points["mockextension"] app = point.app @@ -115,12 +115,12 @@ def test_browser_open(monkeypatch, jp_environ, config, expected_value): def test_load_parallel_extensions(monkeypatch, jp_environ): serverapp = MockExtensionApp.initialize_server() exts = serverapp.extension_manager.extensions - assert "jupyter_server.tests.extension.mockextensions.mock1" in exts - assert "jupyter_server.tests.extension.mockextensions" in exts + assert "tests.extension.mockextensions.mock1" in exts + assert "tests.extension.mockextensions" in exts exts = serverapp.jpserver_extensions - assert exts["jupyter_server.tests.extension.mockextensions.mock1"] - assert exts["jupyter_server.tests.extension.mockextensions"] + assert exts["tests.extension.mockextensions.mock1"] + assert exts["tests.extension.mockextensions"] def test_stop_extension(jp_serverapp, caplog): @@ -132,7 +132,7 @@ def test_stop_extension(jp_serverapp, caplog): # load extensions (make sure we only have the one extension loaded jp_serverapp.extension_manager.load_all_extensions() - extension_name = "jupyter_server.tests.extension.mockextensions" + extension_name = "tests.extension.mockextensions" assert list(jp_serverapp.extension_manager.extension_apps) == [extension_name] # add a stop_extension method for the extension app diff --git a/tests/extension/test_handler.py b/tests/extension/test_handler.py index d920c66bf7..870e311b4a 100644 --- a/tests/extension/test_handler.py +++ b/tests/extension/test_handler.py @@ -4,9 +4,7 @@ @pytest.fixture def jp_server_config(jp_template_dir): return { - "ServerApp": { - "jpserver_extensions": {"jupyter_server.tests.extension.mockextensions": True} - }, + "ServerApp": {"jpserver_extensions": {"tests.extension.mockextensions": True}}, "MockExtensionApp": {"template_paths": [str(jp_template_dir)]}, } @@ -26,9 +24,7 @@ async def test_handler_template(jp_fetch, mock_template): "jp_server_config", [ { - "ServerApp": { - "jpserver_extensions": {"jupyter_server.tests.extension.mockextensions": True} - }, + "ServerApp": {"jpserver_extensions": {"tests.extension.mockextensions": True}}, "MockExtensionApp": { # Change a trait in the MockExtensionApp using # the following config value. @@ -58,7 +54,7 @@ async def test_handler_argv(jp_fetch, jp_argv): ( { "ServerApp": { - "jpserver_extensions": {"jupyter_server.tests.extension.mockextensions": True}, + "jpserver_extensions": {"tests.extension.mockextensions": True}, # Move extension handlers behind a url prefix "base_url": "test_prefix", }, diff --git a/tests/extension/test_manager.py b/tests/extension/test_manager.py index 148b6ea6d9..2a0956e19c 100644 --- a/tests/extension/test_manager.py +++ b/tests/extension/test_manager.py @@ -58,7 +58,7 @@ def test_extension_package_api(): path1 = metadata_list[0] app = path1["app"] - e = ExtensionPackage(name="jupyter_server.tests.extension.mockextensions") + e = ExtensionPackage(name="tests.extension.mockextensions") e.extension_points assert hasattr(e, "extension_points") assert len(e.extension_points) == len(metadata_list) @@ -76,18 +76,18 @@ def _normalize_path(path_list): def test_extension_manager_api(jp_serverapp): - jpserver_extensions = {"jupyter_server.tests.extension.mockextensions": True} + jpserver_extensions = {"tests.extension.mockextensions": True} manager = ExtensionManager(serverapp=jp_serverapp) assert manager.config_manager expected = _normalize_path(os.path.join(jupyter_config_path()[0], "serverconfig")) assert _normalize_path(manager.config_manager.read_config_path[0]) == expected manager.from_jpserver_extensions(jpserver_extensions) assert len(manager.extensions) == 1 - assert "jupyter_server.tests.extension.mockextensions" in manager.extensions + assert "tests.extension.mockextensions" in manager.extensions def test_extension_manager_linked_extensions(jp_serverapp): - name = "jupyter_server.tests.extension.mockextensions" + name = "tests.extension.mockextensions" manager = ExtensionManager(serverapp=jp_serverapp) manager.add_extension(name, enabled=True) manager.link_extension(name) @@ -95,7 +95,7 @@ def test_extension_manager_linked_extensions(jp_serverapp): def test_extension_manager_fail_add(jp_serverapp): - name = "jupyter_server.tests.extension.notanextension" + name = "tests.extension.notanextension" manager = ExtensionManager(serverapp=jp_serverapp) manager.add_extension(name, enabled=True) # should only warn jp_serverapp.reraise_server_extension_failures = True @@ -104,9 +104,9 @@ def test_extension_manager_fail_add(jp_serverapp): def test_extension_manager_fail_link(jp_serverapp): - name = "jupyter_server.tests.extension.mockextensions.app" + name = "tests.extension.mockextensions.app" with mock.patch( - "jupyter_server.tests.extension.mockextensions.app.MockExtensionApp.parse_command_line", + "tests.extension.mockextensions.app.MockExtensionApp.parse_command_line", side_effect=RuntimeError, ): manager = ExtensionManager(serverapp=jp_serverapp) @@ -118,9 +118,9 @@ def test_extension_manager_fail_link(jp_serverapp): def test_extension_manager_fail_load(jp_serverapp): - name = "jupyter_server.tests.extension.mockextensions.app" + name = "tests.extension.mockextensions.app" with mock.patch( - "jupyter_server.tests.extension.mockextensions.app.MockExtensionApp.initialize_handlers", + "tests.extension.mockextensions.app.MockExtensionApp.initialize_handlers", side_effect=RuntimeError, ): manager = ExtensionManager(serverapp=jp_serverapp) diff --git a/tests/extension/test_serverextension.py b/tests/extension/test_serverextension.py index 5140cdf49a..01f40b4ee2 100644 --- a/tests/extension/test_serverextension.py +++ b/tests/extension/test_serverextension.py @@ -46,12 +46,12 @@ def test_merge_config(jp_env_config_path, jp_configurable_serverapp, jp_extensio # Toggle each extension module with a JSON config file # at the sys-prefix config dir. toggle_server_extension_python( - "jupyter_server.tests.extension.mockextensions.mockext_sys", + "tests.extension.mockextensions.mockext_sys", enabled=True, sys_prefix=True, ) toggle_server_extension_python( - "jupyter_server.tests.extension.mockextensions.mockext_user", + "tests.extension.mockextensions.mockext_user", enabled=True, user=True, ) @@ -60,29 +60,29 @@ def test_merge_config(jp_env_config_path, jp_configurable_serverapp, jp_extensio # sys-prefix supercedes users, so the extension should be disabled # when these two configs merge. toggle_server_extension_python( - "jupyter_server.tests.extension.mockextensions.mockext_both", + "tests.extension.mockextensions.mockext_both", enabled=True, sys_prefix=True, ) toggle_server_extension_python( - "jupyter_server.tests.extension.mockextensions.mockext_both", + "tests.extension.mockextensions.mockext_both", enabled=False, user=True, ) arg = "--ServerApp.jpserver_extensions={{'{mockext_py}': True}}".format( - mockext_py="jupyter_server.tests.extension.mockextensions.mockext_py" + mockext_py="tests.extension.mockextensions.mockext_py" ) # Enable the last extension, mockext_py, using the CLI interface. app = jp_configurable_serverapp(config_dir=str(jp_env_config_path), argv=[arg]) # Verify that extensions are enabled and merged in proper order. extensions = app.jpserver_extensions - assert extensions["jupyter_server.tests.extension.mockextensions.mockext_user"] - assert extensions["jupyter_server.tests.extension.mockextensions.mockext_sys"] - assert extensions["jupyter_server.tests.extension.mockextensions.mockext_py"] + assert extensions["tests.extension.mockextensions.mockext_user"] + assert extensions["tests.extension.mockextensions.mockext_sys"] + assert extensions["tests.extension.mockextensions.mockext_py"] # Merging should causes this extension to be disabled. - assert not extensions["jupyter_server.tests.extension.mockextensions.mockext_both"] + assert not extensions["tests.extension.mockextensions.mockext_both"] @pytest.mark.parametrize( @@ -92,8 +92,8 @@ def test_merge_config(jp_env_config_path, jp_configurable_serverapp, jp_extensio "ServerApp": { "jpserver_extensions": OrderedDict( [ - ("jupyter_server.tests.extension.mockextensions.mock2", True), - ("jupyter_server.tests.extension.mockextensions.mock1", True), + ("tests.extension.mockextensions.mock2", True), + ("tests.extension.mockextensions.mock1", True), ] ) } diff --git a/tests/extension/test_utils.py b/tests/extension/test_utils.py index 425b6bad9e..8ce59e9027 100644 --- a/tests/extension/test_utils.py +++ b/tests/extension/test_utils.py @@ -11,10 +11,10 @@ def test_validate_extension(): # enabled at sys level - assert validate_extension("jupyter_server.tests.extension.mockextensions.mockext_sys") + assert validate_extension("tests.extension.mockextensions.mockext_sys") # enabled at sys, disabled at user - assert validate_extension("jupyter_server.tests.extension.mockextensions.mockext_both") + assert validate_extension("tests.extension.mockextensions.mockext_both") # enabled at user - assert validate_extension("jupyter_server.tests.extension.mockextensions.mockext_user") + assert validate_extension("tests.extension.mockextensions.mockext_user") # enabled at Python - assert validate_extension("jupyter_server.tests.extension.mockextensions.mockext_py") + assert validate_extension("tests.extension.mockextensions.mockext_py") diff --git a/tests/services/sessions/test_api.py b/tests/services/sessions/test_api.py index 3bbc5d0cd9..3acaadaaca 100644 --- a/tests/services/sessions/test_api.py +++ b/tests/services/sessions/test_api.py @@ -37,7 +37,7 @@ class NewPortsMappingKernelManager(AsyncMappingKernelManager): @default("kernel_manager_class") def _default_kernel_manager_class(self): self.log.debug("NewPortsMappingKernelManager in _default_kernel_manager_class!") - return "jupyter_server.tests.services.sessions.test_api.NewPortsKernelManager" + return "tests.services.sessions.test_api.NewPortsKernelManager" configs = [ @@ -53,7 +53,7 @@ def _default_kernel_manager_class(self): }, { "ServerApp": { - "kernel_manager_class": "jupyter_server.tests.services.sessions.test_api.NewPortsMappingKernelManager" + "kernel_manager_class": "tests.services.sessions.test_api.NewPortsMappingKernelManager" } }, ] @@ -66,7 +66,7 @@ def _default_kernel_manager_class(self): # Add a pending kernels condition c = { "ServerApp": { - "kernel_manager_class": "jupyter_server.tests.services.sessions.test_api.NewPortsMappingKernelManager" + "kernel_manager_class": "tests.services.sessions.test_api.NewPortsMappingKernelManager" }, "AsyncMappingKernelManager": {"use_pending_kernels": True}, } From 5232c6aac458165aa08ba6aff53621d845982739 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Thu, 17 Feb 2022 11:45:49 -0600 Subject: [PATCH 07/14] undo change to event criterion --- .github/workflows/python-linux.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-linux.yml b/.github/workflows/python-linux.yml index 0e466d6a00..89c8bd6c10 100644 --- a/.github/workflows/python-linux.yml +++ b/.github/workflows/python-linux.yml @@ -1,7 +1,7 @@ name: Jupyter Server Tests [Linux] on: push: - branches: ["*"] + branches: ["main"] pull_request: branches: ["*"] jobs: From 059757fb1c17309eadbdc958fa9a213ae6b47cdf Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Thu, 17 Feb 2022 11:49:10 -0600 Subject: [PATCH 08/14] update invocations --- .github/workflows/integration-tests.yml | 2 +- .github/workflows/python-windows.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 3ce3622289..bb7e770201 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -27,4 +27,4 @@ jobs: pip check - name: Run the tests run: | - pytest -vv --integration_tests=true jupyter_server + pytest -vv --integration_tests=true tests diff --git a/.github/workflows/python-windows.yml b/.github/workflows/python-windows.yml index 31123e92d2..86fb6fd2f9 100644 --- a/.github/workflows/python-windows.yml +++ b/.github/workflows/python-windows.yml @@ -32,7 +32,7 @@ jobs: # the file descriptions opened by the asyncio IOLoop. # This leads to a nasty, flaky race condition that we haven't # been able to solve. - pytest -vv -s jupyter_server + pytest -vv -s tests - name: Install the Python dependencies for the examples run: | cd examples/simple && pip install -e . From 91130b3449f70c613e795ce5c301d8378c63c081 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Thu, 17 Feb 2022 11:57:46 -0600 Subject: [PATCH 09/14] undo changes to package lock --- package-lock.json | 409 +--------------------------------------------- 1 file changed, 6 insertions(+), 403 deletions(-) diff --git a/package-lock.json b/package-lock.json index 32df0cb753..3e30b1eb86 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,405 +1,8 @@ { "name": "jupyter_server", "version": "1.0.0", - "lockfileVersion": 2, + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "jupyter_server", - "version": "1.0.0", - "license": "BSD", - "dependencies": { - "bootstrap": "^3.4.0", - "copyfiles": "^2.4.1" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/bootstrap": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.4.1.tgz", - "integrity": "sha512-yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "node_modules/copyfiles": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", - "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", - "dependencies": { - "glob": "^7.0.5", - "minimatch": "^3.0.3", - "mkdirp": "^1.0.4", - "noms": "0.0.0", - "through2": "^2.0.1", - "untildify": "^4.0.0", - "yargs": "^16.1.0" - }, - "bin": { - "copyfiles": "copyfiles", - "copyup": "copyfiles" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/noms": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", - "integrity": "sha1-2o69nzr51nYJGbJ9nNyAkqczKFk=", - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "~1.0.31" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, - "node_modules/string-width": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", - "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/through2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "engines": { - "node": ">=10" - } - } - }, "dependencies": { "ansi-regex": { "version": "5.0.1", @@ -598,11 +201,6 @@ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - }, "string-width": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", @@ -613,6 +211,11 @@ "strip-ansi": "^6.0.0" } }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", From 5d3a9f5eb3a1311d99ae1f2ae9bc2dc9a2c5c153 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Thu, 17 Feb 2022 13:22:55 -0600 Subject: [PATCH 10/14] move conftest to top level --- tests/conftest.py | 50 ++++++++++++++++++++++++++++++++++++ tests/extension/conftest.py | 51 ------------------------------------- 2 files changed, 50 insertions(+), 51 deletions(-) delete mode 100644 tests/extension/conftest.py diff --git a/tests/conftest.py b/tests/conftest.py index e1a9fe0dd0..ede0803455 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,5 +1,7 @@ import pytest +from tests.extension.mockextensions.app import MockExtensionApp + pytest_plugins = ["jupyter_server.pytest_plugin"] @@ -29,3 +31,51 @@ def pytest_runtest_setup(item): pytest.skip( "Skipping this test because it's marked 'integration_test'. Run integration tests using the `--integration_tests` flag." ) + + +mock_html = """ + + + + + {% block title %}Jupyter Server 1{% endblock %} + + + {% block meta %} + {% endblock %} + + +
+ {% block site %} + {% endblock site %} +
+ {% block after_site %} + {% endblock after_site %} + + +""" + + +@pytest.fixture +def mock_template(jp_template_dir): + index = jp_template_dir.joinpath("index.html") + index.write_text(mock_html) + + +@pytest.fixture +def extension_manager(jp_serverapp): + return jp_serverapp.extension_manager + + +@pytest.fixture +def config_file(jp_config_dir): + """""" + f = jp_config_dir.joinpath("jupyter_mockextension_config.py") + f.write_text("c.MockExtensionApp.mock_trait ='config from file'") + return f + + +@pytest.fixture(autouse=True) +def jp_mockextension_cleanup(): + yield + MockExtensionApp.clear_instance() diff --git a/tests/extension/conftest.py b/tests/extension/conftest.py deleted file mode 100644 index af7b714c37..0000000000 --- a/tests/extension/conftest.py +++ /dev/null @@ -1,51 +0,0 @@ -import pytest - -from .mockextensions.app import MockExtensionApp - - -mock_html = """ - - - - - {% block title %}Jupyter Server 1{% endblock %} - - - {% block meta %} - {% endblock %} - - -
- {% block site %} - {% endblock site %} -
- {% block after_site %} - {% endblock after_site %} - - -""" - - -@pytest.fixture -def mock_template(jp_template_dir): - index = jp_template_dir.joinpath("index.html") - index.write_text(mock_html) - - -@pytest.fixture -def extension_manager(jp_serverapp): - return jp_serverapp.extension_manager - - -@pytest.fixture -def config_file(jp_config_dir): - """""" - f = jp_config_dir.joinpath("jupyter_mockextension_config.py") - f.write_text("c.MockExtensionApp.mock_trait ='config from file'") - return f - - -@pytest.fixture(autouse=True) -def jp_mockextension_cleanup(): - yield - MockExtensionApp.clear_instance() From 0b2e2529174498ba4506b7a4f5fb6d6d77f589ca Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Thu, 17 Feb 2022 13:35:26 -0600 Subject: [PATCH 11/14] fix path usage --- tests/extension/test_launch.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/extension/test_launch.py b/tests/extension/test_launch.py index e5cc12e7a7..b805864ab5 100644 --- a/tests/extension/test_launch.py +++ b/tests/extension/test_launch.py @@ -61,13 +61,13 @@ def _kill_extension_app(): [ sys.executable, "-m", - "mockextensions.app", + "tests.extensions.mockextensions.app", f"--port={port}", "--ip=127.0.0.1", "--no-browser", *argv, ], - cwd=HERE, + cwd=os.path.dirname(os.path.dirname(HERE)), ) request.addfinalizer(_kill_extension_app) From cd8656ff84962a8e92ec5f565600a98f6febed58 Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Thu, 17 Feb 2022 13:51:52 -0600 Subject: [PATCH 12/14] try with editable install --- .github/workflows/python-linux.yml | 2 +- tests/extension/test_launch.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/python-linux.yml b/.github/workflows/python-linux.yml index 89c8bd6c10..c5a1e38c18 100644 --- a/.github/workflows/python-linux.yml +++ b/.github/workflows/python-linux.yml @@ -104,7 +104,7 @@ jobs: mkdir test tar --strip-components=1 -zxvf jupyter_server* -C ./test cd test - pip install .[test] + pip install -e .[test] pip install pytest-github-actions-annotate-failures - name: Run Test run: | diff --git a/tests/extension/test_launch.py b/tests/extension/test_launch.py index b805864ab5..e5cc12e7a7 100644 --- a/tests/extension/test_launch.py +++ b/tests/extension/test_launch.py @@ -61,13 +61,13 @@ def _kill_extension_app(): [ sys.executable, "-m", - "tests.extensions.mockextensions.app", + "mockextensions.app", f"--port={port}", "--ip=127.0.0.1", "--no-browser", *argv, ], - cwd=os.path.dirname(os.path.dirname(HERE)), + cwd=HERE, ) request.addfinalizer(_kill_extension_app) From b989c28a78f6f9a3151b1572068cfbcb610f65fa Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Thu, 17 Feb 2022 16:15:26 -0600 Subject: [PATCH 13/14] cleanup --- .github/workflows/python-linux.yml | 6 +++--- .github/workflows/python-macos.yml | 4 ++-- .github/workflows/python-windows.yml | 2 +- pyproject.toml | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/python-linux.yml b/.github/workflows/python-linux.yml index c5a1e38c18..0bc5e2095d 100644 --- a/.github/workflows/python-linux.yml +++ b/.github/workflows/python-linux.yml @@ -51,11 +51,11 @@ jobs: - name: Run the tests if: ${{ matrix.python-version != 'pypy-3.7' }} run: | - pytest -vv --cov jupyter_server --cov-branch --cov-report term-missing:skip-covered tests + pytest -vv --cov jupyter_server --cov-branch --cov-report term-missing:skip-covered - name: Run the tests on pypy if: ${{ matrix.python-version == 'pypy-3.7' }} run: | - pytest -vv tests + pytest -vv - name: Install the Python dependencies for the examples run: | cd examples/simple && pip install -e . @@ -109,4 +109,4 @@ jobs: - name: Run Test run: | cd sdist/test - pytest -vv --timeout=300 --timeout_method=thread --capture=no tests + pytest -vv diff --git a/.github/workflows/python-macos.yml b/.github/workflows/python-macos.yml index 337696783b..2a3dbbdb8d 100644 --- a/.github/workflows/python-macos.yml +++ b/.github/workflows/python-macos.yml @@ -28,11 +28,11 @@ jobs: - name: Run the tests if: ${{ !startsWith( matrix.python-version, 'pypy' ) }} run: | - pytest -vv --cov jupyter_server --cov-branch --cov-report term-missing:skip-covered tests + pytest -vv --cov jupyter_server --cov-branch --cov-report term-missing:skip-covered - name: Run the tests on pypy if: ${{ startsWith( matrix.python-version, 'pypy' ) }} run: | - pytest -vv tests + pytest -vv - name: Install the Python dependencies for the examples run: | cd examples/simple && pip install -e . diff --git a/.github/workflows/python-windows.yml b/.github/workflows/python-windows.yml index 86fb6fd2f9..f766c08f11 100644 --- a/.github/workflows/python-windows.yml +++ b/.github/workflows/python-windows.yml @@ -32,7 +32,7 @@ jobs: # the file descriptions opened by the asyncio IOLoop. # This leads to a nasty, flaky race condition that we haven't # been able to solve. - pytest -vv -s tests + pytest -vv -s - name: Install the Python dependencies for the examples run: | cd examples/simple && pip install -e . diff --git a/pyproject.toml b/pyproject.toml index 7e7bfa8b3a..dcb7c30e9f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,7 +11,7 @@ ignore = ["tbump.toml", ".*", "*.yml", "package-lock.json", "bootstrap*", "conft [tool.pytest.ini_options] addopts = "--doctest-modules" testpaths = [ - "jupyter_server/" + "tests/" ] timeout = 300 timeout_method = "thread" From ca89dedebb6dd7b2fda953d6f908efdeecbecabf Mon Sep 17 00:00:00 2001 From: Steven Silvester Date: Thu, 17 Feb 2022 16:35:12 -0600 Subject: [PATCH 14/14] update docs --- CONTRIBUTING.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index e70dcd0b0f..09b67e0dca 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -89,7 +89,7 @@ Install dependencies:: To run the Python tests, use:: - pytest jupyter_server + pytest pytest examples/simple # to test the examples Building the Docs