diff --git a/.gitignore b/.gitignore index 1a097c1..10d32f0 100644 --- a/.gitignore +++ b/.gitignore @@ -130,12 +130,21 @@ dmypy.json # Pyre type checker .pyre/ -.vscode/ +# Allow specific vscode configuration +.vscode/* +!.vscode/extensions.json +!.vscode/settings.json + +# Local files .idea/ bin/ *.tar.gz *.zip +# pytest-ansible and tox-ansible +collections/ +kubevirt.core + # Collection specific ignores /changelogs/.plugin-cache.yaml /tests/output/ diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..b9ffe4a --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,8 @@ +{ + "recommendations": [ + "ms-python.python", + "ms-python.debugpy", + "ms-python.vscode-pylance", + "github.vscode-github-actions" + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..a3a1838 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "python.testing.pytestArgs": [ + "tests" + ], + "python.testing.unittestEnabled": false, + "python.testing.pytestEnabled": true +} diff --git a/Makefile b/Makefile index 12945d1..5ddb50d 100644 --- a/Makefile +++ b/Makefile @@ -7,3 +7,24 @@ cluster-up: .PHONY: cluster-down cluster-down: hack/e2e-setup.sh --cleanup + +.PHONY: build-venv +build-venv: + tox run -e venv + ln -sf .tox/venv .venv + +.PHONY: format +format: + tox run -e format + +.PHONY: test-sanity +test-sanity: + tox -f sanity --ansible -p auto --conf tox-ansible.ini + +.PHONY: test-unit +test-unit: + tox -f unit --ansible -p auto --conf tox-ansible.ini + +.PHONY: test-integration +test-integration: + tox -f integration --ansible --conf tox-ansible.ini diff --git a/galaxy.yml b/galaxy.yml index 5859945..c230928 100644 --- a/galaxy.yml +++ b/galaxy.yml @@ -26,6 +26,7 @@ build_ignore: - .git - .gitignore - .github + - .vscode - .yamllint - bin - changelogs @@ -35,6 +36,7 @@ build_ignore: - Makefile - OWNERS - REVIEW_CHECKLIST.md + - tox.ini - '*.tar.gz' - '*.zip' - docs/_gh_include diff --git a/test-requirements.txt b/test-requirements.txt index 47283a2..f90b181 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,9 +1,4 @@ -kubernetes-validate -coverage==4.5.4 -mock pytest -pytest-xdist -pytest-mock -pytest-forked -virtualenv pytest-ansible +pytest-xdist +tox-ansible diff --git a/tests/requirements.txt b/tests/requirements.txt new file mode 100644 index 0000000..89812bf --- /dev/null +++ b/tests/requirements.txt @@ -0,0 +1,2 @@ +# No additional requirements at this moment +# Have a look at /requirements.txt and /test-requirements.txt diff --git a/tests/unit/requirements.txt b/tests/unit/requirements.txt deleted file mode 100644 index 7f955e9..0000000 --- a/tests/unit/requirements.txt +++ /dev/null @@ -1,5 +0,0 @@ -jinja2 -jsonpatch -kubernetes>=28.1.0 -PyYAML>=3.11 -pytest diff --git a/tox-ansible.ini b/tox-ansible.ini new file mode 100644 index 0000000..e69de29 diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..4879a8f --- /dev/null +++ b/tox.ini @@ -0,0 +1,22 @@ +[tox] +env_list = venv + +[testenv:venv] +download = True +deps = + -r requirements.txt + -r test-requirements.txt + -r tests/requirements.txt +allowlist_externals = + mkdir + ln +commands = + mkdir -p "{env_site_packages_dir}/ansible_collections/kubevirt" + ln -sf "{tox_root}" "{env_site_packages_dir}/ansible_collections/kubevirt/core" + ansible-galaxy collection install -r requirements.yml -p "{env_site_packages_dir}/ansible_collections" --force + +[testenv:format] +deps = + black +commands = black . +