Esempio n. 1
0
 def test_simple_using_main(self):
     mytest = script.TemporaryScript("simple_using_main.py",
                                     AVOCADO_TEST_SIMPLE_USING_MAIN,
                                     'avocado_simpletest_functional')
     mytest.save()
     os.chdir(basedir)
     # job should be able to finish under 5 seconds. If this fails, it's
     # possible that we hit the "simple test fork bomb" bug
     cmd_line = ("%s run --sysinfo=off --job-results-dir '%s' -- '%s'" %
                 (AVOCADO, self.tmpdir, mytest))
     self._run_with_timeout(cmd_line, 5)
Esempio n. 2
0
 def test_load_tagged_nested(self):
     avocado_nested_test = script.TemporaryScript('nested.py',
                                                  AVOCADO_TEST_NESTED_TAGGED,
                                                  'avocado_loader_unittest',
                                                  DEFAULT_NON_EXEC_MODE)
     avocado_nested_test.save()
     test_class, test_parameters = (
         self.loader.discover(avocado_nested_test.path, loader.ALL)[0])
     results = self.loader.discover(avocado_nested_test.path, loader.ALL)
     self.assertTrue(test_class == test.NotATest)
     avocado_nested_test.remove()
Esempio n. 3
0
 def test_python_unittest(self):
     disabled_test = script.TemporaryScript("disabled.py",
                                            AVOCADO_TEST_OK_DISABLED,
                                            mode=DEFAULT_NON_EXEC_MODE)
     python_unittest = script.TemporaryScript("python_unittest.py",
                                              PYTHON_UNITTEST)
     disabled_test.save()
     python_unittest.save()
     tests = self.loader.discover(disabled_test.path)
     self.assertEqual(tests, [])
     tests = self.loader.discover(python_unittest.path)
     exp = [(test.PythonUnittest, {
         "name": "python_unittest.SampleTest.test",
         "tags": {
             "flattag": None,
             "foo": {"bar"}
         },
         "test_dir": os.path.dirname(python_unittest.path)
     })]
     self.assertEqual(tests, exp)
Esempio n. 4
0
 def test_py_simple_test(self):
     with script.TemporaryScript(
             'simpletest.py', PY_SIMPLE_TEST,
             'avocado_loader_unittest') as avocado_simple_test:
         test_class, test_parameters = (self.loader.discover(
             avocado_simple_test.path, loader.DiscoverMode.ALL)[0])
         self.assertTrue(test_class == test.SimpleTest)
         test_parameters['name'] = TestID(0, test_parameters['name'])
         test_parameters['base_logdir'] = self.tmpdir.name
         tc = test_class(**test_parameters)
         tc.run_avocado()
Esempio n. 5
0
 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([], loader.filter_test_tags(test_suite, [], False, False))
     self.assertEqual(test_suite,
                      loader.filter_test_tags(test_suite, [], True, False))
Esempio n. 6
0
 def test_py_simple_test_notexec(self):
     avocado_simple_test = script.TemporaryScript(
         'simpletest.py',
         PY_SIMPLE_TEST,
         'avocado_loader_unittest',
         mode=DEFAULT_NON_EXEC_MODE)
     avocado_simple_test.save()
     test_class, _ = self.loader.discover(avocado_simple_test.path,
                                          loader.DiscoverMode.ALL)[0]
     self.assertTrue(test_class == loader.NotATest)
     avocado_simple_test.remove()
Esempio n. 7
0
 def test_not_exec(self):
     with script.TemporaryScript(
             "exec-test.sh",
             "#!/bin/sh\ntrue",
             "test_resolver_exec_test",
             mode=DEFAULT_NON_EXEC_MODE,
     ) as exec_test:
         res = ExecTestResolver().resolve(exec_test.path)
     self.assertEqual(res.reference, exec_test.path)
     self.assertEqual(res.result,
                      resolver.ReferenceResolutionResult.NOTFOUND)
     self.assertEqual(len(res.resolutions), 0)
