kumquat-buildroot/support/testing/tests/package/test_python_django.py
Adam Duskett 8583b2c6d8 support/testing: add python-django test
This test comprises of four simple steps:
  1: Start a new simple project called testsite.
  2: Run ./manage.py migrate on the new testsite.
  3: Run ./manage.py runserver 0.0.0.0:1234 & sleep 30
    - The sleep 30 is necessary as it may take several seconds for
      the django server to fully start.
  4: Run netstat to ensure the server opened port 1234.

Signed-off-by: Adam Duskett <aduskett@greenlots.com>
[Thomas: use self.assertRunOk() when appropriate]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2019-12-05 23:02:14 +01:00

33 lines
1.1 KiB
Python

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):
cmd = "cd /opt && /usr/bin/django-admin startproject testsite"
self.assertRunOk(cmd, timeout=30)
cmd = "cd /opt/testsite && " + self.interpreter + " ./manage.py migrate"
output, exit_code = self.emulator.run(cmd, timeout=30)
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 & "
# give some time to setup the server
cmd += "sleep 30"
self.assertRunOk(cmd, timeout=35)
cmd = "netstat -ltn 2>/dev/null | grep 0.0.0.0:1234"
self.assertRunOk(cmd)
class TestPythonPy3Django(TestPythonDjango):
__test__ = True
config = TestPythonDjango.config + \
"""
BR2_PACKAGE_PYTHON3=y
BR2_PACKAGE_PYTHON_DJANGO=y
BR2_PACKAGE_PYTHON3_SQLITE=y
"""