Skip to main content

Hacks to assist with testing.

Project description

Hacks to assist with testing.

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

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.tearDown(self): Run the tear down step of self.setupTeardown(), then super().tearDown().

Release Log

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cs_testutils-20241122.tar.gz (3.9 kB view details)

Uploaded Source

Built Distribution

cs_testutils-20241122-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

Details for the file cs_testutils-20241122.tar.gz.

File metadata

  • Download URL: cs_testutils-20241122.tar.gz
  • Upload date:
  • Size: 3.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.6

File hashes

Hashes for cs_testutils-20241122.tar.gz
Algorithm Hash digest
SHA256 39704928812f3a2147f33c043e1bd37e6eca0bc174d066798ece7f18386975aa
MD5 57e041b6e9751d1f5cb73a604d5a77fd
BLAKE2b-256 177ba53b272e1a0692d52a329ad2eb5841a3ccb30fd69de1ff34da914d53b8d3

See more details on using hashes here.

File details

Details for the file cs_testutils-20241122-py3-none-any.whl.

File metadata

File hashes

Hashes for cs_testutils-20241122-py3-none-any.whl
Algorithm Hash digest
SHA256 98d5b98bcaa6d2ac05850427bca39bac3a803d4ad5180f9c4ec057fe5967eeb9
MD5 becc4c5e0db7e1fed7fe661d00b21fa2
BLAKE2b-256 11d598d045706dc6f8ef2ad1d5eac25f156d5a18b713d99b93b160780064eb78

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page