[pytest] # Searching python_files = test_* python_classes = Tests* python_functions = test_* env_files = .env # do not search for tests in these folders norecursedirs = .vscode .tox docs example img mfa venv .coverage django_mfa2.egg-info # Add folder to PYTHONPATH # requires pytest >= 7.0.0 pythonpath = . # https://pytest-django.readthedocs.io/en/latest/usage.html DJANGO_SETTINGS_MODULE = tests.settings # do not override the debug mode (True/False) set in the django settings module # https://pytest-django.readthedocs.io/en/latest/usage.html#additional-pytest-ini-settings django_debug_mode = keep # # set env variables # https://tech.serhatteker.com/post/2020-02/test-env-vars-in-python/ # https://github.com/pytest-dev/pytest-env ; env = ; KEY=value addopts = # verbose -v # more verbosity # -vv # Don't show warnings # -p no:warnings # generates coverage report # note that enabling pytest coverage will cause debugging pytest to fail on pycharm # add the --no-cov to the pytest configuration on pycharm to allow for debugging pytest --cov=./mfa # surpress generating converage if one or more tests failed ; --no-cov-on-fail # do not run migrations => faster test initialization # --nomigrations # Show hypthesis statistics whereever hypothesis was used # ignore these tests/files when looking for tests #--ignore= # black # --black --hypothesis-show-statistics # Add --reuse-db if you want to speed up tests by reusing the database between test runs. #--reuse-db # Define additional pytest markers so that using them in test will not trigger warnings # To show the help line use: % pytest --marker # To run pytest on a specifc marker use: pytest -m mark # to run pytestt on several markers use quotation and logic operators as in: # pytest -m "mark1 and mark2" # pytest -m "mark1 or mark2" # pytest -m "mark1 and not mark2" markers = API: tests of server api functions whether it is exposed as REST API or otherwise BLACK_BOX: Black Box tests WHITE_BOX: White Box tests ENVIRONMENT: tests for the environment CONFIGURATION: tests related configurations LOGGING: tests related to logging UNIT: Unit tests INTEGRATION: Integration testing UTILS: tests for utilities FOCUS: tests under the microscope... under the spotlight... in focus FUNC: functional teesting REGRESSION: tests for fixed bugs DJANGO: tests related to DJANGO HTTP_REQUEST: tests of functions that handles HTTP REQUESTS HTTP_GET: tests of functions that handles HTTP_GET_REQUESTS HTTP_POST: tests of functions that handles HTTP_POST_REQUESTS AUTH: tests related to user authentication SQL_DB: tests related to the sql database CLI: tests related to flask-cli SERVER: tests for the server API_V1: API related tests PRIVILEGED_USER: tests for privileged users NON_PRIVILEGED_USER: tests for non-privileged users PERMISSIONS: tests related to permissions ENDPOINTS: tests for endpoints (API nodes) SERIALIZERS: tests for serializers VIEWS: tests for DRF viewsets FILTERS: tests for DRF filters MODELS: tests for models VALIDATORS: tests for validators ERROR_HANDLING: tests for error handling SECURITY: tests for security