<div dir="ltr"><div><Cross posted from the Django Users list with additions and clarifications.></div><div><br></div>I am working on Precival's 2017 Test Driven Development with Python (and Django) 2nd edition.  I am stuck on chapter 9 which covers deployment to a shared hosted or dedicated hosted remote development instance.<br><br>If I run on the local machine with ~/blah/blah/venv/bin/python3 manage.py test functional_tests, then all the tests pass fine.<br><br>If I run on the remote host with python3 manage.py runserver <a href="http://0.0.0.0:8000">0.0.0.0:8000</a> and run the functional tests, the home page displays but it can't process input failing with Operational Error: no such table.<br><br>I made a new sqlite3 migration and am told there is nothing new needing a make migration.  I apply migration, and nothing needs to be applied.<br><br>I'm thinking, "there is a difference in environments".<br><br>I try the same, running on my local machine with python3 manage.py runserver and running the functional tests, and get the same failure as on the remote shared host.<br><br>So now I think I have some file path weirdness.  Maybe when run on the Django development server instead of the Django testing tool, the path to db.sqlite3 is different.<div><br></div><div>Googling suggests a simple make and apply sqlite3 migrations (which I've tried), to using absolute file paths with usages to avoid having to change paths between environments, to deleting the sqlite3 database and rebuild it re-adding essential site data, like the Django superuser from scratch.  None of them mention any difference between running Django functional tests directly from the Django tester (which works), and "injecting" a server (in this case Django's own development server) directly into the functional test script (which isn't working one either the local laptop or remote server--they fail with the same Operational Error: no such table message.)</div><div><br>====<br><br><font face="monospace"># Build paths inside the project like this: BASE_DIR / 'subdir'.<br>BASE_DIR = Path(__file__).resolve().parent.parent<br><br><snip/><br><br># Database<br># <a href="https://docs.djangoproject.com/en/4.1/ref/settings/#databases">https://docs.djangoproject.com/en/4.1/ref/settings/#databases</a><br># Differs from example p. 147<br><br>DATABASES = {<br>    'default': {<br>        'ENGINE': 'django.db.backends.sqlite3',<br>        'NAME': BASE_DIR / 'db.sqlite3',<br>    }<br>}<br></font><br><br>Trent<br></div></div>