コード例 #1
0
ファイル: test_tags.py プロジェクト: xiaodwan/avocado
 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))
コード例 #2
0
    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)
コード例 #3
0
 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")
コード例 #4
0
ファイル: test_tags.py プロジェクト: richtja/avocado
 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')
コード例 #5
0
ファイル: test_tags.py プロジェクト: xiaodwan/avocado
 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')
コード例 #6
0
 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")
コード例 #7
0
ファイル: test_tags.py プロジェクト: xiaodwan/avocado
 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')
コード例 #8
0
ファイル: test_tags.py プロジェクト: xiaodwan/avocado
 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')
コード例 #9
0
 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")
コード例 #10
0
ファイル: list.py プロジェクト: tianfenhua123/avocado
 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)
コード例 #11
0
 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")
コード例 #12
0
ファイル: list.py プロジェクト: xulide88/avocado
 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)
コード例 #13
0
ファイル: test_tags.py プロジェクト: xiaodwan/avocado
 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')
コード例 #14
0
 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")
コード例 #15
0
ファイル: test_tags.py プロジェクト: xiaodwan/avocado
 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')
コード例 #16
0
ファイル: test_tags.py プロジェクト: xiaodwan/avocado
 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')
コード例 #17
0
 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")
コード例 #18
0
 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")
コード例 #19
0
 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")
コード例 #20
0
ファイル: test_tags.py プロジェクト: xiaodwan/avocado
 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')
コード例 #21
0
ファイル: test_tags.py プロジェクト: xiaodwan/avocado
 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)
コード例 #22
0
ファイル: test_tags.py プロジェクト: xiaodwan/avocado
 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)
コード例 #23
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")
コード例 #24
0
ファイル: test_tags.py プロジェクト: xiaodwan/avocado
 def test_filter_arch_other(self):
     filtered = tags.filter_test_tags(self.test_suite, ['arch:ppc64'],
                                      False, False)
     self.assertEqual(len(filtered), 0)
コード例 #25
0
ファイル: test_tags.py プロジェクト: richtja/avocado
 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')