Skip to main content

Hacks to assist with testing.

Latest release 20251020:

  • Add a default base SetupTeardownMixin.setupTeardown() context manager; this should now play nicely with test cases unaware of SetupTeardownMixin.
  • Remove the dependency on cs.debug.

Short summary:

  • assertSingleThread: Test that there is only one Thread still running.
  • product_test: Decorator for test methods which should run subTests against the Cartesian products from params.
  • SetupTeardownMixin: A mixin to support a single setupTeardown() context manager method.

Module contents:

  • assertSingleThread(include_daemon=False, exclude=None): Test that there is only one Thread still running.

    Parameters:

    • include_daemon: also count daemon Threads, normally skipped
    • exclude: optional Callable[Thread] to test for other Threads to exclude
  • product_test(*da, **dkw): Decorator for test methods which should run subTests against the Cartesian products from params.

    A specific TestCase would define its own decorator and apply it throughout the suite. Here is an example from cs.vt.datadir_tests:

    def multitest(test_method): return product_test( test_method, datadirclass=[DataDir, RawDataDir], indexclass=[ indexclass_by_name(indexname) for indexname in sorted(indexclass_names()) ], hashclass=[ HASHCLASS_BY_NAME[hashname] for hashname in sorted(HASHCLASS_BY_NAME.keys()) ], )

    whose test suite then just decorates each method with @multitest:

    @multitest
    def test000IndexEntry(self):
        ....
    

    Note that because there must be setup and teardown for each product, the TestCase class may well have empty setUp and tearDown methods and instead is expected to provide:

    • product_setup(self,**params): a setup method taking keyword arguments for each product
    • product_teardown(self): the corresponding testdown method There are called around each subTest.
  • class SetupTeardownMixin: A mixin to support a single setupTeardown() context manager method.

SetupTeardownMixin.setUp(self): Run super().setUp() then the set up step of self.setupTeardown().

SetupTeardownMixin.setupTeardown(self): Base class setupTeardown context manager which does nothing.

SetupTeardownMixin.tearDown(self): Run the tear down step of self.setupTeardown(), then super().tearDown().

Release Log

Release 20251020:

  • Add a default base SetupTeardownMixin.setupTeardown() context manager; this should now play nicely with test cases unaware of SetupTeardownMixin.
  • Remove the dependency on cs.debug.

Release 20250426: Update DISTINFO.

Release 20241122: assertSingleThread: new optional exclude parameter which is a callable to test where a Thread should be ignored.

Release 20240623: New assertSingleThread() function to check that there are no left over Threads.

Release 20230109:

  • @product_test decorator for running test matrices.
  • SetupTeardownMixin providing unittest setUp/tearDown from setupTeardown context manager method.

Release files for cs-testutils 20251020

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cs-testutils 20251020
File Size Uploaded
cs_testutils-20251020.tar.gz 3.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cs-testutils 20251020
File Interpreter ABI Platform
cs_testutils-20251020-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 7.9 kB

Release files / cs_testutils-20251020.tar.gz

Download URL cs_testutils-20251020.tar.gz
Size 3.4 kB
Tags Source
SHA-256 checksum
How to use checksums
1773ef81455e0c568cac98de28626c2118a55e6355a49071848646ec2dc10361
BLAKE2b-256 checksum
How to use checksums
5bae9ad6d5f3371ca61afa669bc369ff9f200f89610cbdb6f3d3ea69669de522
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.1

Release files / cs_testutils-20251020-py2.py3-none-any.whl

Download URL cs_testutils-20251020-py2.py3-none-any.whl
Size 4.4 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
752733ab343b20b68d3aab4bbfc1c2b10d6368f58320dd7452a56ab1d202457e
BLAKE2b-256 checksum
How to use checksums
037f573b2ea35c455f8e97f2c1f42ead28c3bf7bdb510ce6bee4edd67fce9744
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.1

Release history Release notifications | RSS feed

This release

20251020 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page