How to do Unit Test
Prepare Environment
prepare a test.env
cat << EOF > .env
ENV=dev
LOG_LEVEL=INFO
JWT_SECRET_KEY=$(tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w 20 | head -n 1)
JWT_ALGORITHM=HS256
JWT_EXPIRE_MINUTES=600
SESSION_SECRET_KEY=secret_key
SQLALCHEMY_URI=postgresql+asyncpg://$USER_NAME:$USER_PASSWORD@localhost:5432/${DB_NAME}_test
EOF
CONFIG_ENV_FILE=test.env poetry run alembic downgrade base
CONFIG_ENV_FILE=test.env poetry run alembic upgrade head
Unit Test
configuration of pytest is inside pyproject.toml, section [tool.pytest.ini_options]
CONFIG_ENV_FILE=test.env poetry run pytest
coverage report will be generated in folder cover
, use serve cover
to open in browser.
Pylint
poetry run pylint app
To disable certain lint warning, edit .pylintrc, add lines to disable
disable=
C0114, # missing-module-docstring
C0115, # missing-class-docstring