Skip to main content

Create test sets to test different implementations of the same interface

Project description

Installation

$ pip install nose-test-sets

Usage

To define your set of common tests, create a TestSetBuilder, and use add_test to add tests. Each test should accept the same name of arguments. Say you define some tests for an adder in the module adder_test_set:

from nose_test_sets import TestSetBuilder

test_set_builder = TestSetBuilder()
test = test_set_builder.add_test

@test
def adding_zero_to_zero_returns_zero(adder):
    assert adder.add(0, 0) == 0

@test
def adding_one_to_two_returns_three(adder):
    assert adder.add(1, 2) == 3

create = test_set_builder.create

To run the tests against a specific implementation, you create a set of tests using the create function that we defined above:

import adder_test_set

def _run_test_with_standard_adder(test_func):
    adder = StandardAdder()
    return test_func(adder)

StandardAdderTests = adder_test_set.create(
    "StandardAdderTests",
    _run_test_with_standard_adder
)

The first argument to create should be the name of the concrete test set. The second argument is a function that can run each of the test functions. In the example above, to run the tests in StandardAdderTests, nose-test-sets ends up calling _run_test_with_standard_adder(adding_zero_to_zero_returns_zero) and _run_test_with_standard_adder(adding_one_to_two_returns_three).

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

nose-test-sets-0.2.1.tar.gz (1.4 kB view details)

Uploaded Source

File details

Details for the file nose-test-sets-0.2.1.tar.gz.

File metadata

File hashes

Hashes for nose-test-sets-0.2.1.tar.gz
Algorithm Hash digest
SHA256 5c33257dabd07b42811b05a6349fcc60483b9694c3c54bcb45504785e4a1654e
MD5 2c935d230cce29a0c93601d2d0c49e94
BLAKE2b-256 d058296511e2518f814892b0f1c8899141f09ea4798e9d4c4f4303bd64717325

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