diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index b47fb720..059a0f60 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -11,15 +11,14 @@ jobs: cd-job: name: Continuous Delivery runs-on: ubuntu-24.04 + permissions: + contents: write steps: - - name: SCM Checkout uses: actions/checkout@v4 - name: Setup Python & Poetry Environment - uses: exasol/python-toolbox/.github/actions/python-environment@1.0.1 - with: - poetry-version: 2.1.2 + uses: exasol/python-toolbox/.github/actions/python-environment@1.2.0 - name: Build Artifacts run: poetry build diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 11673c95..835095da 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -10,10 +10,14 @@ jobs: check-tag-version-job: name: Check Release Tag uses: ./.github/workflows/check-release-tag.yml + permissions: + contents: read cd-job: name: Continuous Delivery uses: ./.github/workflows/build-and-publish.yml + permissions: + contents: write secrets: PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} @@ -21,4 +25,8 @@ jobs: needs: [ cd-job ] name: Publish Documentation uses: ./.github/workflows/gh-pages.yml + permissions: + contents: read + pages: write + id-token: write diff --git a/.github/workflows/check-release-tag.yml b/.github/workflows/check-release-tag.yml index 2ab47a10..c0df0ce1 100644 --- a/.github/workflows/check-release-tag.yml +++ b/.github/workflows/check-release-tag.yml @@ -1,20 +1,21 @@ name: Check Release Tag -on: workflow_call +on: + workflow_call: jobs: check-tag-version-job: - name: Check Tag Version runs-on: ubuntu-24.04 - + permissions: + contents: read steps: - name: SCM Checkout uses: actions/checkout@v4 - name: Setup Python & Poetry Environment - uses: exasol/python-toolbox/.github/actions/python-environment@1.0.1 + uses: exasol/python-toolbox/.github/actions/python-environment@1.2.0 - name: Check Tag Version # make sure the pushed/created tag matched the project version diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index bf4cd469..2e84137d 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -4,11 +4,11 @@ on: workflow_call: jobs: - Version-Check: name: Version runs-on: ubuntu-24.04 - + permissions: + contents: read steps: - name: SCM Checkout uses: actions/checkout@v4 @@ -16,47 +16,47 @@ jobs: fetch-depth: 0 - name: Setup Python & Poetry Environment - uses: exasol/python-toolbox/.github/actions/python-environment@1.0.1 - with: - poetry-version: 2.1.2 + uses: exasol/python-toolbox/.github/actions/python-environment@1.2.0 - name: Check Version(s) - run: poetry run -- version-check version.py - - Documentation: - name: Docs - needs: [ Version-Check ] - runs-on: ubuntu-24.04 - - steps: - - name: SCM Checkout - uses: actions/checkout@v4 - - - name: Setup Python & Poetry Environment - uses: exasol/python-toolbox/.github/actions/python-environment@1.0.1 - with: - poetry-version: 2.1.2 - -# This step is disabled, because the project does not support sphinx yet -# - name: Build Documentation -# run: | -# poetry run -- nox -s docs:build + run: poetry run -- nox -s version:check -- version.py + + # This step is disabled, because the project does not support sphinx yet + # Documentation: + # name: Docs + # needs: [ Version-Check ] + # runs-on: ubuntu-24.04 + # permissions: + # contents: read + # steps: + # - name: SCM Checkout + # uses: actions/checkout@v4 + # + # - name: Setup Python & Poetry Environment + # uses: exasol/python-toolbox/.github/actions/python-environment@1.2.0 + # + # - name: Build Documentation + # run: | + # poetry run -- nox -s docs:build build-matrix: name: Generate Build Matrix uses: ./.github/workflows/matrix-python.yml + permissions: + contents: read Changelog: name: Changelog Update Check runs-on: ubuntu-24.04 + permissions: + contents: read if: ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/master' }} - steps: - name: SCM Checkout uses: actions/checkout@v4 - name: Setup Python & Poetry Environment - uses: exasol/python-toolbox/.github/actions/python-environment@1.0.1 + uses: exasol/python-toolbox/.github/actions/python-environment@1.2.0 - name: Run changelog update check run: poetry run -- nox -s changelog:updated @@ -65,25 +65,25 @@ jobs: name: Linting (Python-${{ matrix.python-version }}) needs: [ Version-Check, build-matrix ] runs-on: ubuntu-24.04 + permissions: + contents: read strategy: fail-fast: false matrix: ${{ fromJson(needs.build-matrix.outputs.matrix) }} - steps: - name: SCM Checkout uses: actions/checkout@v4 - name: Setup Python & Poetry Environment - uses: exasol/python-toolbox/.github/actions/python-environment@1.0.1 + uses: exasol/python-toolbox/.github/actions/python-environment@1.2.0 with: python-version: ${{ matrix.python-version }} - poetry-version: 2.1.2 - name: Run lint run: poetry run -- nox -s lint:code - name: Upload Artifacts - uses: actions/upload-artifact@v4.6.0 + uses: actions/upload-artifact@v4.6.2 with: name: lint-python${{ matrix.python-version }} path: | @@ -95,6 +95,8 @@ jobs: name: Type Checking (Python-${{ matrix.python-version }}) needs: [ Version-Check, build-matrix ] runs-on: ubuntu-24.04 + permissions: + contents: read strategy: fail-fast: false matrix: ${{ fromJson(needs.build-matrix.outputs.matrix) }} @@ -104,10 +106,9 @@ jobs: uses: actions/checkout@v4 - name: Setup Python & Poetry Environment - uses: exasol/python-toolbox/.github/actions/python-environment@1.0.1 + uses: exasol/python-toolbox/.github/actions/python-environment@1.2.0 with: python-version: ${{ matrix.python-version }} - poetry-version: 2.1.2 - name: Run type-check run: poetry run -- nox -s lint:typing @@ -116,6 +117,8 @@ jobs: name: Security Checks (Python-${{ matrix.python-version }}) needs: [ Version-Check, build-matrix ] runs-on: ubuntu-24.04 + permissions: + contents: read strategy: fail-fast: false matrix: ${{ fromJson(needs.build-matrix.outputs.matrix) }} @@ -125,16 +128,15 @@ jobs: uses: actions/checkout@v4 - name: Setup Python & Poetry Environment - uses: exasol/python-toolbox/.github/actions/python-environment@1.0.1 + uses: exasol/python-toolbox/.github/actions/python-environment@1.2.0 with: python-version: ${{ matrix.python-version }} - poetry-version: 2.1.2 - name: Run security linter run: poetry run -- nox -s lint:security - name: Upload Artifacts - uses: actions/upload-artifact@v4.6.0 + uses: actions/upload-artifact@v4.6.2 with: name: security-python${{ matrix.python-version }} path: .security.json @@ -143,24 +145,25 @@ jobs: Format: name: Format Check runs-on: ubuntu-24.04 - + permissions: + contents: read steps: - name: SCM Checkout uses: actions/checkout@v4 - name: Setup Python & Poetry Environment - uses: exasol/python-toolbox/.github/actions/python-environment@1.0.1 - with: - poetry-version: 2.1.2 + uses: exasol/python-toolbox/.github/actions/python-environment@1.2.0 - name: Run format check run: poetry run -- nox -s project:format - Tests: name: Unit-Tests (Python-${{ matrix.python-version }}) - needs: [ Documentation, Lint, Type-Check, Security, Format, build-matrix ] + # removed Documentation, + needs: [ Lint, Type-Check, Security, Format, build-matrix ] runs-on: ubuntu-24.04 + permissions: + contents: read env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} strategy: @@ -172,17 +175,15 @@ jobs: uses: actions/checkout@v4 - name: Setup Python & Poetry Environment - uses: exasol/python-toolbox/.github/actions/python-environment@1.0.1 + uses: exasol/python-toolbox/.github/actions/python-environment@1.2.0 with: python-version: ${{ matrix.python-version }} - poetry-version: 2.1.2 - # This doesn't use nox, because currently the test structure doesn't fit yet - name: Run Tests and Collect Coverage - run: poetry run -- pytest tests/unit_tests + run: poetry run -- nox -s test:unit -- --coverage - name: Upload Artifacts - uses: actions/upload-artifact@v4.6.0 + uses: actions/upload-artifact@v4.6.2 with: name: coverage-python${{ matrix.python-version }}-fast path: .coverage diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f069e5fa..e1b61aee 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,7 +8,7 @@ on: - "main" - "master" schedule: - # “At 00:00 on every 7th day-of-month from 1 through 31.” (https://crontab.guru) + # "At 00:00 on every 7th day-of-month from 1 through 31." (https://crontab.guru) - cron: "0 0 1/7 * *" jobs: @@ -16,7 +16,11 @@ jobs: CI: uses: ./.github/workflows/merge-gate.yml secrets: inherit + permissions: + contents: read Metrics: needs: [ CI ] uses: ./.github/workflows/report.yml + permissions: + contents: read diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index a466d3b9..46f000c0 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -6,29 +6,44 @@ on: jobs: - documentation-job: + build-documentation: runs-on: ubuntu-24.04 - + permissions: + contents: read steps: - name: SCM Checkout uses: actions/checkout@v4 with: fetch-depth: 0 - - name: Setup Python & Poetry Environment - uses: exasol/python-toolbox/.github/actions/python-environment@1.0.1 - with: - poetry-version: 2.1.2 +# These steps are disabled, because the project does not support sphinx yet -# This step is disabled, because the project does not support sphinx yet -# - name: Build Documentation -# run: | -# poetry run -- nox -s docs:multiversion +# - name: Setup Python & Poetry Environment +# uses: exasol/python-toolbox/.github/actions/python-environment@1.2.0 +# +# - name: Build Documentation +# run: | +# poetry run -- nox -s docs:multiversion +# rm -r .html-documentation/*/.doctrees # -# - name: Deploy -# uses: JamesIves/github-pages-deploy-action@v4.7.2 -# with: -# branch: gh-pages -# folder: .html-documentation -# git-config-name: Github Action -# git-config-email: opensource@exasol.com +# - name: Upload artifact +# uses: actions/upload-pages-artifact@v3 +# with: +# path: .html-documentation + +# This job is disabled, because the project does not support sphinx yet + +# deploy-documentation: +# needs: [ build-documentation ] +# permissions: +# contents: read +# pages: write +# id-token: write +# environment: +# name: github-pages +# url: ${{ steps.deployment.outputs.page_url }} +# runs-on: ubuntu-24.04 +# steps: +# - name: Deploy to GitHub Pages +# id: deployment +# uses: actions/deploy-pages@v4 diff --git a/.github/workflows/matrix-all.yml b/.github/workflows/matrix-all.yml index d9a02687..29d347b5 100644 --- a/.github/workflows/matrix-all.yml +++ b/.github/workflows/matrix-all.yml @@ -9,17 +9,15 @@ on: jobs: all_versions: - runs-on: ubuntu-24.04 - + permissions: + contents: read steps: - name: SCM Checkout uses: actions/checkout@v4 - name: Setup Python & Poetry Environment - uses: exasol/python-toolbox/.github/actions/python-environment@1.0.1 - with: - poetry-version: 2.1.2 + uses: exasol/python-toolbox/.github/actions/python-environment@1.2.0 - name: Generate matrix run: poetry run -- nox -s matrix:all diff --git a/.github/workflows/matrix-exasol.yml b/.github/workflows/matrix-exasol.yml index f87f4feb..23d6db6e 100644 --- a/.github/workflows/matrix-exasol.yml +++ b/.github/workflows/matrix-exasol.yml @@ -9,17 +9,15 @@ on: jobs: exasol_versions: - runs-on: ubuntu-24.04 - + permissions: + contents: read steps: - name: SCM Checkout uses: actions/checkout@v4 - name: Setup Python & Poetry Environment - uses: exasol/python-toolbox/.github/actions/python-environment@1.0.1 - with: - poetry-version: 2.1.2 + uses: exasol/python-toolbox/.github/actions/python-environment@1.2.0 - name: Generate matrix run: poetry run -- nox -s matrix:exasol diff --git a/.github/workflows/matrix-python.yml b/.github/workflows/matrix-python.yml index 5ad4c049..9a9bcc8d 100644 --- a/.github/workflows/matrix-python.yml +++ b/.github/workflows/matrix-python.yml @@ -9,17 +9,15 @@ on: jobs: python_versions: - runs-on: ubuntu-24.04 - + permissions: + contents: read steps: - name: SCM Checkout uses: actions/checkout@v4 - name: Setup Python & Poetry Environment - uses: exasol/python-toolbox/.github/actions/python-environment@1.0.1 - with: - poetry-version: 2.1.2 + uses: exasol/python-toolbox/.github/actions/python-environment@1.2.0 - name: Generate matrix run: poetry run -- nox -s matrix:python diff --git a/.github/workflows/merge-gate.yml b/.github/workflows/merge-gate.yml index de9e8049..df2ff399 100644 --- a/.github/workflows/merge-gate.yml +++ b/.github/workflows/merge-gate.yml @@ -8,15 +8,21 @@ jobs: fast-checks: name: Fast uses: ./.github/workflows/checks.yml + permissions: + contents: read slow-checks: name: Slow uses: ./.github/workflows/slow-checks.yml + permissions: + contents: read # This job ensures inputs have been executed successfully. approve-merge: name: Allow Merge runs-on: ubuntu-24.04 + permissions: + contents: read # If you need additional jobs to be part of the merge gate, add them below needs: [ fast-checks, slow-checks ] diff --git a/.github/workflows/pr-merge.yml b/.github/workflows/pr-merge.yml index e4be0103..7ecea750 100644 --- a/.github/workflows/pr-merge.yml +++ b/.github/workflows/pr-merge.yml @@ -15,11 +15,19 @@ jobs: name: Checks uses: ./.github/workflows/checks.yml secrets: inherit + permissions: + contents: read publish-docs: name: Publish Documentation uses: ./.github/workflows/gh-pages.yml + permissions: + contents: read + pages: write + id-token: write metrics: needs: [ ci-job ] uses: ./.github/workflows/report.yml + permissions: + contents: read diff --git a/.github/workflows/report.yml b/.github/workflows/report.yml index c8b69fbf..d7216163 100644 --- a/.github/workflows/report.yml +++ b/.github/workflows/report.yml @@ -7,6 +7,8 @@ jobs: report: runs-on: ubuntu-24.04 + permissions: + contents: read env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -17,44 +19,41 @@ jobs: fetch-depth: 0 - name: Setup Python & Poetry Environment - uses: exasol/python-toolbox/.github/actions/python-environment@1.0.1 - with: - poetry-version: 2.1.2 + uses: exasol/python-toolbox/.github/actions/python-environment@1.2.0 - name: Download Artifacts - uses: actions/download-artifact@v4.1.8 + uses: actions/download-artifact@v4.2.1 with: path: ./artifacts -# Reporting is currently disabled, see https://github.com/exasol/advanced-analytics-framework/issues/254 -# - name: Copy Artifacts into Root Folder -# working-directory: ./artifacts -# run: | -# poetry run -- coverage combine --keep coverage-python3.9*/.coverage -# # Errors during copying are ignored because they are checked in the next step -# cp .coverage ../ || true -# cp lint-python3.9/.lint.txt ../ || true -# cp lint-python3.9/.lint.json ../ || true -# cp security-python3.9/.security.json ../ || true -# -# - name: Validate Artifacts -# run: poetry run -- nox -s artifacts:validate -# -# - name: Generate Report -# run: poetry run -- nox -s project:report -- --format json | tee metrics.json -# -# - name: Upload Artifacts -# uses: actions/upload-artifact@v4.6.0 -# with: -# name: metrics.json -# path: metrics.json -# -# - name: Generate GitHub Summary -# run: | -# echo -e "# Summary\n" >> $GITHUB_STEP_SUMMARY -# poetry run -- nox -s project:report -- --format markdown >> $GITHUB_STEP_SUMMARY -# poetry run -- nox -s dependency:licenses >> $GITHUB_STEP_SUMMARY -# echo -e "\n\n# Coverage\n" >> $GITHUB_STEP_SUMMARY -# poetry run -- coverage report --format markdown >> $GITHUB_STEP_SUMMARY || true -# poetry run -- tbx lint pretty-print >> $GITHUB_STEP_SUMMARY -# poetry run -- tbx security pretty-print .security.json >> $GITHUB_STEP_SUMMARY + - name: Copy Artifacts into Root Folder + working-directory: ./artifacts + run: | + poetry run -- coverage combine --keep coverage-python3.10*/.coverage + # Errors during copying are ignored because they are checked in the next step + cp .coverage ../ || true + cp lint-python3.10/.lint.txt ../ || true + cp lint-python3.10/.lint.json ../ || true + cp security-python3.10/.security.json ../ || true + + - name: Validate Artifacts + run: poetry run -- nox -s artifacts:validate + + - name: Generate Report + run: poetry run -- nox -s project:report -- --format json | tee metrics.json + + - name: Upload Artifacts + uses: actions/upload-artifact@v4.6.2 + with: + name: metrics.json + path: metrics.json + + - name: Generate GitHub Summary + run: | + echo -e "# Summary\n" >> $GITHUB_STEP_SUMMARY + poetry run -- nox -s project:report -- --format markdown >> $GITHUB_STEP_SUMMARY + poetry run -- nox -s dependency:licenses >> $GITHUB_STEP_SUMMARY + echo -e "\n\n# Coverage\n" >> $GITHUB_STEP_SUMMARY + poetry run -- coverage report --format markdown >> $GITHUB_STEP_SUMMARY || true + poetry run -- tbx lint pretty-print >> $GITHUB_STEP_SUMMARY + poetry run -- tbx security pretty-print .security.json >> $GITHUB_STEP_SUMMARY diff --git a/.github/workflows/slow-checks.yml b/.github/workflows/slow-checks.yml index 8d647250..0ea4b66e 100644 --- a/.github/workflows/slow-checks.yml +++ b/.github/workflows/slow-checks.yml @@ -7,9 +7,6 @@ jobs: slow-check-approval: name: Slow Check Approval runs-on: ubuntu-24.04 - # Even though the environment "manual-approval" will be created automatically, - # it still needs to be configured to require interactive review. - # See project settings on GitHub (Settings / Environments / manual-approval). environment: manual-approval steps: - name: Slow Test Approval diff --git a/.github/workflows/tests-unit.yml b/.github/workflows/tests-unit.yml deleted file mode 100644 index 330c27a8..00000000 --- a/.github/workflows/tests-unit.yml +++ /dev/null @@ -1,33 +0,0 @@ -name: Run unit tests - -on: - workflow_call: - inputs: - python-version: - type: string - required: true - -jobs: - build_and_test: - runs-on: ubuntu-24.04 - - steps: - - uses: actions/checkout@v4 - - - name: Setup Python & Poetry Environment - uses: exasol/python-toolbox/.github/actions/python-environment@1.0.1 - with: - python-version: ${{ inputs.python-version }} - poetry-version: 2.1.2 - - - name: Install Development Environment - run: poetry run -- nox -s install_dev_env - - - name: Poetry install - run: poetry run -- nox -s run_in_dev_env -- poetry install - - - name: Run Lua unit tests and static code analyzer - run: poetry run -- nox -s run_in_dev_env -- ./scripts/lua_tests.sh - - - name: Run Python unit tests - run: poetry run -- nox -s run_python_unit_tests diff --git a/doc/changes/unreleased.md b/doc/changes/unreleased.md index efe6d6e7..5a9ba3ab 100644 --- a/doc/changes/unreleased.md +++ b/doc/changes/unreleased.md @@ -33,6 +33,7 @@ Please see the [User Guide](http://github.com/exasol/advanced-analytics-framewor * #286: Updated exasol-toolbox to 1.0.1 * #240: Enhanced `schema.column_type.ColumnType` +* #296: Updated `exasol-toolbox`, re-generated GitHub workflows ## Internal diff --git a/doc/developer_guide/developer_guide.md b/doc/developer_guide/developer_guide.md index 8ef43774..90b24408 100644 --- a/doc/developer_guide/developer_guide.md +++ b/doc/developer_guide/developer_guide.md @@ -57,15 +57,15 @@ poetry run -- nox -s run_in_dev_env -- poetry install You can execute the unit tests without special preparation in the regular poetry environment: ```shell -poetry run -- pytest tests/unit_tests +poetry run -- pytest test/unit ``` ### Python Integration Tests with and w/o database The following commands run integration tests w/o and with database ```shell -poetry run -- nox -s run_python_test -- -- tests/integration_tests/without_db/ -poetry run -- nox -s run_python_test -- -- --backend=onprem tests/integration_tests/with_db/ +poetry run -- nox -s run_python_test -- -- test/integration/no_db/ +poetry run -- nox -s run_python_test -- -- --backend=onprem test/integration/db/ ``` ### Lua Unit Tests diff --git a/noxfile.py b/noxfile.py index df1ceb0e..7b1f4965 100644 --- a/noxfile.py +++ b/noxfile.py @@ -18,8 +18,8 @@ SCRIPTS_DIRECTORY = ROOT_DIR / "scripts" RUN_IN_DEV_SCRIPT = SCRIPTS_DIRECTORY / "run_in_dev_env.sh" RUN_IN_DEV_SCRIPT_STR = str(RUN_IN_DEV_SCRIPT) -TEST_DIRECTORY = ROOT_DIR / "tests" -INTEGRATION_TEST_DIRECTORY = TEST_DIRECTORY / "integration_tests" +TEST_DIRECTORY = ROOT_DIR / "test" +INTEGRATION_TEST_DIRECTORY = TEST_DIRECTORY / "integration" nox.options.sessions = [] @@ -74,7 +74,7 @@ def run_lua_unit_tests(session: Session): @nox.session(python=False) def run_python_unit_tests(session: Session): - unit_test_directory = TEST_DIRECTORY / "unit_tests" + unit_test_directory = TEST_DIRECTORY / "unit" _run_in_dev_env_poetry_call(session, "pytest", str(unit_test_directory)) @@ -83,7 +83,7 @@ def _generate_test_matrix_entry(test_file: Path): def _generate_github_integration_tests_without_db_matrix() -> str: - without_db_test_directory = INTEGRATION_TEST_DIRECTORY / "without_db" + without_db_test_directory = INTEGRATION_TEST_DIRECTORY / "no_db" test_files = without_db_test_directory.rglob("test_*.py") output = [_generate_test_matrix_entry(test_file) for test_file in test_files] json_str = json.dumps(output) @@ -128,7 +128,7 @@ def build_language_container(session: Session): @nox.session(python=False) def run_python_integration_tests_with_db(session: Session): - integration_test_directory = INTEGRATION_TEST_DIRECTORY / "with_db" + integration_test_directory = INTEGRATION_TEST_DIRECTORY / "db" _run_in_dev_env_poetry_call( session, "pytest", diff --git a/poetry.lock b/poetry.lock index 0da2ddc0..3d576ca2 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 2.1.2 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand. [[package]] name = "alabaster" @@ -1024,14 +1024,14 @@ pydantic = ">=2.10.2,<3.0.0" [[package]] name = "exasol-toolbox" -version = "1.0.1" +version = "1.2.0" description = "Your one-stop solution for managing all standard tasks and core workflows of your Python project." optional = false python-versions = "<4.0,>=3.9" groups = ["dev"] files = [ - {file = "exasol_toolbox-1.0.1-py3-none-any.whl", hash = "sha256:69e2eaf0adaa7b3d7de24dffd4d0f06d4304a270416dc51e97a23965578cd85f"}, - {file = "exasol_toolbox-1.0.1.tar.gz", hash = "sha256:19954ec725e24209b7babf473ecc33730be9d8c4e4cb1b5337c208a62edfb66e"}, + {file = "exasol_toolbox-1.2.0-py3-none-any.whl", hash = "sha256:1e14c871f095070ac85d0356c27839a84c01370179808a38859dd65f24d9f2fd"}, + {file = "exasol_toolbox-1.2.0.tar.gz", hash = "sha256:7ff379f224c2534f9afc691a9e0853b8a5f68f9ddb013203737ce2b710c02037"}, ] [package.dependencies] @@ -1041,7 +1041,7 @@ coverage = ">=6.4.4,<8.0.0" furo = ">=2022.9.15" import-linter = ">=2.0,<3.0" importlib-resources = ">=5.12.0" -isort = ">=5.12.0,<6.0.0" +isort = ">=6.0.1,<7.0.0" jinja2 = ">=3.1.6,<4.0.0" mypy = ">=0.971" myst-parser = ">=2.0.0,<4" @@ -1535,18 +1535,19 @@ files = [ [[package]] name = "isort" -version = "5.13.2" +version = "6.0.1" description = "A Python utility / library to sort Python imports." optional = false -python-versions = ">=3.8.0" +python-versions = ">=3.9.0" groups = ["dev"] files = [ - {file = "isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6"}, - {file = "isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109"}, + {file = "isort-6.0.1-py3-none-any.whl", hash = "sha256:2dc5d7f65c9678d94c88dfc29161a320eec67328bc97aad576874cb4be1e9615"}, + {file = "isort-6.0.1.tar.gz", hash = "sha256:1cb5df28dfbc742e490c5e41bad6da41b805b0a8be7bc93cd0fb2a8a890ac450"}, ] [package.extras] -colors = ["colorama (>=0.4.6)"] +colors = ["colorama"] +plugins = ["setuptools"] [[package]] name = "jinja2" diff --git a/pyproject.toml b/pyproject.toml index 06f4dfab..60351652 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -56,6 +56,8 @@ pytest-exasol-extension = ">=0.1.0,<1.0.0" requires = ["poetry-core>=1.0.0"] build-backend = "poetry.core.masonry.api" +[tool.coverage.report] +ignore_errors = true [[tool.mypy.overrides]] module = [ @@ -67,7 +69,7 @@ ignore_missing_imports = true [[tool.mypy.overrides]] module = [ - "tests.*", + "test.*", "noxfile", ] ignore_errors = true diff --git a/tests/__init__.py b/test/__init__.py similarity index 100% rename from tests/__init__.py rename to test/__init__.py diff --git a/test/conftest.py b/test/conftest.py new file mode 100644 index 00000000..72264a38 --- /dev/null +++ b/test/conftest.py @@ -0,0 +1,4 @@ +pytest_plugins = [ + "test.integration.db.fixtures.setup_database_fixture", + "test.unit.query_handler.fixtures", +] diff --git a/tests/deployment/__init__.py b/test/deployment/__init__.py similarity index 100% rename from tests/deployment/__init__.py rename to test/deployment/__init__.py diff --git a/tests/deployment/resources/create_script.jinja b/test/deployment/resources/create_script.jinja similarity index 100% rename from tests/deployment/resources/create_script.jinja rename to test/deployment/resources/create_script.jinja diff --git a/tests/deployment/resources/expected_script b/test/deployment/resources/expected_script similarity index 100% rename from tests/deployment/resources/expected_script rename to test/deployment/resources/expected_script diff --git a/tests/deployment/resources/lua_bundle/main.lua b/test/deployment/resources/lua_bundle/main.lua similarity index 100% rename from tests/deployment/resources/lua_bundle/main.lua rename to test/deployment/resources/lua_bundle/main.lua diff --git a/tests/deployment/resources/lua_bundle/test_module_1.lua b/test/deployment/resources/lua_bundle/test_module_1.lua similarity index 100% rename from tests/deployment/resources/lua_bundle/test_module_1.lua rename to test/deployment/resources/lua_bundle/test_module_1.lua diff --git a/tests/deployment/test_aaf_exasol_lua_script_generator.py b/test/deployment/test_aaf_exasol_lua_script_generator.py similarity index 100% rename from tests/deployment/test_aaf_exasol_lua_script_generator.py rename to test/deployment/test_aaf_exasol_lua_script_generator.py diff --git a/tests/deployment/test_exasol_lua_script_generator.py b/test/deployment/test_exasol_lua_script_generator.py similarity index 100% rename from tests/deployment/test_exasol_lua_script_generator.py rename to test/deployment/test_exasol_lua_script_generator.py diff --git a/tests/deployment/test_lua_script_bundle.py b/test/deployment/test_lua_script_bundle.py similarity index 100% rename from tests/deployment/test_lua_script_bundle.py rename to test/deployment/test_lua_script_bundle.py diff --git a/tests/deployment/test_scripts_deployer.py b/test/deployment/test_scripts_deployer.py similarity index 93% rename from tests/deployment/test_scripts_deployer.py rename to test/deployment/test_scripts_deployer.py index 632216ca..34ea971d 100644 --- a/tests/deployment/test_scripts_deployer.py +++ b/test/deployment/test_scripts_deployer.py @@ -1,8 +1,9 @@ +from test.utils.db_queries import DBQueries + from exasol.analytics.query_handler.deployment.aaf_exasol_lua_script_generator import ( save_aaf_query_loop_lua_script, ) from exasol.analytics.query_handler.deployment.scripts_deployer import ScriptsDeployer -from tests.utils.db_queries import DBQueries def test_scripts_deployer(deployed_slc, language_alias, pyexasol_connection, request): diff --git a/tests/deployment/test_scripts_deployer_cli.py b/test/deployment/test_scripts_deployer_cli.py similarity index 95% rename from tests/deployment/test_scripts_deployer_cli.py rename to test/deployment/test_scripts_deployer_cli.py index 3aaad46f..6b1ad1d1 100644 --- a/tests/deployment/test_scripts_deployer_cli.py +++ b/test/deployment/test_scripts_deployer_cli.py @@ -1,8 +1,9 @@ +from test.utils.db_queries import DBQueries + from click.testing import CliRunner from exasol.analytics.query_handler.deployment import deploy from exasol.analytics.query_handler.deployment.slc import LANGUAGE_ALIAS -from tests.utils.db_queries import DBQueries def test_scripts_deployer_cli( diff --git a/tests/integration_tests/__init__.py b/test/integration/__init__.py similarity index 100% rename from tests/integration_tests/__init__.py rename to test/integration/__init__.py diff --git a/tests/integration_tests/data_science_utils/test_pyexasol_sql_executor.py b/test/integration/data_science_utils/test_pyexasol_sql_executor.py similarity index 100% rename from tests/integration_tests/data_science_utils/test_pyexasol_sql_executor.py rename to test/integration/data_science_utils/test_pyexasol_sql_executor.py diff --git a/tests/integration_tests/with_db/__init__.py b/test/integration/db/__init__.py similarity index 100% rename from tests/integration_tests/with_db/__init__.py rename to test/integration/db/__init__.py diff --git a/tests/integration_tests/with_db/conftest.py b/test/integration/db/conftest.py similarity index 94% rename from tests/integration_tests/with_db/conftest.py rename to test/integration/db/conftest.py index c6add023..9e69b30a 100644 --- a/tests/integration_tests/with_db/conftest.py +++ b/test/integration/db/conftest.py @@ -29,10 +29,10 @@ def slc_builder(use_onprem, use_saas) -> LanguageContainerBuilder: another wheel and its pip requirements on top. In result the SLC will contain AAF and the subproject from directory - tests/test_package. + test/package. """ if use_saas or use_onprem: - test_package = find_path_backwards("tests/test_package", __file__) + test_package = find_path_backwards("test/package", __file__) with custom_slc_builder() as builder: builder.prepare_flavor(test_package) yield builder diff --git a/tests/integration_tests/with_db/fixtures/__init__.py b/test/integration/db/fixtures/__init__.py similarity index 100% rename from tests/integration_tests/with_db/fixtures/__init__.py rename to test/integration/db/fixtures/__init__.py diff --git a/tests/integration_tests/with_db/fixtures/setup_database_fixture.py b/test/integration/db/fixtures/setup_database_fixture.py similarity index 100% rename from tests/integration_tests/with_db/fixtures/setup_database_fixture.py rename to test/integration/db/fixtures/setup_database_fixture.py diff --git a/tests/integration_tests/with_db/test_audit_table.py b/test/integration/db/test_audit_table.py similarity index 98% rename from tests/integration_tests/with_db/test_audit_table.py rename to test/integration/db/test_audit_table.py index 47387ea8..e3826a0f 100644 --- a/tests/integration_tests/with_db/test_audit_table.py +++ b/test/integration/db/test_audit_table.py @@ -1,4 +1,9 @@ import logging +from test.utils.audit_table_utils import ( + SAMPLE_LOG_SPAN, + all_rows_as_dicts, + create_insert_query, +) import pytest @@ -17,11 +22,6 @@ TableNameImpl, VarCharColumn, ) -from tests.utils.audit_table_utils import ( - SAMPLE_LOG_SPAN, - all_rows_as_dicts, - create_insert_query, -) LOG = logging.getLogger(__name__) diff --git a/tests/integration_tests/with_db/test_create_table.py b/test/integration/db/test_create_table.py similarity index 100% rename from tests/integration_tests/with_db/test_create_table.py rename to test/integration/db/test_create_table.py diff --git a/tests/integration_tests/with_db/test_query_loop_integration.py b/test/integration/db/test_query_loop_integration.py similarity index 99% rename from tests/integration_tests/with_db/test_query_loop_integration.py rename to test/integration/db/test_query_loop_integration.py index 9aa11689..7bc1af3d 100644 --- a/tests/integration_tests/with_db/test_query_loop_integration.py +++ b/test/integration/db/test_query_loop_integration.py @@ -1,5 +1,10 @@ import json import textwrap +from test.package.test_query_handlers.query_handler_test import ( + FINAL_RESULT, + QUERY_LIST, + TEST_INPUT, +) from typing import ( List, Tuple, @@ -8,12 +13,6 @@ import pyexasol import pytest -from tests.test_package.test_query_handlers.query_handler_test import ( - FINAL_RESULT, - QUERY_LIST, - TEST_INPUT, -) - QUERY_FLUSH_STATS = """FLUSH STATISTICS""" QUERY_AUDIT_LOGS = """ SELECT SQL_TEXT diff --git a/tests/integration_tests/with_db/test_user_guide_example.py b/test/integration/db/test_user_guide_example.py similarity index 100% rename from tests/integration_tests/with_db/test_user_guide_example.py rename to test/integration/db/test_user_guide_example.py diff --git a/tests/integration_tests/without_db/__init__.py b/test/integration/no_db/__init__.py similarity index 100% rename from tests/integration_tests/without_db/__init__.py rename to test/integration/no_db/__init__.py diff --git a/tests/integration_tests/without_db/udf_communication/__init__.py b/test/integration/no_db/udf_communication/__init__.py similarity index 100% rename from tests/integration_tests/without_db/udf_communication/__init__.py rename to test/integration/no_db/udf_communication/__init__.py diff --git a/tests/integration_tests/without_db/udf_communication/peer_communication/__init__.py b/test/integration/no_db/udf_communication/peer_communication/__init__.py similarity index 100% rename from tests/integration_tests/without_db/udf_communication/peer_communication/__init__.py rename to test/integration/no_db/udf_communication/peer_communication/__init__.py diff --git a/tests/integration_tests/without_db/udf_communication/peer_communication/analyze_log.py b/test/integration/no_db/udf_communication/peer_communication/analyze_log.py similarity index 100% rename from tests/integration_tests/without_db/udf_communication/peer_communication/analyze_log.py rename to test/integration/no_db/udf_communication/peer_communication/analyze_log.py diff --git a/tests/integration_tests/without_db/udf_communication/peer_communication/conditional_method_dropper.py b/test/integration/no_db/udf_communication/peer_communication/conditional_method_dropper.py similarity index 100% rename from tests/integration_tests/without_db/udf_communication/peer_communication/conditional_method_dropper.py rename to test/integration/no_db/udf_communication/peer_communication/conditional_method_dropper.py diff --git a/tests/integration_tests/without_db/udf_communication/peer_communication/insert_elk.py b/test/integration/no_db/udf_communication/peer_communication/insert_elk.py similarity index 100% rename from tests/integration_tests/without_db/udf_communication/peer_communication/insert_elk.py rename to test/integration/no_db/udf_communication/peer_communication/insert_elk.py diff --git a/tests/integration_tests/without_db/udf_communication/peer_communication/test_add_peer_and_close.py b/test/integration/no_db/udf_communication/peer_communication/test_add_peer_and_close.py similarity index 96% rename from tests/integration_tests/without_db/udf_communication/peer_communication/test_add_peer_and_close.py rename to test/integration/no_db/udf_communication/peer_communication/test_add_peer_and_close.py index 07a31685..521385ed 100644 --- a/tests/integration_tests/without_db/udf_communication/peer_communication/test_add_peer_and_close.py +++ b/test/integration/no_db/udf_communication/peer_communication/test_add_peer_and_close.py @@ -2,6 +2,15 @@ import time import traceback from pathlib import Path +from test.integration.no_db.udf_communication.peer_communication.conditional_method_dropper import ( + ConditionalMethodDropper, +) +from test.integration.no_db.udf_communication.peer_communication.utils import ( + BidirectionalQueue, + PeerCommunicatorTestProcessParameter, + TestProcess, + assert_processes_finish, +) from typing import ( Dict, List, @@ -30,15 +39,6 @@ from exasol.analytics.udf.communication.socket_factory.zmq_wrapper import ( ZMQSocketFactory, ) -from tests.integration_tests.without_db.udf_communication.peer_communication.conditional_method_dropper import ( - ConditionalMethodDropper, -) -from tests.integration_tests.without_db.udf_communication.peer_communication.utils import ( - BidirectionalQueue, - PeerCommunicatorTestProcessParameter, - TestProcess, - assert_processes_finish, -) structlog.configure( context_class=dict, diff --git a/tests/integration_tests/without_db/udf_communication/peer_communication/test_add_peer_and_wait_close.py b/test/integration/no_db/udf_communication/peer_communication/test_add_peer_and_wait_close.py similarity index 96% rename from tests/integration_tests/without_db/udf_communication/peer_communication/test_add_peer_and_wait_close.py rename to test/integration/no_db/udf_communication/peer_communication/test_add_peer_and_wait_close.py index c20da6c3..d3674ae0 100644 --- a/tests/integration_tests/without_db/udf_communication/peer_communication/test_add_peer_and_wait_close.py +++ b/test/integration/no_db/udf_communication/peer_communication/test_add_peer_and_wait_close.py @@ -2,6 +2,15 @@ import time import traceback from pathlib import Path +from test.integration.no_db.udf_communication.peer_communication.conditional_method_dropper import ( + ConditionalMethodDropper, +) +from test.integration.no_db.udf_communication.peer_communication.utils import ( + BidirectionalQueue, + PeerCommunicatorTestProcessParameter, + TestProcess, + assert_processes_finish, +) from typing import ( Dict, List, @@ -25,15 +34,6 @@ from exasol.analytics.udf.communication.socket_factory.zmq_wrapper import ( ZMQSocketFactory, ) -from tests.integration_tests.without_db.udf_communication.peer_communication.conditional_method_dropper import ( - ConditionalMethodDropper, -) -from tests.integration_tests.without_db.udf_communication.peer_communication.utils import ( - BidirectionalQueue, - PeerCommunicatorTestProcessParameter, - TestProcess, - assert_processes_finish, -) structlog.configure( context_class=dict, diff --git a/tests/integration_tests/without_db/udf_communication/peer_communication/test_add_peer_and_wait_for_peers.py b/test/integration/no_db/udf_communication/peer_communication/test_add_peer_and_wait_for_peers.py similarity index 96% rename from tests/integration_tests/without_db/udf_communication/peer_communication/test_add_peer_and_wait_for_peers.py rename to test/integration/no_db/udf_communication/peer_communication/test_add_peer_and_wait_for_peers.py index d3eb6d6a..e621276f 100644 --- a/tests/integration_tests/without_db/udf_communication/peer_communication/test_add_peer_and_wait_for_peers.py +++ b/test/integration/no_db/udf_communication/peer_communication/test_add_peer_and_wait_for_peers.py @@ -2,6 +2,15 @@ import time import traceback from pathlib import Path +from test.integration.no_db.udf_communication.peer_communication.conditional_method_dropper import ( + ConditionalMethodDropper, +) +from test.integration.no_db.udf_communication.peer_communication.utils import ( + BidirectionalQueue, + PeerCommunicatorTestProcessParameter, + TestProcess, + assert_processes_finish, +) from typing import ( Dict, List, @@ -34,15 +43,6 @@ from exasol.analytics.udf.communication.socket_factory.zmq_wrapper import ( ZMQSocketFactory, ) -from tests.integration_tests.without_db.udf_communication.peer_communication.conditional_method_dropper import ( - ConditionalMethodDropper, -) -from tests.integration_tests.without_db.udf_communication.peer_communication.utils import ( - BidirectionalQueue, - PeerCommunicatorTestProcessParameter, - TestProcess, - assert_processes_finish, -) structlog.configure( context_class=dict, diff --git a/tests/integration_tests/without_db/udf_communication/peer_communication/test_add_peer_forward_and_close.py b/test/integration/no_db/udf_communication/peer_communication/test_add_peer_forward_and_close.py similarity index 96% rename from tests/integration_tests/without_db/udf_communication/peer_communication/test_add_peer_forward_and_close.py rename to test/integration/no_db/udf_communication/peer_communication/test_add_peer_forward_and_close.py index bbcb8d63..d2b005dd 100644 --- a/tests/integration_tests/without_db/udf_communication/peer_communication/test_add_peer_forward_and_close.py +++ b/test/integration/no_db/udf_communication/peer_communication/test_add_peer_forward_and_close.py @@ -2,6 +2,15 @@ import time import traceback from pathlib import Path +from test.integration.no_db.udf_communication.peer_communication.conditional_method_dropper import ( + ConditionalMethodDropper, +) +from test.integration.no_db.udf_communication.peer_communication.utils import ( + BidirectionalQueue, + PeerCommunicatorTestProcessParameter, + TestProcess, + assert_processes_finish, +) from typing import ( Dict, List, @@ -30,15 +39,6 @@ from exasol.analytics.udf.communication.socket_factory.zmq_wrapper import ( ZMQSocketFactory, ) -from tests.integration_tests.without_db.udf_communication.peer_communication.conditional_method_dropper import ( - ConditionalMethodDropper, -) -from tests.integration_tests.without_db.udf_communication.peer_communication.utils import ( - BidirectionalQueue, - PeerCommunicatorTestProcessParameter, - TestProcess, - assert_processes_finish, -) structlog.configure( context_class=dict, diff --git a/tests/integration_tests/without_db/udf_communication/peer_communication/test_add_peer_forward_and_wait_for_peers.py b/test/integration/no_db/udf_communication/peer_communication/test_add_peer_forward_and_wait_for_peers.py similarity index 97% rename from tests/integration_tests/without_db/udf_communication/peer_communication/test_add_peer_forward_and_wait_for_peers.py rename to test/integration/no_db/udf_communication/peer_communication/test_add_peer_forward_and_wait_for_peers.py index 033cc291..cfa2893e 100644 --- a/tests/integration_tests/without_db/udf_communication/peer_communication/test_add_peer_forward_and_wait_for_peers.py +++ b/test/integration/no_db/udf_communication/peer_communication/test_add_peer_forward_and_wait_for_peers.py @@ -1,6 +1,15 @@ import time import traceback from pathlib import Path +from test.integration.no_db.udf_communication.peer_communication.conditional_method_dropper import ( + ConditionalMethodDropper, +) +from test.integration.no_db.udf_communication.peer_communication.utils import ( + BidirectionalQueue, + PeerCommunicatorTestProcessParameter, + TestProcess, + assert_processes_finish, +) from typing import ( Dict, List, @@ -33,15 +42,6 @@ from exasol.analytics.udf.communication.socket_factory.zmq_wrapper import ( ZMQSocketFactory, ) -from tests.integration_tests.without_db.udf_communication.peer_communication.conditional_method_dropper import ( - ConditionalMethodDropper, -) -from tests.integration_tests.without_db.udf_communication.peer_communication.utils import ( - BidirectionalQueue, - PeerCommunicatorTestProcessParameter, - TestProcess, - assert_processes_finish, -) structlog.configure( context_class=dict, diff --git a/tests/integration_tests/without_db/udf_communication/peer_communication/test_poll.py b/test/integration/no_db/udf_communication/peer_communication/test_poll.py similarity index 96% rename from tests/integration_tests/without_db/udf_communication/peer_communication/test_poll.py rename to test/integration/no_db/udf_communication/peer_communication/test_poll.py index 94413d9d..957db9b9 100644 --- a/tests/integration_tests/without_db/udf_communication/peer_communication/test_poll.py +++ b/test/integration/no_db/udf_communication/peer_communication/test_poll.py @@ -2,6 +2,15 @@ import time import traceback from pathlib import Path +from test.integration.no_db.udf_communication.peer_communication.conditional_method_dropper import ( + ConditionalMethodDropper, +) +from test.integration.no_db.udf_communication.peer_communication.utils import ( + BidirectionalQueue, + PeerCommunicatorTestProcessParameter, + TestProcess, + assert_processes_finish, +) from typing import ( Dict, List, @@ -26,15 +35,6 @@ from exasol.analytics.udf.communication.socket_factory.zmq_wrapper import ( ZMQSocketFactory, ) -from tests.integration_tests.without_db.udf_communication.peer_communication.conditional_method_dropper import ( - ConditionalMethodDropper, -) -from tests.integration_tests.without_db.udf_communication.peer_communication.utils import ( - BidirectionalQueue, - PeerCommunicatorTestProcessParameter, - TestProcess, - assert_processes_finish, -) structlog.configure( context_class=dict, diff --git a/tests/integration_tests/without_db/udf_communication/peer_communication/test_send_recv.py b/test/integration/no_db/udf_communication/peer_communication/test_send_recv.py similarity index 97% rename from tests/integration_tests/without_db/udf_communication/peer_communication/test_send_recv.py rename to test/integration/no_db/udf_communication/peer_communication/test_send_recv.py index dbdfdd73..e25d5756 100644 --- a/tests/integration_tests/without_db/udf_communication/peer_communication/test_send_recv.py +++ b/test/integration/no_db/udf_communication/peer_communication/test_send_recv.py @@ -3,6 +3,15 @@ import time import traceback from pathlib import Path +from test.integration.no_db.udf_communication.peer_communication.conditional_method_dropper import ( + ConditionalMethodDropper, +) +from test.integration.no_db.udf_communication.peer_communication.utils import ( + BidirectionalQueue, + PeerCommunicatorTestProcessParameter, + TestProcess, + assert_processes_finish, +) from typing import ( Dict, List, @@ -33,15 +42,6 @@ from exasol.analytics.udf.communication.socket_factory.zmq_wrapper import ( ZMQSocketFactory, ) -from tests.integration_tests.without_db.udf_communication.peer_communication.conditional_method_dropper import ( - ConditionalMethodDropper, -) -from tests.integration_tests.without_db.udf_communication.peer_communication.utils import ( - BidirectionalQueue, - PeerCommunicatorTestProcessParameter, - TestProcess, - assert_processes_finish, -) structlog.configure( context_class=dict, diff --git a/tests/integration_tests/without_db/udf_communication/peer_communication/utils.py b/test/integration/no_db/udf_communication/peer_communication/utils.py similarity index 100% rename from tests/integration_tests/without_db/udf_communication/peer_communication/utils.py rename to test/integration/no_db/udf_communication/peer_communication/utils.py diff --git a/tests/integration_tests/without_db/udf_communication/test_broadcast.py b/test/integration/no_db/udf_communication/test_broadcast.py similarity index 96% rename from tests/integration_tests/without_db/udf_communication/test_broadcast.py rename to test/integration/no_db/udf_communication/test_broadcast.py index e44bb209..3f77856f 100644 --- a/tests/integration_tests/without_db/udf_communication/test_broadcast.py +++ b/test/integration/no_db/udf_communication/test_broadcast.py @@ -1,5 +1,14 @@ import time from pathlib import Path +from test.integration.no_db.udf_communication.peer_communication.conditional_method_dropper import ( + ConditionalMethodDropper, +) +from test.integration.no_db.udf_communication.peer_communication.utils import ( + BidirectionalQueue, + CommunicatorTestProcessParameter, + TestProcess, + assert_processes_finish, +) from typing import ( Dict, List, @@ -20,15 +29,6 @@ from exasol.analytics.udf.communication.socket_factory.zmq_wrapper import ( ZMQSocketFactory, ) -from tests.integration_tests.without_db.udf_communication.peer_communication.conditional_method_dropper import ( - ConditionalMethodDropper, -) -from tests.integration_tests.without_db.udf_communication.peer_communication.utils import ( - BidirectionalQueue, - CommunicatorTestProcessParameter, - TestProcess, - assert_processes_finish, -) structlog.configure( context_class=dict, diff --git a/tests/integration_tests/without_db/udf_communication/test_communicator.py b/test/integration/no_db/udf_communication/test_communicator.py similarity index 96% rename from tests/integration_tests/without_db/udf_communication/test_communicator.py rename to test/integration/no_db/udf_communication/test_communicator.py index bcd8edad..4f97a3c5 100644 --- a/tests/integration_tests/without_db/udf_communication/test_communicator.py +++ b/test/integration/no_db/udf_communication/test_communicator.py @@ -1,5 +1,14 @@ import time from pathlib import Path +from test.integration.no_db.udf_communication.peer_communication.conditional_method_dropper import ( + ConditionalMethodDropper, +) +from test.integration.no_db.udf_communication.peer_communication.utils import ( + BidirectionalQueue, + CommunicatorTestProcessParameter, + TestProcess, + assert_processes_finish, +) from typing import ( Dict, List, @@ -21,15 +30,6 @@ from exasol.analytics.udf.communication.socket_factory.zmq_wrapper import ( ZMQSocketFactory, ) -from tests.integration_tests.without_db.udf_communication.peer_communication.conditional_method_dropper import ( - ConditionalMethodDropper, -) -from tests.integration_tests.without_db.udf_communication.peer_communication.utils import ( - BidirectionalQueue, - CommunicatorTestProcessParameter, - TestProcess, - assert_processes_finish, -) structlog.configure( context_class=dict, diff --git a/tests/integration_tests/without_db/udf_communication/test_gather.py b/test/integration/no_db/udf_communication/test_gather.py similarity index 97% rename from tests/integration_tests/without_db/udf_communication/test_gather.py rename to test/integration/no_db/udf_communication/test_gather.py index a08ff79a..73388c0c 100644 --- a/tests/integration_tests/without_db/udf_communication/test_gather.py +++ b/test/integration/no_db/udf_communication/test_gather.py @@ -1,5 +1,14 @@ import time from pathlib import Path +from test.integration.no_db.udf_communication.peer_communication.conditional_method_dropper import ( + ConditionalMethodDropper, +) +from test.integration.no_db.udf_communication.peer_communication.utils import ( + BidirectionalQueue, + CommunicatorTestProcessParameter, + TestProcess, + assert_processes_finish, +) from typing import ( Dict, List, @@ -20,15 +29,6 @@ from exasol.analytics.udf.communication.socket_factory.zmq_wrapper import ( ZMQSocketFactory, ) -from tests.integration_tests.without_db.udf_communication.peer_communication.conditional_method_dropper import ( - ConditionalMethodDropper, -) -from tests.integration_tests.without_db.udf_communication.peer_communication.utils import ( - BidirectionalQueue, - CommunicatorTestProcessParameter, - TestProcess, - assert_processes_finish, -) structlog.configure( context_class=dict, diff --git a/tests/integration_tests/without_db/udf_communication/test_localhost_discovery.py b/test/integration/no_db/udf_communication/test_localhost_discovery.py similarity index 96% rename from tests/integration_tests/without_db/udf_communication/test_localhost_discovery.py rename to test/integration/no_db/udf_communication/test_localhost_discovery.py index acb3c8fe..40d7d8f5 100644 --- a/tests/integration_tests/without_db/udf_communication/test_localhost_discovery.py +++ b/test/integration/no_db/udf_communication/test_localhost_discovery.py @@ -1,5 +1,14 @@ import time from pathlib import Path +from test.integration.no_db.udf_communication.peer_communication.conditional_method_dropper import ( + ConditionalMethodDropper, +) +from test.integration.no_db.udf_communication.peer_communication.utils import ( + BidirectionalQueue, + PeerCommunicatorTestProcessParameter, + TestProcess, + assert_processes_finish, +) from typing import ( Dict, List, @@ -28,15 +37,6 @@ from exasol.analytics.udf.communication.socket_factory.zmq_wrapper import ( ZMQSocketFactory, ) -from tests.integration_tests.without_db.udf_communication.peer_communication.conditional_method_dropper import ( - ConditionalMethodDropper, -) -from tests.integration_tests.without_db.udf_communication.peer_communication.utils import ( - BidirectionalQueue, - PeerCommunicatorTestProcessParameter, - TestProcess, - assert_processes_finish, -) structlog.configure( context_class=dict, diff --git a/tests/integration_tests/without_db/udf_communication/test_multi_node_discovery.py b/test/integration/no_db/udf_communication/test_multi_node_discovery.py similarity index 96% rename from tests/integration_tests/without_db/udf_communication/test_multi_node_discovery.py rename to test/integration/no_db/udf_communication/test_multi_node_discovery.py index 53b1932a..183c4054 100644 --- a/tests/integration_tests/without_db/udf_communication/test_multi_node_discovery.py +++ b/test/integration/no_db/udf_communication/test_multi_node_discovery.py @@ -1,5 +1,14 @@ import time from pathlib import Path +from test.integration.no_db.udf_communication.peer_communication.conditional_method_dropper import ( + ConditionalMethodDropper, +) +from test.integration.no_db.udf_communication.peer_communication.utils import ( + BidirectionalQueue, + PeerCommunicatorTestProcessParameter, + TestProcess, + assert_processes_finish, +) from typing import ( Dict, List, @@ -30,15 +39,6 @@ from exasol.analytics.udf.communication.socket_factory.zmq_wrapper import ( ZMQSocketFactory, ) -from tests.integration_tests.without_db.udf_communication.peer_communication.conditional_method_dropper import ( - ConditionalMethodDropper, -) -from tests.integration_tests.without_db.udf_communication.peer_communication.utils import ( - BidirectionalQueue, - PeerCommunicatorTestProcessParameter, - TestProcess, - assert_processes_finish, -) structlog.configure( context_class=dict, diff --git a/tests/test_package/__init__.py b/test/package/__init__.py similarity index 100% rename from tests/test_package/__init__.py rename to test/package/__init__.py diff --git a/tests/test_package/poetry.lock b/test/package/poetry.lock similarity index 100% rename from tests/test_package/poetry.lock rename to test/package/poetry.lock diff --git a/tests/test_package/pyproject.toml b/test/package/pyproject.toml similarity index 100% rename from tests/test_package/pyproject.toml rename to test/package/pyproject.toml diff --git a/tests/test_package/test_query_handlers/__init__.py b/test/package/test_query_handlers/__init__.py similarity index 100% rename from tests/test_package/test_query_handlers/__init__.py rename to test/package/test_query_handlers/__init__.py diff --git a/tests/test_package/test_query_handlers/query_handler_test.py b/test/package/test_query_handlers/query_handler_test.py similarity index 100% rename from tests/test_package/test_query_handlers/query_handler_test.py rename to test/package/test_query_handlers/query_handler_test.py diff --git a/tests/unit_tests/__init__.py b/test/unit/__init__.py similarity index 100% rename from tests/unit_tests/__init__.py rename to test/unit/__init__.py diff --git a/tests/unit_tests/audit_log/qh_utils.py b/test/unit/audit_log/qh_utils.py similarity index 100% rename from tests/unit_tests/audit_log/qh_utils.py rename to test/unit/audit_log/qh_utils.py diff --git a/tests/unit_tests/audit_log/test_audit_column.py b/test/unit/audit_log/test_audit_column.py similarity index 100% rename from tests/unit_tests/audit_log/test_audit_column.py rename to test/unit/audit_log/test_audit_column.py diff --git a/tests/unit_tests/audit_log/test_audit_query_handler.py b/test/unit/audit_log/test_audit_query_handler.py similarity index 97% rename from tests/unit_tests/audit_log/test_audit_query_handler.py rename to test/unit/audit_log/test_audit_query_handler.py index 1c51fbb6..81c9ea08 100644 --- a/tests/unit_tests/audit_log/test_audit_query_handler.py +++ b/test/unit/audit_log/test_audit_query_handler.py @@ -1,4 +1,10 @@ from dataclasses import dataclass +from test.unit.audit_log.qh_utils import continue_action +from test.utils.audit_table_utils import ( + create_insert_query, + prefix_matcher, + regex_matcher, +) from typing import Generic from unittest.mock import Mock @@ -29,12 +35,6 @@ TableName, TableNameImpl, ) -from tests.unit_tests.audit_log.qh_utils import continue_action -from tests.utils.audit_table_utils import ( - create_insert_query, - prefix_matcher, - regex_matcher, -) @dataclass diff --git a/tests/unit_tests/audit_log/test_audit_table.py b/test/unit/audit_log/test_audit_table.py similarity index 99% rename from tests/unit_tests/audit_log/test_audit_table.py rename to test/unit/audit_log/test_audit_table.py index 1bc5bbdc..8c8836fb 100644 --- a/tests/unit_tests/audit_log/test_audit_table.py +++ b/test/unit/audit_log/test_audit_table.py @@ -2,6 +2,14 @@ import re import uuid from inspect import cleandoc +from test.utils.audit_table_utils import ( + SAMPLE_LOG_SPAN, + LogSpan, + create_insert_query, + prefix_matcher, + query_matcher, + regex_matcher, +) from unittest.mock import Mock import pytest @@ -25,14 +33,6 @@ TableNameImpl, VarCharColumn, ) -from tests.utils.audit_table_utils import ( - SAMPLE_LOG_SPAN, - LogSpan, - create_insert_query, - prefix_matcher, - query_matcher, - regex_matcher, -) LOG = logging.getLogger(__name__) diff --git a/tests/unit_tests/audit_log/test_with_python_runner.py b/test/unit/audit_log/test_with_python_runner.py similarity index 98% rename from tests/unit_tests/audit_log/test_with_python_runner.py rename to test/unit/audit_log/test_with_python_runner.py index 3ec3e773..f4b9089a 100644 --- a/tests/unit_tests/audit_log/test_with_python_runner.py +++ b/test/unit/audit_log/test_with_python_runner.py @@ -1,3 +1,5 @@ +from test.unit.audit_log.qh_utils import continue_action +from test.utils.audit_table_utils import create_insert_query from typing import Callable from unittest.mock import ( Mock, @@ -41,8 +43,6 @@ create_sql_executor, expect_query, ) -from tests.unit_tests.audit_log.qh_utils import continue_action -from tests.utils.audit_table_utils import create_insert_query @pytest.fixture() diff --git a/tests/unit_tests/data_science_utils/__init__.py b/test/unit/data_science_utils/__init__.py similarity index 100% rename from tests/unit_tests/data_science_utils/__init__.py rename to test/unit/data_science_utils/__init__.py diff --git a/tests/unit_tests/data_science_utils/test_mock_result_set.py b/test/unit/data_science_utils/test_mock_result_set.py similarity index 100% rename from tests/unit_tests/data_science_utils/test_mock_result_set.py rename to test/unit/data_science_utils/test_mock_result_set.py diff --git a/tests/unit_tests/data_science_utils/test_mock_sql_executor.py b/test/unit/data_science_utils/test_mock_sql_executor.py similarity index 100% rename from tests/unit_tests/data_science_utils/test_mock_sql_executor.py rename to test/unit/data_science_utils/test_mock_sql_executor.py diff --git a/tests/unit_tests/data_science_utils/schema/__init__.py b/test/unit/data_science_utils/udf_utils/__init__.py similarity index 100% rename from tests/unit_tests/data_science_utils/schema/__init__.py rename to test/unit/data_science_utils/udf_utils/__init__.py diff --git a/tests/unit_tests/data_science_utils/udf_utils/test_ctx_iterator.py b/test/unit/data_science_utils/udf_utils/test_ctx_iterator.py similarity index 100% rename from tests/unit_tests/data_science_utils/udf_utils/test_ctx_iterator.py rename to test/unit/data_science_utils/udf_utils/test_ctx_iterator.py diff --git a/tests/unit_tests/data_science_utils/udf_utils/test_iterate_trough_dataset.py b/test/unit/data_science_utils/udf_utils/test_iterate_trough_dataset.py similarity index 100% rename from tests/unit_tests/data_science_utils/udf_utils/test_iterate_trough_dataset.py rename to test/unit/data_science_utils/udf_utils/test_iterate_trough_dataset.py diff --git a/tests/unit_tests/data_science_utils/udf_utils/test_udf_context_wrapper.py b/test/unit/data_science_utils/udf_utils/test_udf_context_wrapper.py similarity index 100% rename from tests/unit_tests/data_science_utils/udf_utils/test_udf_context_wrapper.py rename to test/unit/data_science_utils/udf_utils/test_udf_context_wrapper.py diff --git a/tests/unit_tests/data_science_utils/udf_utils/__init__.py b/test/unit/data_science_utils/utils/__init__.py similarity index 100% rename from tests/unit_tests/data_science_utils/udf_utils/__init__.py rename to test/unit/data_science_utils/utils/__init__.py diff --git a/tests/unit_tests/data_science_utils/utils/test_hash_generation_for_object.py b/test/unit/data_science_utils/utils/test_hash_generation_for_object.py similarity index 100% rename from tests/unit_tests/data_science_utils/utils/test_hash_generation_for_object.py rename to test/unit/data_science_utils/utils/test_hash_generation_for_object.py diff --git a/tests/unit_tests/data_science_utils/utils/__init__.py b/test/unit/query_handler/__init__.py similarity index 100% rename from tests/unit_tests/data_science_utils/utils/__init__.py rename to test/unit/query_handler/__init__.py diff --git a/tests/unit_tests/query_handler/fixtures.py b/test/unit/query_handler/fixtures.py similarity index 100% rename from tests/unit_tests/query_handler/fixtures.py rename to test/unit/query_handler/fixtures.py diff --git a/tests/unit_tests/query_handler/test_log_span.py b/test/unit/query_handler/test_log_span.py similarity index 100% rename from tests/unit_tests/query_handler/test_log_span.py rename to test/unit/query_handler/test_log_span.py diff --git a/tests/unit_tests/query_handler/test_query_handler_interface.py b/test/unit/query_handler/test_query_handler_interface.py similarity index 100% rename from tests/unit_tests/query_handler/test_query_handler_interface.py rename to test/unit/query_handler/test_query_handler_interface.py diff --git a/tests/unit_tests/query_handler/test_scope_query_handler_context.py b/test/unit/query_handler/test_scope_query_handler_context.py similarity index 100% rename from tests/unit_tests/query_handler/test_scope_query_handler_context.py rename to test/unit/query_handler/test_scope_query_handler_context.py diff --git a/tests/unit_tests/query_handler/test_select.py b/test/unit/query_handler/test_select.py similarity index 98% rename from tests/unit_tests/query_handler/test_select.py rename to test/unit/query_handler/test_select.py index 0e0401bc..5d230ef6 100644 --- a/tests/unit_tests/query_handler/test_select.py +++ b/test/unit/query_handler/test_select.py @@ -1,3 +1,7 @@ +from test.utils.audit_table_utils import ( + SAMPLE_LOG_SPAN, + create_insert_query, +) from unittest.mock import Mock import pytest @@ -16,10 +20,6 @@ SchemaName, TableNameImpl, ) -from tests.utils.audit_table_utils import ( - SAMPLE_LOG_SPAN, - create_insert_query, -) def modify_query(audit: bool): diff --git a/tests/unit_tests/query_handler/test_top_level_query_handler_context.py b/test/unit/query_handler/test_top_level_query_handler_context.py similarity index 100% rename from tests/unit_tests/query_handler/test_top_level_query_handler_context.py rename to test/unit/query_handler/test_top_level_query_handler_context.py diff --git a/tests/unit_tests/query_handler/__init__.py b/test/unit/query_handler_runner/__init__.py similarity index 100% rename from tests/unit_tests/query_handler/__init__.py rename to test/unit/query_handler_runner/__init__.py diff --git a/tests/unit_tests/query_handler_runner/test_python_query_handler_runner.py b/test/unit/query_handler_runner/test_python_query_handler_runner.py similarity index 100% rename from tests/unit_tests/query_handler_runner/test_python_query_handler_runner.py rename to test/unit/query_handler_runner/test_python_query_handler_runner.py diff --git a/tests/unit_tests/query_handler_runner/__init__.py b/test/unit/query_result/__init__.py similarity index 100% rename from tests/unit_tests/query_handler_runner/__init__.py rename to test/unit/query_result/__init__.py diff --git a/tests/unit_tests/query_result/test_python_query_result.py b/test/unit/query_result/test_python_query_result.py similarity index 100% rename from tests/unit_tests/query_result/test_python_query_result.py rename to test/unit/query_result/test_python_query_result.py diff --git a/tests/unit_tests/query_result/test_udf_query_result.py b/test/unit/query_result/test_udf_query_result.py similarity index 100% rename from tests/unit_tests/query_result/test_udf_query_result.py rename to test/unit/query_result/test_udf_query_result.py diff --git a/tests/unit_tests/query_result/__init__.py b/test/unit/schema/__init__.py similarity index 100% rename from tests/unit_tests/query_result/__init__.py rename to test/unit/schema/__init__.py diff --git a/tests/unit_tests/data_science_utils/schema/test_column.py b/test/unit/schema/test_column.py similarity index 100% rename from tests/unit_tests/data_science_utils/schema/test_column.py rename to test/unit/schema/test_column.py diff --git a/tests/unit_tests/data_science_utils/schema/test_column_name.py b/test/unit/schema/test_column_name.py similarity index 100% rename from tests/unit_tests/data_science_utils/schema/test_column_name.py rename to test/unit/schema/test_column_name.py diff --git a/tests/unit_tests/data_science_utils/schema/test_column_name_builder.py b/test/unit/schema/test_column_name_builder.py similarity index 100% rename from tests/unit_tests/data_science_utils/schema/test_column_name_builder.py rename to test/unit/schema/test_column_name_builder.py diff --git a/tests/unit_tests/data_science_utils/schema/test_column_types.py b/test/unit/schema/test_column_types.py similarity index 100% rename from tests/unit_tests/data_science_utils/schema/test_column_types.py rename to test/unit/schema/test_column_types.py diff --git a/tests/unit_tests/data_science_utils/schema/test_connection_object_name.py b/test/unit/schema/test_connection_object_name.py similarity index 100% rename from tests/unit_tests/data_science_utils/schema/test_connection_object_name.py rename to test/unit/schema/test_connection_object_name.py diff --git a/tests/unit_tests/data_science_utils/schema/test_connection_object_name_builder.py b/test/unit/schema/test_connection_object_name_builder.py similarity index 100% rename from tests/unit_tests/data_science_utils/schema/test_connection_object_name_builder.py rename to test/unit/schema/test_connection_object_name_builder.py diff --git a/tests/unit_tests/data_science_utils/schema/test_db_object_name.py b/test/unit/schema/test_db_object_name.py similarity index 100% rename from tests/unit_tests/data_science_utils/schema/test_db_object_name.py rename to test/unit/schema/test_db_object_name.py diff --git a/tests/unit_tests/data_science_utils/schema/test_identifier.py b/test/unit/schema/test_identifier.py similarity index 100% rename from tests/unit_tests/data_science_utils/schema/test_identifier.py rename to test/unit/schema/test_identifier.py diff --git a/tests/unit_tests/data_science_utils/schema/test_insert_statement.py b/test/unit/schema/test_insert_statement.py similarity index 100% rename from tests/unit_tests/data_science_utils/schema/test_insert_statement.py rename to test/unit/schema/test_insert_statement.py diff --git a/tests/unit_tests/data_science_utils/schema/test_schema_name.py b/test/unit/schema/test_schema_name.py similarity index 100% rename from tests/unit_tests/data_science_utils/schema/test_schema_name.py rename to test/unit/schema/test_schema_name.py diff --git a/tests/unit_tests/data_science_utils/schema/test_table.py b/test/unit/schema/test_table.py similarity index 100% rename from tests/unit_tests/data_science_utils/schema/test_table.py rename to test/unit/schema/test_table.py diff --git a/tests/unit_tests/data_science_utils/schema/test_table_builder.py b/test/unit/schema/test_table_builder.py similarity index 100% rename from tests/unit_tests/data_science_utils/schema/test_table_builder.py rename to test/unit/schema/test_table_builder.py diff --git a/tests/unit_tests/data_science_utils/schema/test_table_name.py b/test/unit/schema/test_table_name.py similarity index 100% rename from tests/unit_tests/data_science_utils/schema/test_table_name.py rename to test/unit/schema/test_table_name.py diff --git a/tests/unit_tests/data_science_utils/schema/test_table_name_builder.py b/test/unit/schema/test_table_name_builder.py similarity index 100% rename from tests/unit_tests/data_science_utils/schema/test_table_name_builder.py rename to test/unit/schema/test_table_name_builder.py diff --git a/tests/unit_tests/data_science_utils/schema/test_udf_name.py b/test/unit/schema/test_udf_name.py similarity index 100% rename from tests/unit_tests/data_science_utils/schema/test_udf_name.py rename to test/unit/schema/test_udf_name.py diff --git a/tests/unit_tests/data_science_utils/schema/test_udf_name_builder.py b/test/unit/schema/test_udf_name_builder.py similarity index 100% rename from tests/unit_tests/data_science_utils/schema/test_udf_name_builder.py rename to test/unit/schema/test_udf_name_builder.py diff --git a/tests/unit_tests/data_science_utils/schema/test_values.py b/test/unit/schema/test_values.py similarity index 100% rename from tests/unit_tests/data_science_utils/schema/test_values.py rename to test/unit/schema/test_values.py diff --git a/tests/unit_tests/data_science_utils/schema/test_view.py b/test/unit/schema/test_view.py similarity index 100% rename from tests/unit_tests/data_science_utils/schema/test_view.py rename to test/unit/schema/test_view.py diff --git a/tests/unit_tests/data_science_utils/schema/test_view_name.py b/test/unit/schema/test_view_name.py similarity index 100% rename from tests/unit_tests/data_science_utils/schema/test_view_name.py rename to test/unit/schema/test_view_name.py diff --git a/tests/unit_tests/data_science_utils/schema/test_view_name_builder.py b/test/unit/schema/test_view_name_builder.py similarity index 100% rename from tests/unit_tests/data_science_utils/schema/test_view_name_builder.py rename to test/unit/schema/test_view_name_builder.py diff --git a/tests/unit_tests/sql_stage_graph/__init__.py b/test/unit/sql_stage_graph/__init__.py similarity index 100% rename from tests/unit_tests/sql_stage_graph/__init__.py rename to test/unit/sql_stage_graph/__init__.py diff --git a/tests/unit_tests/sql_stage_graph/stage_graph_execution_query_handler/__init__.py b/test/unit/sql_stage_graph/stage_graph_execution_query_handler/__init__.py similarity index 100% rename from tests/unit_tests/sql_stage_graph/stage_graph_execution_query_handler/__init__.py rename to test/unit/sql_stage_graph/stage_graph_execution_query_handler/__init__.py diff --git a/tests/unit_tests/sql_stage_graph/stage_graph_execution_query_handler/assert_helper.py b/test/unit/sql_stage_graph/stage_graph_execution_query_handler/assert_helper.py similarity index 95% rename from tests/unit_tests/sql_stage_graph/stage_graph_execution_query_handler/assert_helper.py rename to test/unit/sql_stage_graph/stage_graph_execution_query_handler/assert_helper.py index bfddae28..3cbd51e2 100644 --- a/tests/unit_tests/sql_stage_graph/stage_graph_execution_query_handler/assert_helper.py +++ b/test/unit/sql_stage_graph/stage_graph_execution_query_handler/assert_helper.py @@ -1,3 +1,7 @@ +from test.unit.sql_stage_graph.stage_graph_execution_query_handler.state_test_setup import ( + TestSetup, +) +from test.utils.mock_cast import mock_cast from typing import List from exasol.analytics.query_handler.graph.stage.sql.input_output import ( @@ -6,10 +10,6 @@ from exasol.analytics.query_handler.graph.stage.sql.sql_stage_query_handler import ( SQLStageQueryHandlerInput, ) -from tests.unit_tests.sql_stage_graph.stage_graph_execution_query_handler.state_test_setup import ( - TestSetup, -) -from tests.utils.mock_cast import mock_cast def assert_reference_counting_bag_not_called(test_setup: TestSetup): diff --git a/tests/unit_tests/sql_stage_graph/stage_graph_execution_query_handler/state_test_setup.py b/test/unit/sql_stage_graph/stage_graph_execution_query_handler/state_test_setup.py similarity index 99% rename from tests/unit_tests/sql_stage_graph/stage_graph_execution_query_handler/state_test_setup.py rename to test/unit/sql_stage_graph/stage_graph_execution_query_handler/state_test_setup.py index 879dd0bd..2b0697cd 100644 --- a/tests/unit_tests/sql_stage_graph/stage_graph_execution_query_handler/state_test_setup.py +++ b/test/unit/sql_stage_graph/stage_graph_execution_query_handler/state_test_setup.py @@ -1,4 +1,5 @@ import dataclasses +from test.utils.mock_cast import mock_cast from typing import ( List, Union, @@ -35,7 +36,6 @@ Continue, Finish, ) -from tests.utils.mock_cast import mock_cast MockScopeQueryHandlerContext = Union[ScopeQueryHandlerContext, MagicMock] MockSQLStageQueryHandler = Union[SQLStageQueryHandler, MagicMock] diff --git a/tests/unit_tests/sql_stage_graph/stage_graph_execution_query_handler/test_query_handler_integration.py b/test/unit/sql_stage_graph/stage_graph_execution_query_handler/test_query_handler_integration.py similarity index 100% rename from tests/unit_tests/sql_stage_graph/stage_graph_execution_query_handler/test_query_handler_integration.py rename to test/unit/sql_stage_graph/stage_graph_execution_query_handler/test_query_handler_integration.py diff --git a/tests/unit_tests/sql_stage_graph/stage_graph_execution_query_handler/test_query_handler_using_mock_state.py b/test/unit/sql_stage_graph/stage_graph_execution_query_handler/test_query_handler_using_mock_state.py similarity index 99% rename from tests/unit_tests/sql_stage_graph/stage_graph_execution_query_handler/test_query_handler_using_mock_state.py rename to test/unit/sql_stage_graph/stage_graph_execution_query_handler/test_query_handler_using_mock_state.py index d849c988..6e23f424 100644 --- a/tests/unit_tests/sql_stage_graph/stage_graph_execution_query_handler/test_query_handler_using_mock_state.py +++ b/test/unit/sql_stage_graph/stage_graph_execution_query_handler/test_query_handler_using_mock_state.py @@ -1,4 +1,5 @@ import dataclasses +from test.utils.mock_cast import mock_cast from typing import ( List, Tuple, @@ -35,7 +36,6 @@ Continue, Finish, ) -from tests.utils.mock_cast import mock_cast MockSQLStageGraphExecutionQueryHandlerState = Union[ SQLStageGraphExecutionQueryHandlerState, MagicMock diff --git a/tests/unit_tests/sql_stage_graph/stage_graph_execution_query_handler/test_state_diamond.py b/test/unit/sql_stage_graph/stage_graph_execution_query_handler/test_state_diamond.py similarity index 98% rename from tests/unit_tests/sql_stage_graph/stage_graph_execution_query_handler/test_state_diamond.py rename to test/unit/sql_stage_graph/stage_graph_execution_query_handler/test_state_diamond.py index 332c99f4..fb387f2e 100644 --- a/tests/unit_tests/sql_stage_graph/stage_graph_execution_query_handler/test_state_diamond.py +++ b/test/unit/sql_stage_graph/stage_graph_execution_query_handler/test_state_diamond.py @@ -1,3 +1,16 @@ +from test.unit.sql_stage_graph.stage_graph_execution_query_handler.assert_helper import ( + assert_parent_query_handler_context_not_called, + assert_reference_counting_bag_creation, + assert_reference_counting_bag_not_called, + assert_release_on_query_handler_context_for_stage, + assert_stage_not_called, + assert_stage_query_handler_created, +) +from test.unit.sql_stage_graph.stage_graph_execution_query_handler.state_test_setup import ( + TestSetup, + create_execution_query_handler_state_setup, + create_mocks_for_stage, +) from typing import ( List, Union, @@ -21,19 +34,6 @@ Continue, Finish, ) -from tests.unit_tests.sql_stage_graph.stage_graph_execution_query_handler.assert_helper import ( - assert_parent_query_handler_context_not_called, - assert_reference_counting_bag_creation, - assert_reference_counting_bag_not_called, - assert_release_on_query_handler_context_for_stage, - assert_stage_not_called, - assert_stage_query_handler_created, -) -from tests.unit_tests.sql_stage_graph.stage_graph_execution_query_handler.state_test_setup import ( - TestSetup, - create_execution_query_handler_state_setup, - create_mocks_for_stage, -) def create_diamond_setup( diff --git a/tests/unit_tests/sql_stage_graph/stage_graph_execution_query_handler/test_state_reference_counting.py b/test/unit/sql_stage_graph/stage_graph_execution_query_handler/test_state_reference_counting.py similarity index 99% rename from tests/unit_tests/sql_stage_graph/stage_graph_execution_query_handler/test_state_reference_counting.py rename to test/unit/sql_stage_graph/stage_graph_execution_query_handler/test_state_reference_counting.py index e9fd004f..2cce56ea 100644 --- a/tests/unit_tests/sql_stage_graph/stage_graph_execution_query_handler/test_state_reference_counting.py +++ b/test/unit/sql_stage_graph/stage_graph_execution_query_handler/test_state_reference_counting.py @@ -1,4 +1,10 @@ import dataclasses +from test.unit.sql_stage_graph.stage_graph_execution_query_handler.state_test_setup import ( + TestSetup, + create_execution_query_handler_state_setup, + create_mocks_for_stage, +) +from test.utils.mock_cast import mock_cast from typing import ( Dict, List, @@ -20,12 +26,6 @@ Continue, Finish, ) -from tests.unit_tests.sql_stage_graph.stage_graph_execution_query_handler.state_test_setup import ( - TestSetup, - create_execution_query_handler_state_setup, - create_mocks_for_stage, -) -from tests.utils.mock_cast import mock_cast def create_diamond_setup( diff --git a/tests/unit_tests/sql_stage_graph/stage_graph_execution_query_handler/test_state_single_stage.py b/test/unit/sql_stage_graph/stage_graph_execution_query_handler/test_state_single_stage.py similarity index 98% rename from tests/unit_tests/sql_stage_graph/stage_graph_execution_query_handler/test_state_single_stage.py rename to test/unit/sql_stage_graph/stage_graph_execution_query_handler/test_state_single_stage.py index eb88ddc3..93099871 100644 --- a/tests/unit_tests/sql_stage_graph/stage_graph_execution_query_handler/test_state_single_stage.py +++ b/test/unit/sql_stage_graph/stage_graph_execution_query_handler/test_state_single_stage.py @@ -1,3 +1,16 @@ +from test.unit.sql_stage_graph.stage_graph_execution_query_handler.assert_helper import ( + assert_parent_query_handler_context_not_called, + assert_reference_counting_bag_creation, + assert_reference_counting_bag_not_called, + assert_release_on_query_handler_context_for_stage, + assert_stage_not_called, + assert_stage_query_handler_created, +) +from test.unit.sql_stage_graph.stage_graph_execution_query_handler.state_test_setup import ( + TestSetup, + create_execution_query_handler_state_setup, + create_mocks_for_stage, +) from typing import ( List, Union, @@ -18,19 +31,6 @@ Continue, Finish, ) -from tests.unit_tests.sql_stage_graph.stage_graph_execution_query_handler.assert_helper import ( - assert_parent_query_handler_context_not_called, - assert_reference_counting_bag_creation, - assert_reference_counting_bag_not_called, - assert_release_on_query_handler_context_for_stage, - assert_stage_not_called, - assert_stage_query_handler_created, -) -from tests.unit_tests.sql_stage_graph.stage_graph_execution_query_handler.state_test_setup import ( - TestSetup, - create_execution_query_handler_state_setup, - create_mocks_for_stage, -) def create_single_stage_setup( diff --git a/tests/unit_tests/sql_stage_graph/stage_graph_execution_query_handler/test_state_two_stage.py b/test/unit/sql_stage_graph/stage_graph_execution_query_handler/test_state_two_stage.py similarity index 97% rename from tests/unit_tests/sql_stage_graph/stage_graph_execution_query_handler/test_state_two_stage.py rename to test/unit/sql_stage_graph/stage_graph_execution_query_handler/test_state_two_stage.py index d6f0b45b..fa4e37ce 100644 --- a/tests/unit_tests/sql_stage_graph/stage_graph_execution_query_handler/test_state_two_stage.py +++ b/test/unit/sql_stage_graph/stage_graph_execution_query_handler/test_state_two_stage.py @@ -1,3 +1,16 @@ +from test.unit.sql_stage_graph.stage_graph_execution_query_handler.assert_helper import ( + assert_parent_query_handler_context_not_called, + assert_reference_counting_bag_creation, + assert_reference_counting_bag_not_called, + assert_release_on_query_handler_context_for_stage, + assert_stage_not_called, + assert_stage_query_handler_created, +) +from test.unit.sql_stage_graph.stage_graph_execution_query_handler.state_test_setup import ( + TestSetup, + create_execution_query_handler_state_setup, + create_mocks_for_stage, +) from typing import ( List, Union, @@ -18,19 +31,6 @@ Continue, Finish, ) -from tests.unit_tests.sql_stage_graph.stage_graph_execution_query_handler.assert_helper import ( - assert_parent_query_handler_context_not_called, - assert_reference_counting_bag_creation, - assert_reference_counting_bag_not_called, - assert_release_on_query_handler_context_for_stage, - assert_stage_not_called, - assert_stage_query_handler_created, -) -from tests.unit_tests.sql_stage_graph.stage_graph_execution_query_handler.state_test_setup import ( - TestSetup, - create_execution_query_handler_state_setup, - create_mocks_for_stage, -) def create_two_stage_setup( diff --git a/tests/unit_tests/sql_stage_graph/test_dependency.py b/test/unit/sql_stage_graph/test_dependency.py similarity index 100% rename from tests/unit_tests/sql_stage_graph/test_dependency.py rename to test/unit/sql_stage_graph/test_dependency.py diff --git a/tests/unit_tests/sql_stage_graph/test_find_object_proxies.py b/test/unit/sql_stage_graph/test_find_object_proxies.py similarity index 100% rename from tests/unit_tests/sql_stage_graph/test_find_object_proxies.py rename to test/unit/sql_stage_graph/test_find_object_proxies.py diff --git a/tests/unit_tests/sql_stage_graph/test_object_proxy_reference_counter.py b/test/unit/sql_stage_graph/test_object_proxy_reference_counter.py similarity index 99% rename from tests/unit_tests/sql_stage_graph/test_object_proxy_reference_counter.py rename to test/unit/sql_stage_graph/test_object_proxy_reference_counter.py index 7a918c90..c21c1ebf 100644 --- a/tests/unit_tests/sql_stage_graph/test_object_proxy_reference_counter.py +++ b/test/unit/sql_stage_graph/test_object_proxy_reference_counter.py @@ -1,4 +1,5 @@ import dataclasses +from test.utils.mock_cast import mock_cast from typing import Union from unittest.mock import ( MagicMock, @@ -14,7 +15,6 @@ ObjectProxyReferenceCounter, ReferenceCounterStatus, ) -from tests.utils.mock_cast import mock_cast MockScopeQueryHandlerContext = Union[ScopeQueryHandlerContext, MagicMock] MockObjectProxy = Union[ObjectProxy, MagicMock] diff --git a/tests/unit_tests/sql_stage_graph/test_object_proxy_reference_counting_bag_with_mocks.py b/test/unit/sql_stage_graph/test_object_proxy_reference_counting_bag_with_mocks.py similarity index 99% rename from tests/unit_tests/sql_stage_graph/test_object_proxy_reference_counting_bag_with_mocks.py rename to test/unit/sql_stage_graph/test_object_proxy_reference_counting_bag_with_mocks.py index 86b90116..cad3784e 100644 --- a/tests/unit_tests/sql_stage_graph/test_object_proxy_reference_counting_bag_with_mocks.py +++ b/test/unit/sql_stage_graph/test_object_proxy_reference_counting_bag_with_mocks.py @@ -1,4 +1,5 @@ import dataclasses +from test.utils.mock_cast import mock_cast from typing import ( List, Union, @@ -22,7 +23,6 @@ ObjectProxyReferenceCounterFactory, ObjectProxyReferenceCountingBag, ) -from tests.utils.mock_cast import mock_cast MockObjectProxyReferenceCounter = Union[ObjectProxyReferenceCounter, MagicMock] MockObjectProxyReferenceCounterFactory = Union[ObjectProxyReferenceCounterFactory, Mock] diff --git a/tests/unit_tests/sql_stage_graph/test_object_proxy_reference_counting_bag_with_query_handler_context_impl.py b/test/unit/sql_stage_graph/test_object_proxy_reference_counting_bag_with_query_handler_context_impl.py similarity index 100% rename from tests/unit_tests/sql_stage_graph/test_object_proxy_reference_counting_bag_with_query_handler_context_impl.py rename to test/unit/sql_stage_graph/test_object_proxy_reference_counting_bag_with_query_handler_context_impl.py diff --git a/tests/unit_tests/sql_stage_graph/test_sql_stage_input_output.py b/test/unit/sql_stage_graph/test_sql_stage_input_output.py similarity index 100% rename from tests/unit_tests/sql_stage_graph/test_sql_stage_input_output.py rename to test/unit/sql_stage_graph/test_sql_stage_input_output.py diff --git a/tests/unit_tests/sql_stage_graph/test_sql_stage_train_query_handler_input.py b/test/unit/sql_stage_graph/test_sql_stage_train_query_handler_input.py similarity index 100% rename from tests/unit_tests/sql_stage_graph/test_sql_stage_train_query_handler_input.py rename to test/unit/sql_stage_graph/test_sql_stage_train_query_handler_input.py diff --git a/tests/unit_tests/udf_communication/__init__.py b/test/unit/udf_communication/__init__.py similarity index 100% rename from tests/unit_tests/udf_communication/__init__.py rename to test/unit/udf_communication/__init__.py diff --git a/tests/unit_tests/udf_communication/peer_communication/__init__.py b/test/unit/udf_communication/peer_communication/__init__.py similarity index 100% rename from tests/unit_tests/udf_communication/peer_communication/__init__.py rename to test/unit/udf_communication/peer_communication/__init__.py diff --git a/tests/unit_tests/udf_communication/peer_communication/background_thread/__init__.py b/test/unit/udf_communication/peer_communication/background_thread/__init__.py similarity index 100% rename from tests/unit_tests/udf_communication/peer_communication/background_thread/__init__.py rename to test/unit/udf_communication/peer_communication/background_thread/__init__.py diff --git a/tests/unit_tests/udf_communication/peer_communication/background_thread/connection_closer/__init__.py b/test/unit/udf_communication/peer_communication/background_thread/connection_closer/__init__.py similarity index 100% rename from tests/unit_tests/udf_communication/peer_communication/background_thread/connection_closer/__init__.py rename to test/unit/udf_communication/peer_communication/background_thread/connection_closer/__init__.py diff --git a/tests/unit_tests/udf_communication/peer_communication/background_thread/connection_closer/test_connection_closer.py b/test/unit/udf_communication/peer_communication/background_thread/connection_closer/test_connection_closer.py similarity index 100% rename from tests/unit_tests/udf_communication/peer_communication/background_thread/connection_closer/test_connection_closer.py rename to test/unit/udf_communication/peer_communication/background_thread/connection_closer/test_connection_closer.py diff --git a/tests/unit_tests/udf_communication/peer_communication/background_thread/connection_closer/test_connection_closer_builder.py b/test/unit/udf_communication/peer_communication/background_thread/connection_closer/test_connection_closer_builder.py similarity index 99% rename from tests/unit_tests/udf_communication/peer_communication/background_thread/connection_closer/test_connection_closer_builder.py rename to test/unit/udf_communication/peer_communication/background_thread/connection_closer/test_connection_closer_builder.py index 305a8f05..e2a7808e 100644 --- a/tests/unit_tests/udf_communication/peer_communication/background_thread/connection_closer/test_connection_closer_builder.py +++ b/test/unit/udf_communication/peer_communication/background_thread/connection_closer/test_connection_closer_builder.py @@ -1,4 +1,5 @@ import dataclasses +from test.utils.mock_cast import mock_cast from typing import ( List, Union, @@ -38,7 +39,6 @@ from exasol.analytics.udf.communication.peer_communicator.sender import Sender from exasol.analytics.udf.communication.peer_communicator.timer import TimerFactory from exasol.analytics.udf.communication.socket_factory.abstract import Socket -from tests.utils.mock_cast import mock_cast @dataclasses.dataclass() diff --git a/tests/unit_tests/udf_communication/peer_communication/background_thread/connection_closer/test_connection_is_closed_sender.py b/test/unit/udf_communication/peer_communication/background_thread/connection_closer/test_connection_is_closed_sender.py similarity index 99% rename from tests/unit_tests/udf_communication/peer_communication/background_thread/connection_closer/test_connection_is_closed_sender.py rename to test/unit/udf_communication/peer_communication/background_thread/connection_closer/test_connection_is_closed_sender.py index fe985909..d6d095c6 100644 --- a/tests/unit_tests/udf_communication/peer_communication/background_thread/connection_closer/test_connection_is_closed_sender.py +++ b/test/unit/udf_communication/peer_communication/background_thread/connection_closer/test_connection_is_closed_sender.py @@ -1,4 +1,5 @@ import dataclasses +from test.utils.mock_cast import mock_cast from typing import Union from unittest.mock import ( MagicMock, @@ -21,7 +22,6 @@ from exasol.analytics.udf.communication.peer_communicator.timer import Timer from exasol.analytics.udf.communication.serialization import serialize_message from exasol.analytics.udf.communication.socket_factory.abstract import Socket -from tests.utils.mock_cast import mock_cast @dataclasses.dataclass() diff --git a/tests/unit_tests/udf_communication/peer_communication/test_abort_timeout_sender.py b/test/unit/udf_communication/peer_communication/test_abort_timeout_sender.py similarity index 100% rename from tests/unit_tests/udf_communication/peer_communication/test_abort_timeout_sender.py rename to test/unit/udf_communication/peer_communication/test_abort_timeout_sender.py diff --git a/tests/unit_tests/udf_communication/peer_communication/test_acknowledge_register_peer_sender.py b/test/unit/udf_communication/peer_communication/test_acknowledge_register_peer_sender.py similarity index 99% rename from tests/unit_tests/udf_communication/peer_communication/test_acknowledge_register_peer_sender.py rename to test/unit/udf_communication/peer_communication/test_acknowledge_register_peer_sender.py index 3552c1de..68a44ee6 100644 --- a/tests/unit_tests/udf_communication/peer_communication/test_acknowledge_register_peer_sender.py +++ b/test/unit/udf_communication/peer_communication/test_acknowledge_register_peer_sender.py @@ -1,4 +1,5 @@ import dataclasses +from test.utils.mock_cast import mock_cast from typing import Union from unittest.mock import ( MagicMock, @@ -21,7 +22,6 @@ RegisterPeerConnection, ) from exasol.analytics.udf.communication.peer_communicator.timer import Timer -from tests.utils.mock_cast import mock_cast @dataclasses.dataclass diff --git a/tests/unit_tests/udf_communication/peer_communication/test_background_peer_state.py b/test/unit/udf_communication/peer_communication/test_background_peer_state.py similarity index 99% rename from tests/unit_tests/udf_communication/peer_communication/test_background_peer_state.py rename to test/unit/udf_communication/peer_communication/test_background_peer_state.py index 2904773c..b72b99bf 100644 --- a/tests/unit_tests/udf_communication/peer_communication/test_background_peer_state.py +++ b/test/unit/udf_communication/peer_communication/test_background_peer_state.py @@ -1,4 +1,5 @@ import dataclasses +from test.utils.mock_cast import mock_cast from typing import Union from unittest.mock import ( MagicMock, @@ -33,7 +34,6 @@ ) from exasol.analytics.udf.communication.peer_communicator.sender import Sender from exasol.analytics.udf.communication.socket_factory.abstract import Frame -from tests.utils.mock_cast import mock_cast @dataclasses.dataclass() diff --git a/tests/unit_tests/udf_communication/peer_communication/test_connection_establisher.py b/test/unit/udf_communication/peer_communication/test_connection_establisher.py similarity index 100% rename from tests/unit_tests/udf_communication/peer_communication/test_connection_establisher.py rename to test/unit/udf_communication/peer_communication/test_connection_establisher.py diff --git a/tests/unit_tests/udf_communication/peer_communication/test_connection_establisher_builder.py b/test/unit/udf_communication/peer_communication/test_connection_establisher_builder.py similarity index 99% rename from tests/unit_tests/udf_communication/peer_communication/test_connection_establisher_builder.py rename to test/unit/udf_communication/peer_communication/test_connection_establisher_builder.py index a1923847..157dc8df 100644 --- a/tests/unit_tests/udf_communication/peer_communication/test_connection_establisher_builder.py +++ b/test/unit/udf_communication/peer_communication/test_connection_establisher_builder.py @@ -1,4 +1,5 @@ import dataclasses +from test.utils.mock_cast import mock_cast from typing import ( List, Union, @@ -38,7 +39,6 @@ ) from exasol.analytics.udf.communication.peer_communicator.timer import TimerFactory from exasol.analytics.udf.communication.socket_factory.abstract import Socket -from tests.utils.mock_cast import mock_cast @dataclasses.dataclass() diff --git a/tests/unit_tests/udf_communication/peer_communication/test_connection_is_ready_sender.py b/test/unit/udf_communication/peer_communication/test_connection_is_ready_sender.py similarity index 99% rename from tests/unit_tests/udf_communication/peer_communication/test_connection_is_ready_sender.py rename to test/unit/udf_communication/peer_communication/test_connection_is_ready_sender.py index fe831965..b7c071f5 100644 --- a/tests/unit_tests/udf_communication/peer_communication/test_connection_is_ready_sender.py +++ b/test/unit/udf_communication/peer_communication/test_connection_is_ready_sender.py @@ -1,4 +1,5 @@ import dataclasses +from test.utils.mock_cast import mock_cast from typing import Union from unittest.mock import ( MagicMock, @@ -21,7 +22,6 @@ from exasol.analytics.udf.communication.peer_communicator.timer import Timer from exasol.analytics.udf.communication.serialization import serialize_message from exasol.analytics.udf.communication.socket_factory.abstract import Socket -from tests.utils.mock_cast import mock_cast @dataclasses.dataclass() diff --git a/tests/unit_tests/udf_communication/peer_communication/test_payload_handler.py b/test/unit/udf_communication/peer_communication/test_payload_handler.py similarity index 98% rename from tests/unit_tests/udf_communication/peer_communication/test_payload_handler.py rename to test/unit/udf_communication/peer_communication/test_payload_handler.py index ea79b13c..cffc7099 100644 --- a/tests/unit_tests/udf_communication/peer_communication/test_payload_handler.py +++ b/test/unit/udf_communication/peer_communication/test_payload_handler.py @@ -1,4 +1,5 @@ import dataclasses +from test.utils.mock_cast import mock_cast from typing import Union from unittest.mock import ( MagicMock, @@ -20,7 +21,6 @@ PayloadSender, ) from exasol.analytics.udf.communication.socket_factory.abstract import Frame -from tests.utils.mock_cast import mock_cast @dataclasses.dataclass diff --git a/tests/unit_tests/udf_communication/peer_communication/test_payload_message_sender.py b/test/unit/udf_communication/peer_communication/test_payload_message_sender.py similarity index 99% rename from tests/unit_tests/udf_communication/peer_communication/test_payload_message_sender.py rename to test/unit/udf_communication/peer_communication/test_payload_message_sender.py index 4eac4518..02b594d1 100644 --- a/tests/unit_tests/udf_communication/peer_communication/test_payload_message_sender.py +++ b/test/unit/udf_communication/peer_communication/test_payload_message_sender.py @@ -1,4 +1,5 @@ import dataclasses +from test.utils.mock_cast import mock_cast from typing import ( List, Union, @@ -28,7 +29,6 @@ Frame, Socket, ) -from tests.utils.mock_cast import mock_cast @dataclasses.dataclass(frozen=True) diff --git a/tests/unit_tests/udf_communication/peer_communication/test_payload_receiver.py b/test/unit/udf_communication/peer_communication/test_payload_receiver.py similarity index 100% rename from tests/unit_tests/udf_communication/peer_communication/test_payload_receiver.py rename to test/unit/udf_communication/peer_communication/test_payload_receiver.py diff --git a/tests/unit_tests/udf_communication/peer_communication/test_payload_sender.py b/test/unit/udf_communication/peer_communication/test_payload_sender.py similarity index 99% rename from tests/unit_tests/udf_communication/peer_communication/test_payload_sender.py rename to test/unit/udf_communication/peer_communication/test_payload_sender.py index eab4683a..f3263436 100644 --- a/tests/unit_tests/udf_communication/peer_communication/test_payload_sender.py +++ b/test/unit/udf_communication/peer_communication/test_payload_sender.py @@ -1,4 +1,5 @@ import dataclasses +from test.utils.mock_cast import mock_cast from typing import ( List, Tuple, @@ -36,7 +37,6 @@ Frame, Socket, ) -from tests.utils.mock_cast import mock_cast @dataclasses.dataclass diff --git a/tests/unit_tests/udf_communication/peer_communication/test_register_peer_forwarder_is_ready_sender.py b/test/unit/udf_communication/peer_communication/test_register_peer_forwarder_is_ready_sender.py similarity index 99% rename from tests/unit_tests/udf_communication/peer_communication/test_register_peer_forwarder_is_ready_sender.py rename to test/unit/udf_communication/peer_communication/test_register_peer_forwarder_is_ready_sender.py index 86b556d5..748511e5 100644 --- a/tests/unit_tests/udf_communication/peer_communication/test_register_peer_forwarder_is_ready_sender.py +++ b/test/unit/udf_communication/peer_communication/test_register_peer_forwarder_is_ready_sender.py @@ -1,4 +1,5 @@ import dataclasses +from test.utils.mock_cast import mock_cast from typing import Union from unittest.mock import ( MagicMock, @@ -24,7 +25,6 @@ from exasol.analytics.udf.communication.peer_communicator.timer import Timer from exasol.analytics.udf.communication.serialization import serialize_message from exasol.analytics.udf.communication.socket_factory.abstract import Socket -from tests.utils.mock_cast import mock_cast @dataclasses.dataclass diff --git a/tests/unit_tests/udf_communication/peer_communication/test_register_peer_sender.py b/test/unit/udf_communication/peer_communication/test_register_peer_sender.py similarity index 99% rename from tests/unit_tests/udf_communication/peer_communication/test_register_peer_sender.py rename to test/unit/udf_communication/peer_communication/test_register_peer_sender.py index 2815f5a0..9d21924b 100644 --- a/tests/unit_tests/udf_communication/peer_communication/test_register_peer_sender.py +++ b/test/unit/udf_communication/peer_communication/test_register_peer_sender.py @@ -1,4 +1,5 @@ import dataclasses +from test.utils.mock_cast import mock_cast from typing import ( Any, Union, @@ -26,7 +27,6 @@ RegisterPeerSender, ) from exasol.analytics.udf.communication.peer_communicator.timer import Timer -from tests.utils.mock_cast import mock_cast @dataclasses.dataclass() diff --git a/tests/unit_tests/udf_communication/peer_communication/test_synchronize_connection_sender.py b/test/unit/udf_communication/peer_communication/test_synchronize_connection_sender.py similarity index 99% rename from tests/unit_tests/udf_communication/peer_communication/test_synchronize_connection_sender.py rename to test/unit/udf_communication/peer_communication/test_synchronize_connection_sender.py index 68d08d4d..42d6493c 100644 --- a/tests/unit_tests/udf_communication/peer_communication/test_synchronize_connection_sender.py +++ b/test/unit/udf_communication/peer_communication/test_synchronize_connection_sender.py @@ -1,4 +1,5 @@ import dataclasses +from test.utils.mock_cast import mock_cast from typing import Union from unittest.mock import ( MagicMock, @@ -18,7 +19,6 @@ SynchronizeConnectionSender, ) from exasol.analytics.udf.communication.peer_communicator.timer import Timer -from tests.utils.mock_cast import mock_cast @dataclasses.dataclass() diff --git a/tests/unit_tests/udf_communication/peer_communication/test_timer.py b/test/unit/udf_communication/peer_communication/test_timer.py similarity index 98% rename from tests/unit_tests/udf_communication/peer_communication/test_timer.py rename to test/unit/udf_communication/peer_communication/test_timer.py index f0bbcb8b..edbb7baf 100644 --- a/tests/unit_tests/udf_communication/peer_communication/test_timer.py +++ b/test/unit/udf_communication/peer_communication/test_timer.py @@ -1,3 +1,4 @@ +from test.utils.mock_cast import mock_cast from typing import Union from unittest.mock import ( MagicMock, @@ -7,7 +8,6 @@ from exasol.analytics.udf.communication.peer_communicator.clock import Clock from exasol.analytics.udf.communication.peer_communicator.timer import Timer -from tests.utils.mock_cast import mock_cast def test_init(): diff --git a/tests/unit_tests/udf_communication/socket_factory/__init__.py b/test/unit/udf_communication/socket_factory/__init__.py similarity index 100% rename from tests/unit_tests/udf_communication/socket_factory/__init__.py rename to test/unit/udf_communication/socket_factory/__init__.py diff --git a/tests/unit_tests/udf_communication/socket_factory/fault_injection/__init__.py b/test/unit/udf_communication/socket_factory/fault_injection/__init__.py similarity index 100% rename from tests/unit_tests/udf_communication/socket_factory/fault_injection/__init__.py rename to test/unit/udf_communication/socket_factory/fault_injection/__init__.py diff --git a/tests/unit_tests/udf_communication/socket_factory/fault_injection/test_socket.py b/test/unit/udf_communication/socket_factory/fault_injection/test_socket.py similarity index 99% rename from tests/unit_tests/udf_communication/socket_factory/fault_injection/test_socket.py rename to test/unit/udf_communication/socket_factory/fault_injection/test_socket.py index dec9f5b5..5133fa45 100644 --- a/tests/unit_tests/udf_communication/socket_factory/fault_injection/test_socket.py +++ b/test/unit/udf_communication/socket_factory/fault_injection/test_socket.py @@ -1,3 +1,4 @@ +from test.utils.mock_cast import mock_cast from typing import ( Optional, Union, @@ -16,7 +17,6 @@ abstract, fault_injection, ) -from tests.utils.mock_cast import mock_cast def test_create_socket_with(): diff --git a/tests/unit_tests/udf_communication/socket_factory/zmq/__init__.py b/test/unit/udf_communication/socket_factory/zmq/__init__.py similarity index 100% rename from tests/unit_tests/udf_communication/socket_factory/zmq/__init__.py rename to test/unit/udf_communication/socket_factory/zmq/__init__.py diff --git a/tests/unit_tests/udf_communication/socket_factory/zmq/test_zmq_poller.py b/test/unit/udf_communication/socket_factory/zmq/test_zmq_poller.py similarity index 100% rename from tests/unit_tests/udf_communication/socket_factory/zmq/test_zmq_poller.py rename to test/unit/udf_communication/socket_factory/zmq/test_zmq_poller.py diff --git a/tests/unit_tests/udf_communication/socket_factory/zmq/test_zmq_socket.py b/test/unit/udf_communication/socket_factory/zmq/test_zmq_socket.py similarity index 99% rename from tests/unit_tests/udf_communication/socket_factory/zmq/test_zmq_socket.py rename to test/unit/udf_communication/socket_factory/zmq/test_zmq_socket.py index 677a3f5f..d10050ae 100644 --- a/tests/unit_tests/udf_communication/socket_factory/zmq/test_zmq_socket.py +++ b/test/unit/udf_communication/socket_factory/zmq/test_zmq_socket.py @@ -1,3 +1,4 @@ +from test.utils.mock_cast import mock_cast from typing import ( Optional, Union, @@ -20,7 +21,6 @@ ZMQSocket, ZMQSocketFactory, ) -from tests.utils.mock_cast import mock_cast def test_create_socket_with(): diff --git a/tests/unit_tests/udf_communication/socket_factory/zmq/test_zmq_socket_factory.py b/test/unit/udf_communication/socket_factory/zmq/test_zmq_socket_factory.py similarity index 100% rename from tests/unit_tests/udf_communication/socket_factory/zmq/test_zmq_socket_factory.py rename to test/unit/udf_communication/socket_factory/zmq/test_zmq_socket_factory.py diff --git a/tests/unit_tests/udf_communication/test_broadcast_operation.py b/test/unit/udf_communication/test_broadcast_operation.py similarity index 99% rename from tests/unit_tests/udf_communication/test_broadcast_operation.py rename to test/unit/udf_communication/test_broadcast_operation.py index 2b39b132..0b1b38a1 100644 --- a/tests/unit_tests/udf_communication/test_broadcast_operation.py +++ b/test/unit/udf_communication/test_broadcast_operation.py @@ -1,4 +1,5 @@ import dataclasses +from test.utils.mock_cast import mock_cast from typing import ( List, Optional, @@ -22,7 +23,6 @@ Frame, SocketFactory, ) -from tests.utils.mock_cast import mock_cast @dataclasses.dataclass(frozen=True) diff --git a/tests/unit_tests/udf_communication/test_gather_operation.py b/test/unit/udf_communication/test_gather_operation.py similarity index 99% rename from tests/unit_tests/udf_communication/test_gather_operation.py rename to test/unit/udf_communication/test_gather_operation.py index e61d76ab..3ad67e06 100644 --- a/tests/unit_tests/udf_communication/test_gather_operation.py +++ b/test/unit/udf_communication/test_gather_operation.py @@ -1,4 +1,5 @@ import dataclasses +from test.utils.mock_cast import mock_cast from typing import Union from unittest.mock import ( MagicMock, @@ -21,7 +22,6 @@ Frame, SocketFactory, ) -from tests.utils.mock_cast import mock_cast @dataclasses.dataclass(frozen=True) diff --git a/tests/unit_tests/udf_communication/test_messages.py b/test/unit/udf_communication/test_messages.py similarity index 100% rename from tests/unit_tests/udf_communication/test_messages.py rename to test/unit/udf_communication/test_messages.py diff --git a/tests/unit_tests/udf_framework/__init__.py b/test/unit/udf_framework/__init__.py similarity index 100% rename from tests/unit_tests/udf_framework/__init__.py rename to test/unit/udf_framework/__init__.py diff --git a/tests/unit_tests/udf_framework/mock_query_handlers.py b/test/unit/udf_framework/mock_query_handlers.py similarity index 100% rename from tests/unit_tests/udf_framework/mock_query_handlers.py rename to test/unit/udf_framework/mock_query_handlers.py diff --git a/tests/unit_tests/udf_framework/test_dynamic_modules.py b/test/unit/udf_framework/test_dynamic_modules.py similarity index 100% rename from tests/unit_tests/udf_framework/test_dynamic_modules.py rename to test/unit/udf_framework/test_dynamic_modules.py diff --git a/tests/unit_tests/udf_framework/test_json_udf_query_handler.py b/test/unit/udf_framework/test_json_udf_query_handler.py similarity index 100% rename from tests/unit_tests/udf_framework/test_json_udf_query_handler.py rename to test/unit/udf_framework/test_json_udf_query_handler.py diff --git a/tests/unit_tests/udf_framework/test_json_udf_query_handler_factory.py b/test/unit/udf_framework/test_json_udf_query_handler_factory.py similarity index 100% rename from tests/unit_tests/udf_framework/test_json_udf_query_handler_factory.py rename to test/unit/udf_framework/test_json_udf_query_handler_factory.py diff --git a/tests/unit_tests/udf_framework/test_query_handler_runner_udf_mock.py b/test/unit/udf_framework/test_query_handler_runner_udf_mock.py similarity index 94% rename from tests/unit_tests/udf_framework/test_query_handler_runner_udf_mock.py rename to test/unit/udf_framework/test_query_handler_runner_udf_mock.py index c47f6e1b..909a2d49 100644 --- a/tests/unit_tests/udf_framework/test_query_handler_runner_udf_mock.py +++ b/test/unit/udf_framework/test_query_handler_runner_udf_mock.py @@ -1,5 +1,8 @@ import json import re +from test.unit.udf_framework import mock_query_handlers +from test.unit.udf_framework.mock_query_handlers import TEST_CONNECTION +from test.utils.test_utils import pytest_regex from typing import ( Any, Dict, @@ -17,9 +20,6 @@ QueryHandlerStatus, create_bucketfs_location_from_conn_object, ) -from tests.unit_tests.udf_framework import mock_query_handlers -from tests.unit_tests.udf_framework.mock_query_handlers import TEST_CONNECTION -from tests.utils.test_utils import pytest_regex TEMPORARY_NAME_PREFIX = "temporary_name_prefix" @@ -112,7 +112,7 @@ def test_query_handler_udf_with_one_iteration(mocked_exa_env): TEMPORARY_NAME_PREFIX, "temp_schema", "MockQueryHandlerWithOneIterationFactory", - "tests.unit_tests.udf_framework.mock_query_handlers", + "test.unit.udf_framework.mock_query_handlers", mock_query_handlers.TEST_INPUT, ) result = UDFMockExecutor().run([Group([input_data])], mocked_exa_env) @@ -136,7 +136,7 @@ def test_query_handler_udf_with_one_iteration_with_not_released_child_query_hand TEMPORARY_NAME_PREFIX, "temp_schema", "MockQueryHandlerWithOneIterationWithNotReleasedChildQueryHandlerContextFactory", - "tests.unit_tests.udf_framework.mock_query_handlers", + "test.unit.udf_framework.mock_query_handlers", "{}", ) result = UDFMockExecutor().run([Group([input_data])], mocked_exa_env) @@ -160,7 +160,7 @@ def test_query_handler_udf_with_one_iteration_with_not_released_temporary_object TEMPORARY_NAME_PREFIX, "temp_schema", "MockQueryHandlerWithOneIterationWithNotReleasedTemporaryObjectFactory", - "tests.unit_tests.udf_framework.mock_query_handlers", + "test.unit.udf_framework.mock_query_handlers", "{}", ) result = UDFMockExecutor().run([Group([input_data])], mocked_exa_env) @@ -183,7 +183,7 @@ def test_query_handler_udf_with_one_iteration_and_temp_table(mocked_exa_env): TEMPORARY_NAME_PREFIX, "temp_schema", "QueryHandlerTestWithOneIterationAndTempTableFactory", - "tests.unit_tests.udf_framework.mock_query_handlers", + "test.unit.udf_framework.mock_query_handlers", "{}", ) result = UDFMockExecutor().run([Group([input_data])], mocked_exa_env) @@ -220,7 +220,7 @@ def state_file_exists(iteration: int) -> bool: TEMPORARY_NAME_PREFIX, "temp_schema", "MockQueryHandlerWithTwoIterationsFactory", - "tests.unit_tests.udf_framework.mock_query_handlers", + "test.unit.udf_framework.mock_query_handlers", "{}", ) executor = UDFMockExecutor() @@ -315,7 +315,7 @@ def test_query_handler_udf_using_connection( TEMPORARY_NAME_PREFIX, "temp_schema", "MockQueryHandlerUsingConnectionFactory", - "tests.unit_tests.udf_framework.mock_query_handlers", + "test.unit.udf_framework.mock_query_handlers", "{}", ) result = UDFMockExecutor().run([Group([input_data])], exa) diff --git a/tests/utils/__init__.py b/test/utils/__init__.py similarity index 100% rename from tests/utils/__init__.py rename to test/utils/__init__.py diff --git a/tests/utils/audit_table_utils.py b/test/utils/audit_table_utils.py similarity index 100% rename from tests/utils/audit_table_utils.py rename to test/utils/audit_table_utils.py diff --git a/tests/utils/db_queries.py b/test/utils/db_queries.py similarity index 100% rename from tests/utils/db_queries.py rename to test/utils/db_queries.py diff --git a/tests/utils/mock_cast.py b/test/utils/mock_cast.py similarity index 100% rename from tests/utils/mock_cast.py rename to test/utils/mock_cast.py diff --git a/tests/utils/revert_language_settings.py b/test/utils/revert_language_settings.py similarity index 100% rename from tests/utils/revert_language_settings.py rename to test/utils/revert_language_settings.py diff --git a/tests/utils/test_utils.py b/test/utils/test_utils.py similarity index 100% rename from tests/utils/test_utils.py rename to test/utils/test_utils.py diff --git a/tests/conftest.py b/tests/conftest.py deleted file mode 100644 index e0e84410..00000000 --- a/tests/conftest.py +++ /dev/null @@ -1,4 +0,0 @@ -pytest_plugins = [ - "tests.integration_tests.with_db.fixtures.setup_database_fixture", - "tests.unit_tests.query_handler.fixtures", -] diff --git a/version.py b/version.py index 5ee60e1b..09d8895a 100644 --- a/version.py +++ b/version.py @@ -1,9 +1,9 @@ # ATTENTION: -# This file is generated by exasol/toolbox/pre_commit_hooks/package_version.py when using: -# * either "poetry run nox -s project:fix" -# * or "poetry run version-check --fix" +# This file is generated by exasol/toolbox/nox/_package_version.py when using: +# * either "poetry run -- nox -s project:fix" +# * or "poetry run -- nox version:check -- --fix" # Do not edit this file manually! -# If you need to change the version, do so in the project.toml, e.g. by using `poetry version X.Y.Z`. +# If you need to change the version, do so in the pyproject.toml, e.g. by using `poetry version X.Y.Z`. MAJOR = 1 MINOR = 0 PATCH = 0