1import time 2 3from tests.package.test_python import TestPythonPackageBase 4 5 6class TestPythonDjango(TestPythonPackageBase): 7 config = TestPythonPackageBase.config 8 sample_scripts = ["tests/package/sample_python_django.py"] 9 10 def run_sample_scripts(self): 11 timeout = 35 12 13 cmd = "cd /opt && /usr/bin/django-admin startproject testsite" 14 self.assertRunOk(cmd, timeout=timeout) 15 16 cmd = "cd /opt/testsite && " + self.interpreter + " ./manage.py migrate" 17 output, exit_code = self.emulator.run(cmd, timeout=timeout) 18 self.assertIn("Operations to perform:", output[0]) 19 self.assertEqual(exit_code, 0) 20 21 cmd = "cd /opt/testsite && " + self.interpreter + " ./manage.py runserver 0.0.0.0:1234 > /dev/null 2>&1 & " 22 self.assertRunOk(cmd, timeout=timeout) 23 # give some time to setup the server 24 for attempt in range(30 * self.emulator.timeout_multiplier): 25 time.sleep(1) 26 cmd = "netstat -ltn 2>/dev/null | grep 0.0.0.0:1234" 27 _, exit_code = self.emulator.run(cmd) 28 if exit_code == 0: 29 break 30 self.assertEqual(exit_code, 0, "Timeout while waiting for django server") 31 32 33class TestPythonPy3Django(TestPythonDjango): 34 __test__ = True 35 config = TestPythonDjango.config + \ 36 """ 37 BR2_PACKAGE_PYTHON3=y 38 BR2_PACKAGE_PYTHON_DJANGO=y 39 BR2_PACKAGE_PYTHON3_SQLITE=y 40 """ 41