| 632 | |
| 633 | |
| 634 | class SplitToSuitesCallback: |
| 635 | def __init__(self, filter_callback): |
| 636 | self.suites = {} |
| 637 | self.suite_name = "default" |
| 638 | self.filter_callback = filter_callback |
| 639 | self.filtered = TestSuiteWrapper() |
| 640 | |
| 641 | def __call__(self, file_name, cls, method): |
| 642 | test_method = cls(method) |
| 643 | if self.filter_callback(file_name, cls.__name__, method): |
| 644 | self.suite_name = file_name + cls.__name__ |
| 645 | if self.suite_name not in self.suites: |
| 646 | self.suites[self.suite_name] = TestSuiteWrapper() |
| 647 | self.suites[self.suite_name].is_tagged_run_solo = False |
| 648 | self.suites[self.suite_name].addTest(test_method) |
| 649 | if test_method.is_tagged_run_solo(): |
| 650 | self.suites[self.suite_name].is_tagged_run_solo = True |
| 651 | |
| 652 | else: |
| 653 | self.filtered.addTest(test_method) |
| 654 | |
| 655 | |
| 656 | def parse_test_filter(test_filter): |