Skip to main content

Improved TestCase class

Project description

Improved TestCase Class

License Github pypi Travis CI

dectest.TestCase is a drop-in replacement for unittest.TestCase with a few added features.

Tests, Setup, and Teardown with Decorators

Tests can optionally be marked using the @test decorator, instead of prefixing the method name with test. The following test case class contains two tests:

from dectest import TestCase, test

class MyTest(TestCase):
    def test_foo(self):
        pass

    @test
    def bar(self):
        pass

Setup and teardown methods can be marked using the @before and @after decorators, respectively. A class can have multiple setup and teardown methods:

from dectest import TestCase, before, after

class MyTest(TestCase):
    @before
    def setup_stuff(self):
        pass

    @before
    def setup_more_stuff(self):
        pass

    @after
    def teardown_all_stuff(self):
        pass

While the order of execution inside a class is undefined and should not be relied upon, it is guaranteed that setup methods in super-classes are executed before methods in sub-classes, and teardown methods in sub-classes are executed before teardown method in super-classes:

from dectest import TestCase, before, after

class MySuperTest(TestCase):
    @before
    def super_setup(self):
        print("setup first")

    @after
    def super_teardown(self):
        print("teardown second")

class MySubTest(MySuperTest):
    @before
    def sub_setup(self):
        print("setup second")

    @after
    def sub_teardown(self):
        print("teardown first")

Patch Support

dectest.TestCase has a patch() method to install a mock using unittest.mock.patch(). This patch is removed during test teardown:

from dectest import TestCase, test

class MyPatchTest(TestCase):
    @test
    def foo(self):
        exit = self.patch("sys.exit")  # will be stopped during teardown
        # call implementation
        exit.assert_called_with(1)

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

dectest-1.0.0-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

Details for the file dectest-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: dectest-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 4.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.18.4 setuptools/39.2.0 requests-toolbelt/0.8.0 tqdm/4.23.4 CPython/3.6.6

File hashes

Hashes for dectest-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dfa48ae4c4455224d1ff96a5b29b1fb5463fdbdea8e043e88d515cdc4790f37f
MD5 3e4855a62f8f01148c2a75e9190954e3
BLAKE2b-256 9369cb0527ea34e73d802e1e1b0e0c2ac5e99c8b8f813cb217c3a2eb982d8d8d

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