Esempio n. 8
0
    def setUp(self):
        self.tmpdir = tempfile.mkdtemp(prefix='avocado_' + __name__)
        self.pass_script = script.TemporaryScript(
            'avocado_pass.sh', PASS_SCRIPT_CONTENTS,
            'avocado_simpletest_unittest')
        self.pass_script.save()

        self.fail_script = script.TemporaryScript(
            'avocado_fail.sh', FAIL_SCRIPT_CONTENTS,
            'avocado_simpletest_unittest')
        self.fail_script.save()

        self.tst_instance_pass = test.SimpleTest(name=test.TestName(
            1, self.pass_script.path),
                                                 base_logdir=self.tmpdir)
        self.tst_instance_pass.run_avocado()

        self.tst_instance_fail = test.SimpleTest(name=test.TestName(
            1, self.fail_script.path),
                                                 base_logdir=self.tmpdir)
        self.tst_instance_fail.run_avocado()
Esempio n. 9
0
 def test_load_not_a_test_exec(self):
     avocado_not_a_test = script.TemporaryScript('notatest.py', NOT_A_TEST,
                                                 'avocado_loader_unittest')
     avocado_not_a_test.save()
     test_class, test_parameters = (self.loader.discover(
         avocado_not_a_test.path, True)[0])
     self.assertTrue(test_class == test.SimpleTest, test_class)
     tc = test_class(**test_parameters)
     # The test can't be executed (no shebang), raising an OSError
     # (OSError: [Errno 8] Exec format error)
     self.assertRaises(OSError, tc.test)
     avocado_not_a_test.remove()
Esempio n. 10
0
 def test_load_multiple_imports(self):
     avocado_multiple_imp_test = script.TemporaryScript(
         "multipleimports.py",
         AVOCADO_TEST_MULTIPLE_IMPORTS,
         "avocado_loader_unittest",
     )
     avocado_multiple_imp_test.save()
     test_class, _ = self.loader.discover(
         avocado_multiple_imp_test.path, loader.DiscoverMode.ALL
     )[0]
     self.assertTrue(test_class == "Second", test_class)
     avocado_multiple_imp_test.remove()
Esempio n. 11
0
 def test_load_buggy_not_exec(self):
     avocado_buggy_test = script.TemporaryScript('buggytest.py',
                                                 AVOCADO_TEST_BUGGY,
                                                 'avocado_loader_unittest',
                                                 mode=0664)
     avocado_buggy_test.save()
     test_class, test_parameters = (self.loader.discover(
         avocado_buggy_test.path, True)[0])
     self.assertTrue(test_class == test.BuggyTest, test_class)
     tc = test_class(**test_parameters)
     self.assertRaises(ImportError, tc.test)
     avocado_buggy_test.remove()
Esempio n. 12
0
 def test_load_not_a_test(self):
     avocado_not_a_test = script.TemporaryScript('notatest.py',
                                                 NOT_A_TEST,
                                                 'avocado_loader_unittest',
                                                 mode=0664)
     avocado_not_a_test.save()
     test_class, test_parameters = (self.loader.discover(
         avocado_not_a_test.path, True)[0])
     self.assertTrue(test_class == test.NotATest, test_class)
     tc = test_class(**test_parameters)
     self.assertRaises(exceptions.NotATestError, tc.test)
     avocado_not_a_test.remove()
Esempio n. 13
0
 def test_list_raising_exception(self):
     with script.TemporaryScript("test.py", AVOCADO_TEST_OK) as avocado_test:
         with unittest.mock.patch(
             "avocado.core.loader.safeloader.find_avocado_tests"
         ) as _mock:
             _mock.side_effect = BaseException()
             tests = self.loader.discover(avocado_test.path, loader.DiscoverMode.ALL)
             self.assertEqual(
                 tests[0][1]["name"],
                 f"{avocado_test.path}: Not an INSTRUMENTED "
                 f"(avocado.Test based) test",
             )
