From babdd2f6addb06c23e4882107be07034ca49bcb8 Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Mon, 16 Jul 2018 13:12:38 +0100 Subject: 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 Signed-off-by: Richard Purdie Signed-off-by: Armin Kuster --- meta/lib/oeqa/runtime/cases/python.py | 38 ++++++++--------------------------- 1 file changed, 8 insertions(+), 30 deletions(-) (limited to 'meta/lib/oeqa') 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 @@ -import os - from oeqa.runtime.case import OERuntimeTestCase from oeqa.core.decorator.depends import OETestDepends from oeqa.core.decorator.oeid import OETestID -from oeqa.runtime.decorator.package import OEHasPackage class PythonTest(OERuntimeTestCase): - @classmethod def setUpClass(cls): - src = os.path.join(cls.tc.files_dir, 'test.py') - dst = '/tmp/test.py' - cls.tc.target.copyTo(src, dst) - - @classmethod - def tearDownClass(cls): - dst = '/tmp/test.py' - cls.tc.target.run('rm %s' % dst) - - @OETestID(1145) - @OETestDepends(['ssh.SSHTest.test_ssh']) - @OEHasPackage(['python3-core']) - def test_python_exists(self): - status, output = self.target.run('which python3') - msg = 'Python binary not in PATH or not on target.' - self.assertEqual(status, 0, msg=msg) + import unittest + if "python3-core" not in cls.tc.image_packages: + raise unittest.SkipTest("Python3 not on target") @OETestID(965) - @OETestDepends(['python.PythonTest.test_python_exists']) - def test_python_stdout(self): - status, output = self.target.run('python3 /tmp/test.py') + @OETestDepends(['ssh.SSHTest.test_ssh']) + def test_python3(self): + cmd = "python3 -c \"import codecs; print(codecs.encode('Uryyb, jbeyq', 'rot13'))\"" + status, output = self.target.run(cmd) msg = 'Exit status was not 0. Output: %s' % output self.assertEqual(status, 0, msg=msg) msg = 'Incorrect output: %s' % output - self.assertEqual(output, "the value of a is 0.01", msg=msg) - - @OETestID(1146) - @OETestDepends(['python.PythonTest.test_python_stdout']) - def test_python_testfile(self): - status, output = self.target.run('ls /tmp/testfile.python') - self.assertEqual(status, 0, msg='Python test file generate failed.') + self.assertEqual(output, "Hello, world", msg=msg) -- cgit 1.2.3-korg