Monday, February 15, 2021¶
In demo project tera1, “pm test tests.test_ipdict” passed, but “pm test” failed.
Which indicated that test_ipdict.py somehow depends on the other test cases.
This caused an avalanche of changes in the test suite. I also learned a few
things. Lino has a new django-admin command demotest
.
The Django docs warns “If your tests rely on database access such as creating or querying models, be sure to create your test classes as subclasses of django.test.TestCase rather than unittest.TestCase.” I thought that when I don’t use django.test.TestCase, my test will use the database defined in the manage.py file (i.e. the prepared demo data).
So it seems that the Django tests in the demo projects (= run using
test
from a demo project directory, not using inv test
from the
repository root) actually never use the database that has been prepared with
pm prep
.
I thought that the WebIndexTestCase does this. But seems that I
was wrong.
The new django-admin command demotest
replaces what has
previously been done by test_webindex.py
and test_ipdict.py
. I
removed these files from all projects. It is now being called in the
test_demo.py
, which I added to some repositories. E.g. we now also
have such a file in welfare, amici, algus, mentori and others.
The test suite in welfare and amici did not run test
in their demo
projects. Seems that they have been sleeping for quite long. Now they are back
But two of them were using lino.api.doctest.check_callback_dialog()
, and I
didn’t yet manage to get this back to work. I marked them as skipped.
The new demotest
command also unveiled a series of deprecation
warnings, which I fixed. I had not seen them before because usually they are
disabled.
I rediscovered two tested docs that hadn’t yet been moved to the docs tree in book: Local customizations to the user permissions and lookup_or_create and the auto_create signal.