Esempio n. 14
0
    def test_load_inherited(self):
        avocado_base_test = script.TemporaryScript('base.py',
                                                   AVOCADO_BASE_CLASS_TEST,
                                                   'avocado_loader_unittest')
        avocado_base_test.save()
        test_class, test_parameters = (self.loader.discover(
            avocado_base_test.path, True)[0])
        self.assertTrue(
            str(test_class) == "<class 'base.MyBaseTest'>", str(test_class))

        avocado_inherited_test = script.TemporaryScript(
            'inherited.py', AVOCADO_INHERITED_CLASS_TEST,
            'avocado_loader_unittest')
        avocado_inherited_test.save()
        test_class, test_parameters = (self.loader.discover(
            avocado_inherited_test.path, True)[0])
        self.assertTrue(
            str(test_class) == "<class 'inherited.MyInheritedTest'>",
            str(test_class))
        avocado_base_test.remove()
        avocado_inherited_test.remove()
Esempio n. 15
0
 def test_runner_test_with_local_imports(self):
     mylib = script.TemporaryScript('mylib.py', HELLO_LIB_CONTENTS,
                                    'avocado_simpletest_functional')
     mylib.save()
     mytest = script.Script(
         os.path.join(os.path.dirname(mylib.path), 'test_local_imports.py'),
         LOCAL_IMPORT_TEST_CONTENTS)
     os.chdir(basedir)
     mytest.save()
     cmd_line = ("./scripts/avocado run --sysinfo=off --job-results-dir %s "
                 "%s" % (self.tmpdir, mytest))
     process.run(cmd_line)
Esempio n. 16
0
 def test_load_simple_not_exec(self):
     simple_test = script.TemporaryScript('simpletest.sh',
                                          SIMPLE_TEST,
                                          'avocado_loader_unittest',
                                          mode=0664)
     simple_test.save()
     test_class, test_parameters = (self.loader.discover(
         simple_test.path, True)[0])
     self.assertTrue(test_class == test.NotATest, test_class)
     tc = test_class(**test_parameters)
     self.assertRaises(exceptions.NotATestError, tc.test)
     simple_test.remove()
Esempio n. 17
0
 def test_pass(self):
     avocado_pass_test = script.TemporaryScript('passtest.py',
                                                AVOCADO_TEST_OK,
                                                'avocado_loader_test')
     avocado_pass_test.save()
     cmd_line = './scripts/avocado run --job-results-dir %s --sysinfo=off %s' % (
         self.tmpdir, avocado_pass_test.path)
     result = process.run(cmd_line, ignore_status=True)
     expected_rc = 0
     self.assertEqual(
         result.exit_status, expected_rc,
         "Avocado did not return rc %d:\n%s" % (expected_rc, result))
Esempio n. 18
0
 def test_py_simple_test(self):
     avocado_simple_test = script.TemporaryScript(
         'simpletest.py', PY_SIMPLE_TEST, 'avocado_loader_unittest')
     avocado_simple_test.save()
     test_class, test_parameters = (self.loader.discover(
         avocado_simple_test.path, loader.ALL)[0])
     self.assertTrue(test_class == test.SimpleTest)
     test_parameters['name'] = test.TestName(0, test_parameters['name'])
     test_parameters['base_logdir'] = self.tmpdir
     tc = test_class(**test_parameters)
     tc.run_avocado()
     avocado_simple_test.remove()
Esempio n. 19
0
 def setUp(self):
     prefix = temp_dir_prefix(__name__, self, 'setUp')
     self.tmpdir = tempfile.TemporaryDirectory(prefix=prefix)
     content = b"#!/bin/sh\n"
     content += b"echo \"" + STDOUT + b"\"\n"
     content += b"echo \"" + STDERR + b"\" >&2\n"
     self.output_script = script.TemporaryScript(
         'output_check.sh',
         content,
         'avocado_output_check_functional',
         open_mode='wb')
     self.output_script.save()
