示例#1
0
def test_run_all_tagged_tests(tags, num_of_suite_entries):
    """Test running all tests whose testcases are selected by tags."""
    target = runnable.TestRunner(name="TestRunner")

    local_runner = LocalRunner()
    test_uids = ["test_1", "test_2", "test_3"]
    test_objs = [
        multitest.MultiTest(
            name=uid,
            suites=[TaggedSuite()],
            test_filter=filtering.Tags({"simple": set(tags)}),
            test_sorter=ordering.NoopSorter(),
            stdout_style=defaults.STDOUT_STYLE,
            environment=[driver.Driver(name="mock_driver")],
        )
        for uid in test_uids
    ]

    for test in test_objs:
        local_runner.add(test, test.uid())

    target.resources.add(local_runner)

    with mock.patch("cheroot.wsgi.Server"), mock.patch(
        "testplan.runnable.interactive.reloader.ModuleReloader"
    ) as MockReloader:
        MockReloader.return_value = None

        irunner = base.TestRunnerIHandler(target)
        irunner.setup()

        irunner.run_all_tests(await_results=True)
        assert irunner.report.passed
        assert len(irunner.report.entries) == 3
        for test_report in irunner.report:
            assert test_report.passed
            assert len(test_report.entries) == 1
            assert len(test_report.entries[0].entries) == num_of_suite_entries
            assert len(test_report.entries[0].entries[-1].entries) == 3

        irunner.teardown()
示例#2
0
 def test_filter_case(self, tags, testcase_obj, expected):
     filter_obj = filtering.Tags(tags=tags)
     assert bool(filter_obj.filter_case(testcase_obj)) == expected
示例#3
0
 def test_filter_test(self, tags, multitest, expected):
     filter_obj = filtering.Tags(tags=tags)
     assert bool(filter_obj.filter_test(multitest)) == expected
示例#4
0
     ('Beta', ['test_one', 'test_two', 'test_three']),
 ]), ('YYY', (('Gamma', ['test_one', 'test_two', 'test_three']), ))]),
 # Case 2
 (filtering.Pattern('*:*:test_two'), [('XXX', [
     ('Alpha', ['test_two']),
     ('Beta', ['test_two']),
 ]), ('YYY', [
     ('Gamma', ['test_two']),
 ])]),
 # Case 3
 (filtering.Pattern('XXX:Beta:test_two'), [
     ('XXX', [('Beta', ['test_two'])]),
 ]),
 # Case 4 - testcase name match AND tag match
 (filtering.And(filtering.Pattern('*:*:test_two'),
                filtering.Tags({'color': 'blue'})), [('XXX', [
                    ('Alpha', ['test_two']),
                ]), ('YYY', [
                    ('Gamma', ['test_two']),
                ])]),
 # Case 5 - testcase name match AND tag match, different syntax
 ((filtering.Pattern('*:*:test_two')
   and filtering.Tags({'color': 'blue'})), [('XXX', [
       ('Alpha', ['test_two']),
   ]), ('YYY', [
       ('Gamma', ['test_two']),
   ])]),
 #  Case 6 - Run tests that are:
 # named `test_one` AND tagged with `baz`
 # OR
 # belong to a suite named Alpha OR Beta AND tagged with `color`: `red`
count_lister = listing.CountLister()

# Sample output:

# Primary: (2 suites, 6 testcases)
# Secondary: (1 suite, 102 testcases)

# Here is a list of filters, you can pass them to
# the test plan declaration below and see how they change the
# test listing output.

pattern_filter_1 = filtering.Pattern('Primary')
pattern_filter_2 = filtering.Pattern('*:*:test_c')

tag_filter_1 = filtering.Tags('client')
tag_filter_2 = filtering.Tags({'color': 'blue'})

composite_filter_1 = pattern_filter_1 | pattern_filter_2
composite_filter_2 = (pattern_filter_1 & tag_filter_1) | tag_filter_2


@test_plan(
    name='Programmatic Listing Example',
    # You can replace this argument with the other listers defined above
    # to see different output formats.
    # test_lister=test_lister,
    test_lister=name_lister,

    # Comment out the arguments below to see how they affect the listing output.
    # test_filter=pattern_filter_1,
示例#6
0
     filtering.Pattern("*:*:test_two"),
     [
         ("XXX", [("Alpha", ["test_two"]), ("Beta", ["test_two"])]),
         ("YYY", [("Gamma", ["test_two"])]),
     ],
 ),
 # Case 3
 (
     filtering.Pattern("XXX:Beta:test_two"),
     [("XXX", [("Beta", ["test_two"])])],
 ),
 # Case 4 - testcase name match AND tag match
 (
     filtering.And(
         filtering.Pattern("*:*:test_two"),
         filtering.Tags({"color": "blue"}),
     ),
     [
         ("XXX", [("Alpha", ["test_two"])]),
         ("YYY", [("Gamma", ["test_two"])]),
     ],
 ),
 # Case 5 - testcase name match AND tag match, different syntax
 (
     (
         filtering.Pattern("*:*:test_two")
         and filtering.Tags({"color": "blue"})
     ),
     [
         ("XXX", [("Alpha", ["test_two"])]),
         ("YYY", [("Gamma", ["test_two"])]),
count_lister = listing.CountLister()

# Sample output:

# Primary: (2 suites, 6 testcases)
# Secondary: (1 suite, 102 testcases)

# Here is a list of filters, you can pass them to
# the test plan declaration below and see how they change the
# test listing output.

pattern_filter_1 = filtering.Pattern("Primary")
pattern_filter_2 = filtering.Pattern("*:*:test_c")

tag_filter_1 = filtering.Tags("client")
tag_filter_2 = filtering.Tags({"color": "blue"})

composite_filter_1 = pattern_filter_1 | pattern_filter_2
composite_filter_2 = (pattern_filter_1 & tag_filter_1) | tag_filter_2


@test_plan(
    name="Programmatic Listing Example",
    # You can replace this argument with the other listers defined above
    # to see different output formats.
    # test_lister=test_lister,
    test_lister=name_lister,
    # Comment out the arguments below to see how they affect the listing output.
    # test_filter=pattern_filter_1,
    # test_sorter=ordering.ShuffleSorter()