kumquat-buildroot/support/testing/tests/package/test_python_twisted.py
Ricardo Martincoski 1009590870 support/testing: add python-twisted tests
Use a minimal script to listen to a port and check using netstat.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Cc: Asaf Kahlon <asafka7@gmail.com>
Cc: Yegor Yefremov <yegorslists@googlemail.com>
Reviewed-by: Yegor Yefremov <yegorslists@googlemail.com>
[Thomas: increase the delay after starting the Twisted server, as 5
seconds was not enough for Python 3.x configurations.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-10-11 17:28:06 +02:00

55 lines
1.4 KiB
Python

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()
"""
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)
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 &"
# give some time to setup the server
cmd += "sleep 30"
_, exit_code = self.emulator.run(cmd, timeout=35)
self.assertEqual(exit_code, 0)
cmd = "netstat -ltn 2>/dev/null | grep 0.0.0.0:1234"
_, exit_code = self.emulator.run(cmd)
self.assertEqual(exit_code, 0)
class TestPythonPy2Twisted(TestPythonTwisted):
config = TestPythonBase.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 + \
"""
BR2_PACKAGE_PYTHON3=y
BR2_PACKAGE_PYTHON_TWISTED=y
"""
def test_run(self):
self.login()
self.import_test()