python_wrap_cases.generators package

Submodules

python_wrap_cases.generators.base_generator module

Module with base generator

class python_wrap_cases.generators.base_generator.BaseGenerator[source]

Bases: object

Base class for all generators

dependent = False
generate_cases(arg_index, key, *args, **kwargs)[source]

Generate test case. This method must be implement in all generators :param arg_index: index of current element position

in argument in wrap_case. Use it to parse arg
Parameters:
  • key – key word of current argument. Use it to parse kwargs
  • args (list) – all wrap_case arguments
  • kwargs (dict) – all named arguments in wrap_case
Returns:

List of new argument that should be used instead of this one

Return type:

list

static is_iter(obj)[source]

Check is object are iterable :param obj: some object :type obj: any :return: is object are iterable :rtype: bool

python_wrap_cases.generators.custom_generator module

class python_wrap_cases.generators.custom_generator.CustomGenerator(func)[source]

Bases: python_wrap_cases.generators.base_generator.BaseGenerator

dependent = True
generate_cases(arg_index, key, *args, **kwargs)

python_wrap_cases.generators.func_generator module

class python_wrap_cases.generators.func_generator.FuncGenerator(func)[source]

Bases: python_wrap_cases.generators.base_generator.BaseGenerator

generate_cases(arg_index, key, *args, **kwargs)

python_wrap_cases.generators.generatorst_factory module

python_wrap_cases.generators.generatorst_factory.add_generators(*args, **kwargs)[source]
python_wrap_cases.generators.generatorst_factory.find_generators(func)[source]

python_wrap_cases.generators.list_generator module

Module with list generator

This generator may be use for generate list of wrap cases

Example:

@wrap_case
class ListGeneratorTests(unittest.TestCase):

    @wrap_case(number__list=[0, 1, 2, 3])
    def test_div_1(self, number):
        self.assertEqual(number/1, number)

This code equal to this one:

@wrap_case
class ListGeneratorTests(unittest.TestCase):

    @wrap_case(number=0)
    @wrap_case(number=1)
    @wrap_case(number=2)
    @wrap_case(number=3)
    def test_div_1(self, number):
        self.assertEqual(number/1, number)

If you use two or more list generator in wrap_case, library generate all possible combination of arguments from these lists.

@wrap_case
class TestWithTwoListGenerators(unittest.TestCase):

    @wrap_case(a__list=[1, 2], b__list=[0, 1])
    def test_gte(self, a, b):
        self.assertTrue(a >= b)

it`s equal to

@wrap_case
class TestWithoutListGenerators(unittest.TestCase):

    @wrap_case(a=1, b=0)
    @wrap_case(a=1, b=1)
    @wrap_case(a=2, b=0)
    @wrap_case(a=2, b=1)
    def test_gte(self, a, b):
        self.assertTrue(a >= b)
.. py:class:: ListGenerator(collection)
module:python_wrap_cases.generators.list_generator

Bases: python_wrap_cases.generators.base_generator.BaseGenerator

Generate tests based on lest of arguments.

This generator will generate all possible variant of cases

ListGenerator.generate_cases(arg_index, key, *args, **kwargs)[source]

python_wrap_cases.generators.range_generator module

class python_wrap_cases.generators.range_generator.RangeGenerator(args)[source]

Bases: python_wrap_cases.generators.base_generator.BaseGenerator

generate_cases(arg_index, key, *args, **kwargs)

python_wrap_cases.generators.sync_list_generator module

class python_wrap_cases.generators.sync_list_generator.SyncListGenerator(collection)[source]

Bases: python_wrap_cases.generators.base_generator.BaseGenerator

generate_cases(arg_index, key, *args, **kwargs)
get_current_index(*args, **kwargs)
get_sync_generators(*args, **kwargs)
register_dependency(arg_index, key, collection)

Module contents