From 10095908701ce291578f4b1c9359ba6f8b381449 Mon Sep 17 00:00:00 2001 From: Ricardo Martincoski Date: Tue, 25 Sep 2018 23:55:14 -0300 Subject: support/testing: add python-twisted tests Use a minimal script to listen to a port and check using netstat. Signed-off-by: Ricardo Martincoski Cc: Asaf Kahlon Cc: Yegor Yefremov Reviewed-by: Yegor Yefremov [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 --- .../testing/tests/package/test_python_twisted.py | 54 ++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 support/testing/tests/package/test_python_twisted.py (limited to 'support/testing/tests/package/test_python_twisted.py') diff --git a/support/testing/tests/package/test_python_twisted.py b/support/testing/tests/package/test_python_twisted.py new file mode 100644 index 0000000000..ccee07d61d --- /dev/null +++ b/support/testing/tests/package/test_python_twisted.py @@ -0,0 +1,54 @@ +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() -- cgit v1.2.3