Skip to main content

An Object Oriented Testing Framework.

Project description

Build status

An object oriented testing framework.

Installation

From pip3:

$ pip3 install --upgrade rstcheck

From source:

$ python3 setup.py --quiet install

Tests

Install the pitest package first, then:

$ cd unittests
$ python3 -m unittest

Usage Examples

  1. Write a test case:

import pitest

class MyTestCase(pitest.TestCaseBase):
    # By default, test methods are methods whose names start with 'test_'. You
    # can change the matching patterns by defining the 'test_patterns' class
    # variable by uncommenting the following line:
    #       test_patterns = [ 'mytest_*', 'yourtest_*' ]

    # The start * means it matches anything, just like the command line glob.

    # If test methods have inter-dependencies, i.e., certain tests must precede
    # some other tests, you can define the dependencies using the
    # 'internal_deps' class variable. Here is an example:
    #       internal_deps = { 'test_foo1': [ 'test_bar1*', 'test_bar2*' ],
    #                         'test_hel*lo': [ 'test_no', 'test_yes*' ],
    #                       }

    # If this test case depend on other test cases, you can specify their
    # dependencies via the 'deps' class variable. Here is an example:
    #       deps = [ 'MyTestCase1', 'MyTestCaseFoo*', ]

    # When you reference other test cases, you do NOT need to import the files
    # that define the referenced test cases. But if they cannot be found by the
    # end of the day, error will occur.

    def __init__(self[, *args[, **kwargs]]):
        pass

    # Run once before running all test methods.
    def setup_instance(self[, *args[, **kwargs]]):
        pass

    # Run once after running all test methods.
    def teardown_instance(self[, *args[, **kwargs]]):
        pass

    # Run once before running every single test method.
    def setup(self[, *args[, **kwargs]]):
        pass

    # Run once after running every single test method.
    def teardown(self[, *args[, **kwargs]]):
        pass

    # Actual test methods, names matching 'test_patterns'.
    def test_foo_something(self[, *args[, **kwargs]]):
        pass
    def test_foo_something_else(self[, *args[, **kwargs]]):
        pass
    def test_bar_something(self[, *args[, **kwargs]]):
        pass
    def test_bar_something_else(self[, *args[, **kwargs]]):
        pass
  1. Write argument file

import pitest

__pitest_main_default_args_name__ = 'my_args'

my_args = pitest.TestCaseArgs()
my_args.set_method_args('__init__',
        args = ('Anndee', ),
        kwargs = { 'kwarg0': 'KoolArg' })
my_args.set_method_args('test',
        args = ('naathing', ),
        kwargs = { 'kwarg1': 'at owl' })

my_args2 = pitest.TestCaseArgs()
my_args2.set_method_args('__init__',
        args = ('Bashii', ),
        kwargs = { 'kwarg0': 'KoolArg2' })
my_args2.set_method_args('test',
        args = ('naathing', ),
        kwargs = { 'kwarg1': 'at owlll' })
  1. Run the test cases

Discover tests:

$ python3 -m pitest discover (case | method | all)

Run tests:

$ python3 -m pitest run (case | method) name

Scan given directory:

$ python3 -m pitest --start-dir some/dir ...

Run tests with dynamic arguments:

$ python3 -m pitest run case MyTestCase --args-file my_args.py

Use a non-default argument object in the file:

$ python3 -m pitest run case MyTestCase --args-file my_args.py \
                                        --args-name my_args2

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

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

Source Distribution

pitest-0.1.tar.gz (13.7 kB view hashes)

Uploaded Source

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