Skip to main content

buildstatus

Installation

pip install systest

Description

Execute a sequence of test cases in serial and/or parallel.

Test cases in a list are executed in serial and test cases in a tuple are executed in parallel, in separate Python threads.

This framework is created with integration/system test in mind. The framework is not intended as a replacement for unittest, but rather to be a complement to it.

Documentation: http://systest.readthedocs.org/en/latest

Example usage

See the test suite: https://github.com/eerimoq/systest/blob/master/tests/test_systest.py

For example, the sequence below starts with test case MyTestCase("1"). When MyTestCase("1") has been executed, MyTestCase("2") and the list of MyTestCase("3") and MyTestCase("4") are executed in parallel. When both MyTestCase("2") and the list of MyTestCase("3") and MyTestCase("4") has been executed, MyTestCase("5") is executed. Then the sequence ends.

import logging
import systest

LOGGER = logging.getLogger(__name__)

# Define a testcase.
class MyTestCase(systest.TestCase):
    """Test case description.

    """

    def __init__(self, name):
        super(MyTestCase, self).__init__()
        self.name = "my_testcase_" + name

    def run(self):
        LOGGER.info("Hello!")
        self.assert_equal(1, 1)
        self.assert_true(1 == 1)
        self.assert_in(1 in [1, 2])
        self.assert_none(None)

        with self.assert_raises(RuntimeError) as cm:
            raise RuntimeError('foo')

        self.assert_equal(str(cm.exception), 'foo')


sequencer = systest.setup("my_sequence")

sequencer.run(MyTestCase("1"),
              (
                  MyTestCase("2"),
                  [
                      MyTestCase("3"),
                      MyTestCase("4")
                  ]
              ),
              MyTestCase("5"))

sequencer.report_and_exit()

The output is:

Name: my_sequence
Date: 2020-05-30 11:41:49.712832
Node: erik-GR8
User: erik

---------------------------------------------------------------

Name: my_testcase_1
Description:

    Test case description.

Hello!

my_testcase_1: PASSED in 0 seconds

---------------------------------------------------------------

Name: my_testcase_2
Description:

    Test case description.

Hello!

my_testcase_2: PASSED in 0 seconds

---------------------------------------------------------------

Name: my_testcase_3
Description:

    Test case description.

Hello!

my_testcase_3: PASSED in 0 seconds

---------------------------------------------------------------

Name: my_testcase_4
Description:

    Test case description.

Hello!

my_testcase_4: PASSED in 0 seconds

---------------------------------------------------------------

Name: my_testcase_5
Description:

    Test case description.

Hello!

my_testcase_5: PASSED in 0 seconds

---------------------- Test summary begin ----------------------

[
    my_testcase_1: PASSED in 0 seconds,
    (
        my_testcase_2: PASSED in 0 seconds,
        [
            my_testcase_3: PASSED in 0 seconds,
            my_testcase_4: PASSED in 0 seconds
        ]
    ),
    my_testcase_5: PASSED in 0 seconds
]

Execution time: 0.02 seconds
Result: PASSED (5 passed, 5 total)

----------------------- Test summary end -----------------------

Download files

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

Source Distribution

systest-5.17.0.tar.gz (23.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

systest-5.17.0-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

Details for the file systest-5.17.0.tar.gz.

File metadata

  • Download URL: systest-5.17.0.tar.gz
  • Upload date:
  • Size: 23.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for systest-5.17.0.tar.gz
Algorithm Hash digest
SHA256 eb42f881f1182f583789070deefc1e17bdc830e3ff0b6b2e7d54cf9a211f7336
MD5 e9bc664d40ff4521f0f20600b37a7eae
BLAKE2b-256 b5a171b83a202e8cd2c4a707054e0b578529e84d0646db1af1b93272136afd9e

See more details on using hashes here.

File details

Details for the file systest-5.17.0-py3-none-any.whl.

File metadata

  • Download URL: systest-5.17.0-py3-none-any.whl
  • Upload date:
  • Size: 11.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for systest-5.17.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a22b7abac3ab8692f9147f7297ed68b8ed32c02aa36c3e165c9b4f136261bfb5
MD5 46a6d5e664572101792a22a64f6bdc83
BLAKE2b-256 662571c9789758480b72e773979be57bb33d90aff16ede0818caa6badfa71853

See more details on using hashes here.

Supported by

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