diff mbox series

oeqa/runtime/python: clean up Python test

Message ID 20180716125126.12829-1-ross.burton@intel.com
State Accepted
Commit a35be5f32b4fe70b18ac1e2eccfd94558cecfbba
Headers show
Series oeqa/runtime/python: clean up Python test | expand

Commit Message

Ross Burton July 16, 2018, 12:51 p.m. UTC
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.

Signed-off-by: Ross Burton <ross.burton@intel.com>

---
 meta/lib/oeqa/runtime/cases/python.py | 38 ++++++++---------------------------
 1 file changed, 8 insertions(+), 30 deletions(-)

-- 
2.11.0

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core
diff mbox series

Patch

diff --git a/meta/lib/oeqa/runtime/cases/python.py b/meta/lib/oeqa/runtime/cases/python.py
index 3d6eb088024..4419a9f6394 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)