From 70ea88e3f1e5bdacd8aa6f1eaf30aa0efe2cc114 Mon Sep 17 00:00:00 2001 From: John Turner Date: Sun, 3 Mar 2024 19:22:32 -0500 Subject: [PATCH] switch test framework to pytest Pytest is a testing framework that is backwards compatible with "unittest" tests, but provides new styles of tests that are more ergonomic. Pytest tests do not require wrapping the test in a class, just a top level python function will be automatically picked up. Assertions use the regular python assert built-in and provide greatly enhanced debug output. These features reduce friction in writing new unit tests, and being backwards compatible allows preserving the existing gentoolkit unit tests. Changing the meson test command and installing the pytest package in CI are the only changes required to start using it! Signed-off-by: John Turner Closes: https://github.com/gentoo/gentoolkit/pull/45 Signed-off-by: Sam James --- .github/workflows/ci.yml | 2 +- meson.build | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index bcb2d59c..803dfde1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,7 +33,7 @@ jobs: python -m site python -m pip install --upgrade pip # setuptools needed for 3.12+ because of https://github.com/mesonbuild/meson/issues/7702. - python -m pip install meson ninja setuptools + python -m pip install meson ninja setuptools pytest - name: Install portage run: | mkdir portage diff --git a/meson.build b/meson.build index c7717389..c3e83c58 100644 --- a/meson.build +++ b/meson.build @@ -39,12 +39,8 @@ endif subdir('bin') subdir('pym') -test( - 'python-unittest', - py, - args : ['-m', 'unittest', 'discover', meson.current_source_dir() / 'pym'], - timeout : 0 -) +pytest = find_program('pytest') +test('pytest', pytest, args : ['-v', meson.current_source_dir() / 'pym']) if get_option('code-only') subdir_done()