diff --git a/Makefile b/Makefile index 853fe6196..0b03489ab 100644 --- a/Makefile +++ b/Makefile @@ -47,20 +47,22 @@ init: coverage: ## run the tests and generate a coverage report - poetry run pytest --cov \ - --cov-config=.coveragerc \ - --cov-report xml \ - --cov-report term-missing:skip-covered \ - --cov-report lcov:coverage/lcov-pytest.info + @poetry run coverage run + @poetry run coverage erase # allow passing arguments to pytest unit_tests: - poetry run pytest --ignore=tests/integration --instafail -ra -n auto -m "not api_key_required" $(args) + poetry run pytest \ + --ignore=tests/integration \ + --instafail -ra -n auto -m "not api_key_required" \ + $(args) integration_tests: - poetry run pytest tests/integration --instafail -ra -n auto $(args) + poetry run pytest tests/integration \ + --instafail -ra -n auto \ + $(args) format: ## run code formatters poetry run ruff check . --fix @@ -129,9 +131,20 @@ start: @echo 'Running the CLI' ifeq ($(open_browser),false) - @make install_backend && poetry run langflow run --path $(path) --log-level $(log_level) --host $(host) --port $(port) --env-file $(env) --no-open-browser + @make install_backend && poetry run langflow run \ + --path $(path) \ + --log-level $(log_level) \ + --host $(host) \ + --port $(port) \ + --env-file $(env) \ + --no-open-browser else - @make install_backend && poetry run langflow run --path $(path) --log-level $(log_level) --host $(host) --port $(port) --env-file $(env) + @make install_backend && poetry run langflow run \ + --path $(path) \ + --log-level $(log_level) \ + --host $(host) \ + --port $(port) \ + --env-file $(env) endif @@ -166,13 +179,27 @@ backend: ## run the backend in development mode @echo 'Setting up the environment' @make setup_env make install_backend - @-kill -9 $(lsof -t -i:7860) + @-kill -9 $$(lsof -t -i:7860) ifdef login @echo "Running backend autologin is $(login)"; - LANGFLOW_AUTO_LOGIN=$(login) poetry run uvicorn --factory langflow.main:create_app --host 0.0.0.0 --port 7860 --reload --env-file .env --loop asyncio --workers $(workers) + LANGFLOW_AUTO_LOGIN=$(login) poetry run uvicorn \ + --factory langflow.main:create_app \ + --host 0.0.0.0 \ + --port $(port) \ + --reload \ + --env-file $(env) \ + --loop asyncio \ + --workers $(workers) else - @echo "Running backend respecting the .env file"; - poetry run uvicorn --factory langflow.main:create_app --host 0.0.0.0 --port 7860 --reload --env-file .env --loop asyncio --workers $(workers) + @echo "Running backend respecting the $(env) file"; + poetry run uvicorn \ + --factory langflow.main:create_app \ + --host 0.0.0.0 \ + --port $(port) \ + --reload \ + --env-file $(env) \ + --loop asyncio \ + --workers $(workers) endif diff --git a/pyproject.toml b/pyproject.toml index 1bd744a36..52d1ecd01 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -151,6 +151,28 @@ log_cli = true markers = ["async_test", "api_key_required"] +[tool.coverage.run] +command_line = """ + -m pytest + --cov --cov-report=term --cov-report=html + --instafail -ra -n auto -m "not api_key_required" + tests/unit +""" +source = ["src/backend/base/langflow/"] +omit = ["*/alembic/*", "tests/*", "*/__init__.py"] + + +[tool.coverage.report] +sort = "Stmts" +skip_empty = true +show_missing = false +ignore_errors = true + + +[tool.coverage.html] +directory = "coverage" + + [tool.ruff] exclude = ["src/backend/langflow/alembic/*"] line-length = 120