41 lines
1.4 KiB
Python
41 lines
1.4 KiB
Python
import time
|
|
|
|
from tests.package.test_python import TestPythonPackageBase
|
|
|
|
|
|
class TestPythonDjango(TestPythonPackageBase):
|
|
config = TestPythonPackageBase.config
|
|
sample_scripts = ["tests/package/sample_python_django.py"]
|
|
|
|
def run_sample_scripts(self):
|
|
timeout = 35
|
|
|
|
cmd = "cd /opt && /usr/bin/django-admin startproject testsite"
|
|
self.assertRunOk(cmd, timeout=timeout)
|
|
|
|
cmd = "cd /opt/testsite && " + self.interpreter + " ./manage.py migrate"
|
|
output, exit_code = self.emulator.run(cmd, timeout=timeout)
|
|
self.assertIn("Operations to perform:", output[0])
|
|
self.assertEqual(exit_code, 0)
|
|
|
|
cmd = "cd /opt/testsite && " + self.interpreter + " ./manage.py runserver 0.0.0.0:1234 > /dev/null 2>&1 & "
|
|
self.assertRunOk(cmd, timeout=timeout)
|
|
# give some time to setup the server
|
|
for attempt in range(30 * self.emulator.timeout_multiplier):
|
|
time.sleep(1)
|
|
cmd = "netstat -ltn 2>/dev/null | grep 0.0.0.0:1234"
|
|
_, exit_code = self.emulator.run(cmd)
|
|
if exit_code == 0:
|
|
break
|
|
self.assertEqual(exit_code, 0, "Timeout while waiting for django server")
|
|
|
|
|
|
class TestPythonPy3Django(TestPythonDjango):
|
|
__test__ = True
|
|
config = TestPythonDjango.config + \
|
|
"""
|
|
BR2_PACKAGE_PYTHON3=y
|
|
BR2_PACKAGE_PYTHON_DJANGO=y
|
|
BR2_PACKAGE_PYTHON3_SQLITE=y
|
|
"""
|