Esempio n. 20
0
 def test_py_simple_test_notexec(self):
     avocado_simple_test = script.TemporaryScript('simpletest.py',
                                                  PY_SIMPLE_TEST,
                                                  'avocado_loader_unittest',
                                                  mode=0664)
     avocado_simple_test.save()
     test_class, test_parameters = (
         self.loader.discover_test(params={'id': avocado_simple_test.path}))
     self.assertTrue(test_class == test.NotATest)
     tc = test_class(**test_parameters)
     self.assertRaises(exceptions.NotATestError, tc.action)
     avocado_simple_test.remove()
Esempio n. 21
0
 def setUp(self):
     prefix = temp_dir_prefix(__name__, self, 'setUp')
     self.tmpdir = tempfile.TemporaryDirectory(prefix=prefix)
     self.original_pypath = os.environ.get('PYTHONPATH')
     if self.original_pypath is not None:
         os.environ['PYTHONPATH'] = '%s:%s' % (BASEDIR,
                                               self.original_pypath)
     else:
         os.environ['PYTHONPATH'] = '%s' % BASEDIR
     self.unittest_script_good = script.TemporaryScript(
         'unittest_good.py', UNITTEST_GOOD % self.tmpdir.name,
         'avocado_as_unittest_functional')
     self.unittest_script_good.save()
     self.unittest_script_fail = script.TemporaryScript(
         'unittest_fail.py', UNITTEST_FAIL % self.tmpdir.name,
         'avocado_as_unittest_functional')
     self.unittest_script_fail.save()
     self.unittest_script_error = script.TemporaryScript(
         'unittest_error.py', UNITTEST_ERROR % self.tmpdir.name,
         'avocado_as_unittest_functional')
     self.unittest_script_error.save()
Esempio n. 22
0
 def test_load_tagged_nested(self):
     avocado_nested_test = script.TemporaryScript(
         "nested.py",
         AVOCADO_TEST_NESTED_TAGGED,
         "avocado_loader_unittest",
         DEFAULT_NON_EXEC_MODE,
     )
     avocado_nested_test.save()
     test_class, _ = self.loader.discover(
         avocado_nested_test.path, loader.DiscoverMode.ALL
     )[0]
     self.assertTrue(test_class == loader.NotATest)
     avocado_nested_test.remove()
Esempio n. 23
0
 def test_load_pass(self):
     avocado_pass_test = script.TemporaryScript('passtest.py',
                                                AVOCADO_TEST_OK,
                                                'avocado_loader_unittest')
     avocado_pass_test.save()
     test_class, test_parameters = (self.loader.discover(
         avocado_pass_test.path, True)[0])
     self.assertTrue(
         str(test_class) == "<class 'passtest.PassTest'>", str(test_class))
     self.assertTrue(issubclass(test_class, test.Test))
     tc = test_class(**test_parameters)
     tc.test()
     avocado_pass_test.remove()
Esempio n. 24
0
 def test_load_pass_disable(self):
     avocado_pass_test = script.TemporaryScript(
         "disable.py",
         AVOCADO_TEST_OK_DISABLED,
         "avocado_loader_unittest",
         DEFAULT_NON_EXEC_MODE,
     )
     avocado_pass_test.save()
     test_class, _ = self.loader.discover(
         avocado_pass_test.path, loader.DiscoverMode.ALL
     )[0]
     self.assertTrue(test_class == loader.NotATest)
     avocado_pass_test.remove()
