Development¶
Python virtual environment¶
At this point of writing, when setting up for python3.11.2 in debian 12
setup¶
python3 -m venv --system-site-packages venv
source venv/bin/activate
pip3 install --upgrade pip
pip3 install swig==4.1.1.post1
pip3 install pykcs11==1.4.4
pip3 install dmarc endesive bs4 sqlalchemy aioprocessing python-magic python-libmilter
IDE¶
When using vscode 1.85.2. cd to the root of the project that contain the python virtual environment as setup described in setup
VScode¶
vscode should auto detect. Verify by open a terminal within vscode.
vscode .
unit test¶
Ensure you have the virtual environment setup . Then install test dependencies.
pip3 install --editable '.[test]'
apt-get install unrar
different ways to test
# run all unittests under fuglu/tests/unit
$ python3 -m pytest fuglu/tests/unit
# run a single unit module
$ python3 -m pytest fuglu/tests/unit/shared_test.py
# run a single unit class
$ python3 -m pytest -v fuglu/tests/unit/milterplugin_test.py::TestMilterPluginBase
# run a single unit function
$ python3 -m pytest -v fuglu/tests/unit/milterplugin_test.py::TestMilterPluginBase::test_lint_ok
# exclude a test
$ python3 -m pytest -v fuglu/tests/unit/milterplugin_test.py::TestMilterPluginBase -k 'not test_lint_notimpl'
# to show debug logging during pytest
$ python3 -m pytest -rA -s --log-cli-level=DEBUG fuglu/tests/unit/plugins_attachment_test.py::AttachmentPluginTestCase::test_archiveextractsize