support/testing: use TestPythonPackageBase for python-twisted

Move the test script to be run on the target from inline in the test
case to a separate file.

Get the base defconfig fragment from the immediate parent class and not
directly from TestPythonBase because it is the correct way of doing
this. This way the base class TestPythonTwisted could even be placed in
a separate file.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Cc: Asaf Kahlon <asafka7@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Yegor Yefremov <yegorslists@googlemail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Ricardo Martincoski 2018-11-10 00:16:06 -02:00 committed by Thomas Petazzoni
parent ee6b37cf87
commit 0f98e58cac
2 changed files with 19 additions and 25 deletions

View File

@ -0,0 +1,9 @@
from twisted.internet import protocol, reactor, endpoints
class F(protocol.Factory):
pass
endpoints.serverFromString(reactor, "tcp:1234").listen(F())
reactor.run()

View File

@ -1,25 +1,16 @@
from tests.package.test_python import TestPythonBase
TEST_SCRIPT = """
from twisted.internet import protocol, reactor, endpoints
class F(protocol.Factory):
pass
endpoints.serverFromString(reactor, "tcp:1234").listen(F())
reactor.run()
"""
from tests.package.test_python import TestPythonPackageBase
class TestPythonTwisted(TestPythonBase):
def import_test(self):
cmd = "printf '{}' > test.py".format(TEST_SCRIPT)
_, exit_code = self.emulator.run(cmd)
self.assertEqual(exit_code, 0)
class TestPythonTwisted(TestPythonPackageBase):
config = TestPythonPackageBase.config
sample_scripts = ["tests/package/sample_python_twisted.py"]
def run_sample_scripts(self):
cmd = "netstat -ltn 2>/dev/null | grep 0.0.0.0:1234"
_, exit_code = self.emulator.run(cmd)
self.assertEqual(exit_code, 1)
cmd = self.interpreter + " test.py &"
cmd = self.interpreter + " sample_python_twisted.py &"
# give some time to setup the server
cmd += "sleep 30"
_, exit_code = self.emulator.run(cmd, timeout=35)
@ -31,24 +22,18 @@ class TestPythonTwisted(TestPythonBase):
class TestPythonPy2Twisted(TestPythonTwisted):
config = TestPythonBase.config + \
__test__ = True
config = TestPythonTwisted.config + \
"""
BR2_PACKAGE_PYTHON=y
BR2_PACKAGE_PYTHON_TWISTED=y
"""
def test_run(self):
self.login()
self.import_test()
class TestPythonPy3Twisted(TestPythonTwisted):
config = TestPythonBase.config + \
__test__ = True
config = TestPythonTwisted.config + \
"""
BR2_PACKAGE_PYTHON3=y
BR2_PACKAGE_PYTHON_TWISTED=y
"""
def test_run(self):
self.login()
self.import_test()