|
3 | 3 | from dcqc.file import FileType |
4 | 4 | from dcqc.suites.suite_abc import SuiteABC |
5 | 5 | from dcqc.suites.suites import FileSuite, OmeTiffSuite, TiffSuite |
6 | | -from dcqc.target import Target |
7 | 6 | from dcqc.tests.test_abc import TestABC, TestStatus |
8 | | -from dcqc.tests.tests import LibTiffInfoTest |
| 7 | +from dcqc.tests.tests import FileExtensionTest, LibTiffInfoTest |
| 8 | + |
| 9 | +FileType("None", ()) |
| 10 | +FileType("Unpaired", ()) |
9 | 11 |
|
10 | 12 |
|
11 | 13 | class RedundantFileSuite(TiffSuite): |
| 14 | + file_type = FileType.get_file_type("None") |
12 | 15 | del_tests = (LibTiffInfoTest,) |
13 | 16 |
|
14 | 17 |
|
15 | | -FileType("Unpaired", ()) |
16 | | - |
17 | | - |
18 | 18 | class DummyTest(TestABC): |
19 | 19 | def compute_status(self) -> TestStatus: |
20 | 20 | return TestStatus.NONE |
@@ -69,8 +69,52 @@ def test_that_the_generic_file_suite_is_retrieved_for_an_unpaired_file_type(): |
69 | 69 | assert actual is FileSuite |
70 | 70 |
|
71 | 71 |
|
72 | | -def test_that_the_default_required_tests_are_only_tiers_1_and_2(test_files): |
73 | | - tiff_file = test_files["tiff"] |
74 | | - tiff_target = Target(tiff_file) |
75 | | - tiff_suite = TiffSuite(tiff_target) |
76 | | - assert all(test.tier <= 2 for test in tiff_suite.tests) |
| 72 | +def test_that_the_default_required_tests_are_only_tiers_1_and_2(test_suites): |
| 73 | + suite = test_suites["tiff"] |
| 74 | + assert all(test.tier <= 2 for test in suite.tests) |
| 75 | + |
| 76 | + |
| 77 | +def test_that_skipped_tests_are_skipped_when_building_suite_from_tests(test_suites): |
| 78 | + suite = test_suites["tiff"] |
| 79 | + tests = suite.tests |
| 80 | + new_suite = SuiteABC.from_tests(tests, skipped_tests=["LibTiffInfoTest"]) |
| 81 | + skipped_test_before = suite.tests_by_name["LibTiffInfoTest"] |
| 82 | + skipped_test_after = new_suite.tests_by_name["LibTiffInfoTest"] |
| 83 | + assert skipped_test_before.get_status(compute_ok=False) != TestStatus.SKIP |
| 84 | + assert skipped_test_after.get_status(compute_ok=False) == TestStatus.SKIP |
| 85 | + |
| 86 | + |
| 87 | +def test_for_an_error_when_building_suite_from_tests_with_diff_targets(test_targets): |
| 88 | + target_1 = test_targets["good"] |
| 89 | + target_2 = test_targets["bad"] |
| 90 | + test_1 = FileExtensionTest(target_1) |
| 91 | + test_2 = FileExtensionTest(target_2) |
| 92 | + tests = [test_1, test_2] |
| 93 | + with pytest.raises(ValueError): |
| 94 | + SuiteABC.from_tests(tests) |
| 95 | + |
| 96 | + |
| 97 | +def test_that_a_suite_will_not_consider_unrequired_tests(test_targets): |
| 98 | + target = test_targets["bad"] |
| 99 | + required_tests = [] |
| 100 | + skipped_tests = ["LibTiffInfoTest"] |
| 101 | + suite = SuiteABC.from_target(target, required_tests, skipped_tests) |
| 102 | + suite_status = suite.compute_status() |
| 103 | + assert suite_status == TestStatus.PASS |
| 104 | + |
| 105 | + |
| 106 | +def test_that_a_suite_will_consider_required_tests_when_failing(test_targets): |
| 107 | + target = test_targets["bad"] |
| 108 | + required_tests = ["FileExtensionTest"] |
| 109 | + skipped_tests = ["LibTiffInfoTest"] |
| 110 | + suite = SuiteABC.from_target(target, required_tests, skipped_tests) |
| 111 | + suite_status = suite.compute_status() |
| 112 | + assert suite_status == TestStatus.FAIL |
| 113 | + |
| 114 | + |
| 115 | +def test_that_a_suite_will_consider_required_tests_when_passing(test_targets): |
| 116 | + target = test_targets["good"] |
| 117 | + required_tests = ["Md5ChecksumTest"] |
| 118 | + suite = SuiteABC.from_target(target, required_tests) |
| 119 | + suite_status = suite.compute_status() |
| 120 | + assert suite_status == TestStatus.PASS |
0 commit comments