export PYTHON ?= python3
COVERAGE ?= $(PYTHON) -m coverage
COVERAGE_RUN_OPTIONS ?=
COVERAGE_RUN ?= $(COVERAGE) run $(COVERAGE_RUN_OPTIONS)
TESTSUITE = xandikos.tests.test_suite
LITMUS_TESTS ?= basic http
CALDAVTESTER_TESTS ?= CalDAV/delete.xml \
CalDAV/options.xml \
CalDAV/vtodos.xml
XANDIKOS_COVERAGE ?= $(COVERAGE_RUN) -a --rcfile=$(shell pwd)/.coveragerc --source=xandikos -m xandikos.web
check:
$(PYTHON) -m unittest $(TESTSUITE)
style:
$(PYTHON) -m flake8
isort --check .
typing:
$(PYTHON) -m mypy xandikos
web:
$(PYTHON) -m xandikos.web
check-litmus-all:
./compat/xandikos-litmus.sh "basic copymove http props locks"
check-litmus:
./compat/xandikos-litmus.sh "${LITMUS_TESTS}"
check-pycaldav:
./compat/xandikos-pycaldav.sh
coverage-pycaldav:
XANDIKOS="$(XANDIKOS_COVERAGE)" ./compat/xandikos-pycaldav.sh
coverage-litmus:
XANDIKOS="$(XANDIKOS_COVERAGE)" ./compat/xandikos-litmus.sh "${LITMUS_TESTS}"
check-vdirsyncer:
./compat/xandikos-vdirsyncer.sh
coverage-vdirsyncer:
XANDIKOS="$(XANDIKOS_COVERAGE)" ./compat/xandikos-vdirsyncer.sh
check-all: check check-vdirsyncer check-litmus check-pycaldav style
coverage-all: coverage coverage-litmus coverage-vdirsyncer
coverage:
$(COVERAGE_RUN) --source=xandikos -m unittest $(TESTSUITE)
coverage-html: coverage
$(COVERAGE) html
docs:
$(MAKE) -C docs html
.PHONY: docs
docker:
buildah build -t jvernooij/xandikos -t ghcr.io/jelmer/xandikos .
buildah push jvernooij/xandikos
buildah push ghcr.io/jelmer/xandikos
reformat:
isort .