51 lines
1.3 KiB
Makefile
51 lines
1.3 KiB
Makefile
checkfiles = aerich/ tests/ conftest.py
|
|
black_opts = -l 100 -t py38
|
|
py_warn = PYTHONDEVMODE=1
|
|
MYSQL_HOST ?= "127.0.0.1"
|
|
MYSQL_PORT ?= 3306
|
|
MYSQL_PASS ?= "123456"
|
|
POSTGRES_HOST ?= "127.0.0.1"
|
|
POSTGRES_PORT ?= 5432
|
|
POSTGRES_PASS ?= "123456"
|
|
|
|
up:
|
|
@poetry update
|
|
|
|
deps:
|
|
@poetry install -E asyncpg -E asyncmy
|
|
|
|
_style:
|
|
@isort -src $(checkfiles)
|
|
@black $(black_opts) $(checkfiles)
|
|
style: deps _style
|
|
|
|
_check:
|
|
@black --check $(black_opts) $(checkfiles) || (echo "Please run 'make style' to auto-fix style issues" && false)
|
|
@ruff check $(checkfiles)
|
|
@mypy $(checkfiles)
|
|
ifneq ($(shell python -c 'import sys;is_py38=sys.version_info<(3,9);rc=int(is_py38);sys.exit(rc)'),)
|
|
# Run bandit with Python3.9+, as the `usedforsecurity=...` parameter of `hashlib.new` is only added from Python 3.9 onwards.
|
|
@bandit -r aerich
|
|
endif
|
|
check: deps _check
|
|
|
|
test: deps
|
|
$(py_warn) TEST_DB=sqlite://:memory: pytest
|
|
|
|
test_sqlite:
|
|
$(py_warn) TEST_DB=sqlite://:memory: pytest
|
|
|
|
test_mysql:
|
|
$(py_warn) TEST_DB="mysql://root:$(MYSQL_PASS)@$(MYSQL_HOST):$(MYSQL_PORT)/test_\{\}" pytest -vv -s
|
|
|
|
test_postgres:
|
|
$(py_warn) TEST_DB="postgres://postgres:$(POSTGRES_PASS)@$(POSTGRES_HOST):$(POSTGRES_PORT)/test_\{\}" pytest -vv -s
|
|
|
|
_testall: test_sqlite test_postgres test_mysql
|
|
testall: deps _testall
|
|
|
|
build: deps
|
|
@poetry build
|
|
|
|
ci: check _testall
|