support/testing: add python-argh tests

Use a simple script to check the basic usage. Since this package
provides command line arguments, override run_sample_scripts to call the
script with arguments and check the expected output.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2019.02.x
Ricardo Martincoski 2018-11-16 01:57:21 -02:00 committed by Thomas Petazzoni
parent 0d896cf007
commit 1bd9e9c199
3 changed files with 57 additions and 0 deletions

View File

@ -316,6 +316,8 @@ tests.package.test_ipython.TestIPythonPy2: *runtime_test
tests.package.test_ipython.TestIPythonPy3: *runtime_test
tests.package.test_python.TestPython2: *runtime_test
tests.package.test_python.TestPython3: *runtime_test
tests.package.test_python_argh.TestPythonPy2Argh: *runtime_test
tests.package.test_python_argh.TestPythonPy3Argh: *runtime_test
tests.package.test_python_autobahn.TestPythonPy2Autobahn: *runtime_test
tests.package.test_python_autobahn.TestPythonPy3Autobahn: *runtime_test
tests.package.test_python_crossbar.TestPythonPy3Crossbar: *runtime_test

View File

@ -0,0 +1,10 @@
import argh
@argh.arg("foo", help="help for foo")
@argh.arg("--bar", help="help for bar")
def main(foo, bar=False):
print("{}, {}".format(foo, bar))
argh.dispatch_command(main)

View File

@ -0,0 +1,45 @@
from tests.package.test_python import TestPythonPackageBase
class TestPythonArgh(TestPythonPackageBase):
config = TestPythonPackageBase.config
sample_scripts = ["tests/package/sample_python_argh.py"]
def run_sample_scripts(self):
cmd = self.interpreter + " sample_python_argh.py -h"
output, exit_code = self.emulator.run(cmd)
self.assertIn("usage:", output[0])
self.assertEqual(exit_code, 0)
cmd = self.interpreter + " sample_python_argh.py 123"
output, exit_code = self.emulator.run(cmd)
self.assertEqual(output[0], "123, False")
self.assertEqual(exit_code, 0)
cmd = self.interpreter + " sample_python_argh.py --bar 456"
output, exit_code = self.emulator.run(cmd)
self.assertEqual(output[0], "456, True")
self.assertEqual(exit_code, 0)
cmd = self.interpreter + " sample_python_argh.py"
output, exit_code = self.emulator.run(cmd)
self.assertIn("usage:", output[0])
self.assertEqual(exit_code, 2)
class TestPythonPy2Argh(TestPythonArgh):
__test__ = True
config = TestPythonArgh.config + \
"""
BR2_PACKAGE_PYTHON=y
BR2_PACKAGE_PYTHON_ARGH=y
"""
class TestPythonPy3Argh(TestPythonArgh):
__test__ = True
config = TestPythonArgh.config + \
"""
BR2_PACKAGE_PYTHON3=y
BR2_PACKAGE_PYTHON_ARGH=y
"""