def test_filter_tags_include_empty(self): with script.TemporaryScript('passtest.py', AVOCADO_TEST_OK, 'avocado_loader_unittest', DEFAULT_NON_EXEC_MODE) as test_script: this_loader = loader.FileLoader(None, {}) test_suite = this_loader.discover(test_script.path, loader.DiscoverMode.ALL) self.assertEqual([], tags.filter_test_tags(test_suite, [], False, False)) self.assertEqual(test_suite, tags.filter_test_tags(test_suite, [], True, False))
def _from_config_with_loader(cls, config, name=None): references = config.get('resolver.references') ignore_missing = config.get('run.ignore_missing_references') verbose = config.get('core.verbose') subcommand = config.get('subcommand') # To-be-removed: For some reason, avocado list will display more tests # if in verbose mode. IMO, this is a little inconsistent with the 'run' # command. This hack was needed to make one specific test happy. tests_mode = DiscoverMode.DEFAULT if subcommand == 'list': if verbose: tests_mode = DiscoverMode.ALL else: tests_mode = DiscoverMode.AVAILABLE try: loader.load_plugins(config) tests = loader.discover(references, force=ignore_missing, which_tests=tests_mode) if config.get("filter.by_tags.tags"): tests = filter_test_tags( tests, config.get("filter.by_tags.tags"), config.get("filter.by_tags.include_empty"), config.get('filter.by_tags.include_empty_key')) except (LoaderUnhandledReferenceError, LoaderError) as details: raise TestSuiteError(details) if name is None: name = str(uuid4()) return cls(name=name, config=config, tests=tests)
def test_filter_arch(self): filtered = tags.filter_test_tags(self.test_suite, ["arch"], False, False) self.assertEqual(len(filtered), 2) self.assertEqual(filtered[0][0], "SafeX86Test") self.assertEqual(filtered[0][1]["methodName"], "test_safe_x86") self.assertEqual(filtered[1][0], "SafeAarch64Test") self.assertEqual(filtered[1][1]["methodName"], "test_safe_aarch64")
def test_filter_arch(self): filtered = tags.filter_test_tags(self.test_suite, ['arch'], False, False) self.assertEqual(len(filtered), 2) self.assertEqual(filtered[0][0], 'SafeX86Test') self.assertEqual(filtered[0][1]['methodName'], 'test_safe_x86') self.assertEqual(filtered[1][0], 'SafeAarch64Test') self.assertEqual(filtered[1][1]['methodName'], 'test_safe_aarch64')
def test_filter_fast_net(self): filtered = tags.filter_test_tags(self.test_suite, ['fast,net'], False, False) self.assertEqual(len(filtered), 2) self.assertEqual(filtered[0][0], 'FastTest') self.assertEqual(filtered[0][1]['methodName'], 'test_fast') self.assertEqual(filtered[1][0], 'FastTest') self.assertEqual(filtered[1][1]['methodName'], 'test_fast_other')
def test_filter_fast_net(self): filtered = tags.filter_test_tags(self.test_suite, ["fast,net"], False, False) self.assertEqual(len(filtered), 2) self.assertEqual(filtered[0][0], "FastTest") self.assertEqual(filtered[0][1]["methodName"], "test_fast") self.assertEqual(filtered[1][0], "FastTest") self.assertEqual(filtered[1][1]["methodName"], "test_fast_other")
def test_filter_not_fast_not_slow(self): filtered = tags.filter_test_tags(self.test_suite, ['-fast,-slow'], False) self.assertEqual(len(filtered), 2) self.assertEqual(filtered[0][0], 'SafeTest') self.assertEqual(filtered[0][1]['methodName'], 'test_safe') self.assertEqual(filtered[1][0], 'SafeX86Test') self.assertEqual(filtered[1][1]['methodName'], 'test_safe_x86')
def test_filter_arch_include_empty(self): filtered = tags.filter_test_tags(self.test_suite, ['arch'], True, False) self.assertEqual(len(filtered), 2) self.assertEqual(filtered[0][0], 'SafeX86Test') self.assertEqual(filtered[0][1]['methodName'], 'test_safe_x86') self.assertEqual(filtered[1][0], 'NoTagsTest') self.assertEqual(filtered[1][1]['methodName'], 'test_no_tags')
def test_filter_fast_net_include_empty(self): filtered = tags.filter_test_tags(self.test_suite, ["fast,net"], True, False) self.assertEqual(len(filtered), 3) self.assertEqual(filtered[0][0], "FastTest") self.assertEqual(filtered[0][1]["methodName"], "test_fast") self.assertEqual(filtered[1][0], "FastTest") self.assertEqual(filtered[1][1]["methodName"], "test_fast_other") self.assertEqual(filtered[2][0], "NoTagsTest") self.assertEqual(filtered[2][1]["methodName"], "test_no_tags")
def _list(self): self._extra_listing() test_suite = self._get_test_suite(self.args.reference) if getattr(self.args, 'filter_by_tags', False): test_suite = tags.filter_test_tags( test_suite, self.args.filter_by_tags, self.args.filter_by_tags_include_empty, self.args.filter_by_tags_include_empty_key) test_matrix, stats, tag_stats = self._get_test_matrix(test_suite) self._display(test_matrix, stats, tag_stats)
def test_filter_arch_include_empty(self): filtered = tags.filter_test_tags(self.test_suite, ["arch"], True, False) self.assertEqual(len(filtered), 3) self.assertEqual(filtered[0][0], "SafeX86Test") self.assertEqual(filtered[0][1]["methodName"], "test_safe_x86") self.assertEqual(filtered[1][0], "NoTagsTest") self.assertEqual(filtered[1][1]["methodName"], "test_no_tags") self.assertEqual(filtered[2][0], "SafeAarch64Test") self.assertEqual(filtered[2][1]["methodName"], "test_safe_aarch64")
def _list(self): self._extra_listing() test_suite = self._get_test_suite(self.args.get('references', [])) if self.args.get('filter_by_tags', False): test_suite = tags.filter_test_tags( test_suite, self.args.get('filter_by_tags'), self.args.get('filter_by_tags_include_empty'), self.args.get('filter_by_tags_include_empty_key')) test_matrix, stats, tag_stats = self._get_test_matrix(test_suite) self._display(test_matrix, stats, tag_stats)
def test_filter_fast_net_include_empty(self): filtered = tags.filter_test_tags(self.test_suite, ['fast,net'], True, False) self.assertEqual(len(filtered), 3) self.assertEqual(filtered[0][0], 'FastTest') self.assertEqual(filtered[0][1]['methodName'], 'test_fast') self.assertEqual(filtered[1][0], 'FastTest') self.assertEqual(filtered[1][1]['methodName'], 'test_fast_other') self.assertEqual(filtered[2][0], 'NoTagsTest') self.assertEqual(filtered[2][1]['methodName'], 'test_no_tags')
def test_filter_not_fast_not_slow(self): filtered = tags.filter_test_tags(self.test_suite, ["-fast,-slow"], False) self.assertEqual(len(filtered), 3) self.assertEqual(filtered[0][0], "SafeTest") self.assertEqual(filtered[0][1]["methodName"], "test_safe") self.assertEqual(filtered[1][0], "SafeX86Test") self.assertEqual(filtered[1][1]["methodName"], "test_safe_x86") self.assertEqual(filtered[2][0], "SafeAarch64Test") self.assertEqual(filtered[2][1]["methodName"], "test_safe_aarch64")
def test_filter_not_fast_not_slow_include_empty(self): filtered = tags.filter_test_tags(self.test_suite, ['-fast,-slow'], True) self.assertEqual(len(filtered), 3) self.assertEqual(filtered[0][0], 'SafeTest') self.assertEqual(filtered[0][1]['methodName'], 'test_safe') self.assertEqual(filtered[1][0], 'SafeX86Test') self.assertEqual(filtered[1][1]['methodName'], 'test_safe_x86') self.assertEqual(filtered[2][0], 'NoTagsTest') self.assertEqual(filtered[2][1]['methodName'], 'test_no_tags')
def test_filter_fast_net__slow_disk_unsafe(self): filtered = tags.filter_test_tags(self.test_suite, ['fast,net', 'slow,disk,unsafe'], False, False) self.assertEqual(len(filtered), 3) self.assertEqual(filtered[0][0], 'FastTest') self.assertEqual(filtered[0][1]['methodName'], 'test_fast') self.assertEqual(filtered[1][0], 'FastTest') self.assertEqual(filtered[1][1]['methodName'], 'test_fast_other') self.assertEqual(filtered[2][0], 'SlowUnsafeTest') self.assertEqual(filtered[2][1]['methodName'], 'test_slow_unsafe')
def test_filter_fast_net__slow_disk_unsafe(self): filtered = tags.filter_test_tags(self.test_suite, ["fast,net", "slow,disk,unsafe"], False, False) self.assertEqual(len(filtered), 3) self.assertEqual(filtered[0][0], "FastTest") self.assertEqual(filtered[0][1]["methodName"], "test_fast") self.assertEqual(filtered[1][0], "FastTest") self.assertEqual(filtered[1][1]["methodName"], "test_fast_other") self.assertEqual(filtered[2][0], "SlowUnsafeTest") self.assertEqual(filtered[2][1]["methodName"], "test_slow_unsafe")
def test_filter_not_fast_not_slow_include_empty(self): filtered = tags.filter_test_tags(self.test_suite, ["-fast,-slow"], True) self.assertEqual(len(filtered), 4) self.assertEqual(filtered[0][0], "SafeTest") self.assertEqual(filtered[0][1]["methodName"], "test_safe") self.assertEqual(filtered[1][0], "SafeX86Test") self.assertEqual(filtered[1][1]["methodName"], "test_safe_x86") self.assertEqual(filtered[2][0], "NoTagsTest") self.assertEqual(filtered[2][1]["methodName"], "test_no_tags") self.assertEqual(filtered[3][0], "SafeAarch64Test") self.assertEqual(filtered[3][1]["methodName"], "test_safe_aarch64")
def test_filter_arch_other_include_empty_key(self): filtered = tags.filter_test_tags(self.test_suite, ["arch:ppc64"], False, True) self.assertEqual(len(filtered), 5) self.assertEqual(filtered[0][0], "FastTest") self.assertEqual(filtered[0][1]["methodName"], "test_fast") self.assertEqual(filtered[1][0], "FastTest") self.assertEqual(filtered[1][1]["methodName"], "test_fast_other") self.assertEqual(filtered[2][0], "SlowTest") self.assertEqual(filtered[2][1]["methodName"], "test_slow") self.assertEqual(filtered[3][0], "SlowUnsafeTest") self.assertEqual(filtered[3][1]["methodName"], "test_slow_unsafe") self.assertEqual(filtered[4][0], "SafeTest") self.assertEqual(filtered[4][1]["methodName"], "test_safe")
def test_filter_arch_other_include_empty_key(self): filtered = tags.filter_test_tags(self.test_suite, ['arch:ppc64'], False, True) self.assertEqual(len(filtered), 5) self.assertEqual(filtered[0][0], 'FastTest') self.assertEqual(filtered[0][1]['methodName'], 'test_fast') self.assertEqual(filtered[1][0], 'FastTest') self.assertEqual(filtered[1][1]['methodName'], 'test_fast_other') self.assertEqual(filtered[2][0], 'SlowTest') self.assertEqual(filtered[2][1]['methodName'], 'test_slow') self.assertEqual(filtered[3][0], 'SlowUnsafeTest') self.assertEqual(filtered[3][1]['methodName'], 'test_slow_unsafe') self.assertEqual(filtered[4][0], 'SafeTest') self.assertEqual(filtered[4][1]['methodName'], 'test_safe')
def test_filter_not_fast_not_slow_not_safe_others_dont_exist(self): filtered = tags.filter_test_tags( self.test_suite, ['-fast,-slow,-safe', 'does,not,exist'], False) self.assertEqual(len(filtered), 0)
def test_filter_not_fast_not_slow_not_safe(self): filtered = tags.filter_test_tags(self.test_suite, ['-fast,-slow,-safe'], False) self.assertEqual(len(filtered), 0)
def test_filter_safe_arch_not_x86_64(self): filtered = tags.filter_test_tags(self.test_suite, ["safe,arch:-x86_64"], False) self.assertEqual(len(filtered), 1) self.assertEqual(filtered[0][0], "SafeAarch64Test") self.assertEqual(filtered[0][1]["methodName"], "test_safe_aarch64")
def test_filter_arch_other(self): filtered = tags.filter_test_tags(self.test_suite, ['arch:ppc64'], False, False) self.assertEqual(len(filtered), 0)
def test_filter_safe_arch_not_x86_64(self): filtered = tags.filter_test_tags(self.test_suite, ['safe,arch:-x86_64'], False) self.assertEqual(len(filtered), 1) self.assertEqual(filtered[0][0], 'SafeAarch64Test') self.assertEqual(filtered[0][1]['methodName'], 'test_safe_aarch64')