diff options
author | Ross Burton <ross.burton@intel.com> | 2018-07-16 13:12:38 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-07-18 10:18:42 +0100 |
commit | 731ce8c760a7f1376ba1b634db2e769206e5dae1 (patch) | |
tree | e9763a0d6ed32b25a2b954ddffb81ee8af1f4d8b | |
parent | c093b4072775586f62ba550015565628cebdd34c (diff) | |
download | poky-731ce8c760a7f1376ba1b634db2e769206e5dae1.tar.gz |
oeqa/runtime/python: clean up Python test
Currently this is three test cases:
1) test_python_exists. Fail if python3 isn't in PATH.
2) test_python_stdout. Run a Python script and check the output is as expected
3) test_python_testfile. Check that a file test_python_stdout wrote to exists.
(1) should be a setup and skip the test module if it isn't present.
(2) and (3) should be merged, there's no point copying over a two line Python
file, and the test doesn't verify that the file doesn't exist in the first
place.
Rewrite the test to check that Python is present in a class setup so the entire
test is skipped if it isn't and do some simple rot13 to verify that bytecode is
being executed correctly.
(From OE-Core rev: a35be5f32b4fe70b18ac1e2eccfd94558cecfbba)
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/lib/oeqa/runtime/cases/python.py | 38 |
1 files changed, 8 insertions, 30 deletions
diff --git a/meta/lib/oeqa/runtime/cases/python.py b/meta/lib/oeqa/runtime/cases/python.py index 3d6eb08802..4419a9f639 100644 --- a/meta/lib/oeqa/runtime/cases/python.py +++ b/meta/lib/oeqa/runtime/cases/python.py | |||
@@ -1,43 +1,21 @@ | |||
1 | import os | ||
2 | |||
3 | from oeqa.runtime.case import OERuntimeTestCase | 1 | from oeqa.runtime.case import OERuntimeTestCase |
4 | from oeqa.core.decorator.depends import OETestDepends | 2 | from oeqa.core.decorator.depends import OETestDepends |
5 | from oeqa.core.decorator.oeid import OETestID | 3 | from oeqa.core.decorator.oeid import OETestID |
6 | from oeqa.runtime.decorator.package import OEHasPackage | ||
7 | 4 | ||
8 | class PythonTest(OERuntimeTestCase): | 5 | class PythonTest(OERuntimeTestCase): |
9 | |||
10 | @classmethod | 6 | @classmethod |
11 | def setUpClass(cls): | 7 | def setUpClass(cls): |
12 | src = os.path.join(cls.tc.files_dir, 'test.py') | 8 | import unittest |
13 | dst = '/tmp/test.py' | 9 | if "python3-core" not in cls.tc.image_packages: |
14 | cls.tc.target.copyTo(src, dst) | 10 | raise unittest.SkipTest("Python3 not on target") |
15 | |||
16 | @classmethod | ||
17 | def tearDownClass(cls): | ||
18 | dst = '/tmp/test.py' | ||
19 | cls.tc.target.run('rm %s' % dst) | ||
20 | |||
21 | @OETestID(1145) | ||
22 | @OETestDepends(['ssh.SSHTest.test_ssh']) | ||
23 | @OEHasPackage(['python3-core']) | ||
24 | def test_python_exists(self): | ||
25 | status, output = self.target.run('which python3') | ||
26 | msg = 'Python binary not in PATH or not on target.' | ||
27 | self.assertEqual(status, 0, msg=msg) | ||
28 | 11 | ||
29 | @OETestID(965) | 12 | @OETestID(965) |
30 | @OETestDepends(['python.PythonTest.test_python_exists']) | 13 | @OETestDepends(['ssh.SSHTest.test_ssh']) |
31 | def test_python_stdout(self): | 14 | def test_python3(self): |
32 | status, output = self.target.run('python3 /tmp/test.py') | 15 | cmd = "python3 -c \"import codecs; print(codecs.encode('Uryyb, jbeyq', 'rot13'))\"" |
16 | status, output = self.target.run(cmd) | ||
33 | msg = 'Exit status was not 0. Output: %s' % output | 17 | msg = 'Exit status was not 0. Output: %s' % output |
34 | self.assertEqual(status, 0, msg=msg) | 18 | self.assertEqual(status, 0, msg=msg) |
35 | 19 | ||
36 | msg = 'Incorrect output: %s' % output | 20 | msg = 'Incorrect output: %s' % output |
37 | self.assertEqual(output, "the value of a is 0.01", msg=msg) | 21 | self.assertEqual(output, "Hello, world", msg=msg) |
38 | |||
39 | @OETestID(1146) | ||
40 | @OETestDepends(['python.PythonTest.test_python_stdout']) | ||
41 | def test_python_testfile(self): | ||
42 | status, output = self.target.run('ls /tmp/testfile.python') | ||
43 | self.assertEqual(status, 0, msg='Python test file generate failed.') | ||