Esempio n. 25
0
 def test_exec_test(self):
     with script.TemporaryScript('exec-test.sh', "#!/bin/sh\ntrue",
                                 'test_resolver_exec_test') as exec_test:
         res = ExecTestResolver().resolve(exec_test.path)
     self.assertEqual(res.reference, exec_test.path)
     self.assertEqual(res.result, resolver.ReferenceResolutionResult.SUCCESS)
     self.assertEqual(len(res.resolutions), 1)
     resolution = res.resolutions[0]
     self.assertEqual(resolution.kind, 'exec-test')
     self.assertEqual(resolution.uri, exec_test.path)
     self.assertEqual(resolution.args, ())
     self.assertEqual(resolution.kwargs, {})
     self.assertEqual(resolution.tags, None)
Esempio n. 26
0
    def setUp(self):
        self.pass_script = script.TemporaryScript(
            'avocado_pass.sh',
            PASS_SCRIPT_CONTENTS,
            'avocado_simpletest_unittest')
        self.pass_script.save()

        self.fail_script = script.TemporaryScript(
            'avocado_fail.sh',
            FAIL_SCRIPT_CONTENTS,
            'avocado_simpletest_unittest')
        self.fail_script.save()

        self.tst_instance_pass = test.SimpleTest(
            path=self.pass_script.path,
            base_logdir=os.path.dirname(self.pass_script.path))
        self.tst_instance_pass.run_avocado()

        self.tst_instance_fail = test.SimpleTest(
            path=self.fail_script.path,
            base_logdir=os.path.dirname(self.fail_script.path))
        self.tst_instance_fail.run_avocado()
Esempio n. 27
0
 def test_load_simple_not_exec(self):
     simple_test = script.TemporaryScript('simpletest.sh', SIMPLE_TEST,
                                          'avocado_loader_unittest',
                                          mode=DEFAULT_NON_EXEC_MODE)
     simple_test.save()
     test_class, test_parameters = (
         self.loader.discover(simple_test.path, loader.ALL)[0])
     self.assertTrue(test_class == test.NotATest, test_class)
     test_parameters['name'] = test.TestName(0, test_parameters['name'])
     test_parameters['base_logdir'] = self.tmpdir
     tc = test_class(**test_parameters)
     self.assertRaises(exceptions.NotATestError, tc.test)
     simple_test.remove()
Esempio n. 28
0
 def test_load_not_a_test(self):
     avocado_not_a_test = script.TemporaryScript('notatest.py', NOT_A_TEST,
                                                 'avocado_loader_test')
     avocado_not_a_test.save()
     cmd_line = (
         './scripts/avocado run --job-results-dir %s --sysinfo=off %s' %
         (self.tmpdir, avocado_not_a_test.path))
     result = process.run(cmd_line, ignore_status=True)
     expected_rc = 1
     self.assertEqual(
         result.exit_status, expected_rc,
         "Avocado did not return rc %d:\n%s" % (expected_rc, result))
     avocado_not_a_test.remove()
Esempio n. 29
0
 def test_buggy_not_exec(self):
     avocado_buggy_test = script.TemporaryScript('buggytest.py',
                                                 AVOCADO_TEST_BUGGY,
                                                 'avocado_loader_test',
                                                 mode=0664)
     avocado_buggy_test.save()
     cmd_line = './scripts/avocado run --sysinfo=off %s' % avocado_buggy_test.path
     result = process.run(cmd_line, ignore_status=True)
     expected_rc = 1
     self.assertEqual(
         result.exit_status, expected_rc,
         "Avocado did not return rc %d:\n%s" % (expected_rc, result))
     avocado_buggy_test.remove()
Esempio n. 30
0
 def test_py_simple_test_notexec(self):
     avocado_simple_test = script.TemporaryScript(
         'simpletest.py',
         PY_SIMPLE_TEST,
         'avocado_loader_unittest',
         mode=DEFAULT_NON_EXEC_MODE)
     avocado_simple_test.save()
     test_class, test_parameters = (self.loader.discover(
         avocado_simple_test.path, True)[0])
     self.assertTrue(test_class == test.NotATest)
     tc = test_class(**test_parameters)
     self.assertRaises(exceptions.NotATestError, tc.test)
     avocado_simple_test.remove()