Skip to content

Commit

Permalink
ci: coverage
Browse files Browse the repository at this point in the history
  • Loading branch information
ddkasa committed Jun 10, 2024
1 parent 5d351da commit cf2cb85
Show file tree
Hide file tree
Showing 5 changed files with 99 additions and 69 deletions.
21 changes: 16 additions & 5 deletions .github/workflows/publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,22 @@ jobs:
test:
runs-on: ${{ matrix.os }}
strategy:

max-parallel: 1
fail-fast: true
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ["3.10", "3.11", "3.12"]

env:
TOGGL_WORKSPACE_ID: ${{ secrets.TOGGL_WORKSPACE_ID }}
TOGGL_API_TOKEN: ${{ secrets.TOGGL_API_TOKEN }}
GH_ACTION: "ACTION"


steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
with:
Expand All @@ -27,8 +33,7 @@ jobs:
run: |
python -m pip install --upgrade pip
pip install poetry
poetry install --with dev
pip install tox ruff mypy
pip install tox-gh-actions tox ruff mypy
- name: Type check
run: mypy toggl_api
Expand All @@ -39,6 +44,12 @@ jobs:
- name: Run tests
run: tox

- name: Upload coverage reports to Codecov
if: ${{ matrix.python-version == '3.12' && matrix.os == 'ubuntu-latest' }}
uses: codecov/[email protected]
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

build:
needs: test
runs-on: ubuntu-latest
Expand Down
109 changes: 49 additions & 60 deletions coverage.xml
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
<?xml version="1.0" ?>
<coverage version="7.5.3" timestamp="1718028205266" lines-valid="898" lines-covered="789" line-rate="0.8786" branches-covered="0" branches-valid="0" branch-rate="0" complexity="0">
<coverage version="7.5.3" timestamp="1718042024371" lines-valid="887" lines-covered="782" line-rate="0.8816" branches-covered="0" branches-valid="0" branch-rate="0" complexity="0">
<!-- Generated by coverage.py: https://coverage.readthedocs.io/en/7.5.3 -->
<!-- Based on https://raw.githubusercontent.com/cobertura/web/master/htdocs/xml/coverage-04.dtd -->
<sources>
<source>/home/dk/dev/toggl-api-wrapper</source>
</sources>
<packages>
<package name="toggl_api" line-rate="0.6622" branch-rate="0" complexity="0">
<package name="toggl_api" line-rate="0.6667" branch-rate="0" complexity="0">
<classes>
<class name="__init__.py" filename="toggl_api/__init__.py" complexity="0" line-rate="1" branch-rate="0">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="11" hits="1"/>
<line number="18" hits="1"/>
<line number="20" hits="1"/>
<line number="21" hits="1"/>
<line number="2" hits="1"/>
<line number="15" hits="1"/>
<line number="22" hits="1"/>
<line number="24" hits="1"/>
<line number="25" hits="1"/>
<line number="28" hits="1"/>
</lines>
</class>
<class name="config.py" filename="toggl_api/config.py" complexity="0" line-rate="0.45" branch-rate="0">
Expand Down Expand Up @@ -104,7 +105,7 @@
</class>
</classes>
</package>
<package name="toggl_api.modules" line-rate="0.8763" branch-rate="0" complexity="0">
<package name="toggl_api.modules" line-rate="0.8746" branch-rate="0" complexity="0">
<classes>
<class name="__init__.py" filename="toggl_api/modules/__init__.py" complexity="0" line-rate="1" branch-rate="0">
<methods/>
Expand All @@ -115,7 +116,8 @@
<line number="4" hits="1"/>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<line number="8" hits="1"/>
<line number="7" hits="1"/>
<line number="9" hits="1"/>
</lines>
</class>
<class name="client.py" filename="toggl_api/modules/client.py" complexity="0" line-rate="0.8431" branch-rate="0">
Expand Down Expand Up @@ -247,41 +249,28 @@
<line number="159" hits="1"/>
</lines>
</class>
<class name="tag.py" filename="toggl_api/modules/tag.py" complexity="0" line-rate="0.9688" branch-rate="0">
<class name="tag.py" filename="toggl_api/modules/tag.py" complexity="0" line-rate="1" branch-rate="0">
<methods/>
<lines>
<line number="1" hits="1"/>
<line number="3" hits="1"/>
<line number="4" hits="1"/>
<line number="7" hits="1"/>
<line number="8" hits="1"/>
<line number="2" hits="1"/>
<line number="5" hits="1"/>
<line number="6" hits="1"/>
<line number="11" hits="1"/>
<line number="13" hits="1"/>
<line number="15" hits="1"/>
<line number="16" hits="1"/>
<line number="17" hits="1"/>
<line number="18" hits="1"/>
<line number="25" hits="1"/>
<line number="14" hits="1"/>
<line number="21" hits="1"/>
<line number="26" hits="1"/>
<line number="27" hits="1"/>
<line number="33" hits="1"/>
<line number="34" hits="1"/>
<line number="35" hits="1"/>
<line number="36" hits="1"/>
<line number="37" hits="1"/>
<line number="38" hits="1"/>
<line number="39" hits="1"/>
<line number="40" hits="1"/>
<line number="41" hits="1"/>
<line number="42" hits="1"/>
<line number="43" hits="1"/>
<line number="44" hits="1"/>
<line number="45" hits="1"/>
<line number="46" hits="0"/>
<line number="48" hits="1"/>
<line number="50" hits="1"/>
<line number="51" hits="1"/>
<line number="52" hits="1"/>
<line number="54" hits="1"/>
<line number="55" hits="1"/>
<line number="56" hits="1"/>
</lines>
</class>
<class name="tracker.py" filename="toggl_api/modules/tracker.py" complexity="0" line-rate="0.8333" branch-rate="0">
Expand Down Expand Up @@ -853,7 +842,7 @@
</class>
</classes>
</package>
<package name="toggl_api.modules.models" line-rate="0.9383" branch-rate="0" complexity="0">
<package name="toggl_api.modules.models" line-rate="0.9568" branch-rate="0" complexity="0">
<classes>
<class name="__init__.py" filename="toggl_api/modules/models/__init__.py" complexity="0" line-rate="0.9333" branch-rate="0">
<methods/>
Expand Down Expand Up @@ -981,7 +970,7 @@
<line number="223" hits="1"/>
</lines>
</class>
<class name="schema.py" filename="toggl_api/modules/models/schema.py" complexity="0" line-rate="0.913" branch-rate="0">
<class name="schema.py" filename="toggl_api/modules/models/schema.py" complexity="0" line-rate="0.9783" branch-rate="0">
<methods/>
<lines>
<line number="1" hits="1"/>
Expand All @@ -998,38 +987,38 @@
<line number="30" hits="1"/>
<line number="31" hits="1"/>
<line number="33" hits="1"/>
<line number="34" hits="1"/>
<line number="35" hits="1"/>
<line number="36" hits="0"/>
<line number="37" hits="1"/>
<line number="38" hits="0"/>
<line number="39" hits="0"/>
<line number="38" hits="1"/>
<line number="39" hits="1"/>
<line number="40" hits="1"/>
<line number="41" hits="0"/>
<line number="41" hits="1"/>
<line number="42" hits="0"/>
<line number="43" hits="1"/>
<line number="48" hits="1"/>
<line number="49" hits="1"/>
<line number="50" hits="1"/>
<line number="44" hits="1"/>
<line number="45" hits="1"/>
<line number="47" hits="1"/>
<line number="52" hits="1"/>
<line number="53" hits="1"/>
<line number="54" hits="1"/>
<line number="56" hits="1"/>
<line number="69" hits="1"/>
<line number="71" hits="1"/>
<line number="80" hits="1"/>
<line number="82" hits="1"/>
<line number="94" hits="1"/>
<line number="96" hits="1"/>
<line number="105" hits="1"/>
<line number="107" hits="1"/>
<line number="121" hits="1"/>
<line number="127" hits="1"/>
<line number="133" hits="1"/>
<line number="135" hits="1"/>
<line number="138" hits="1"/>
<line number="143" hits="1"/>
<line number="144" hits="1"/>
<line number="145" hits="1"/>
<line number="146" hits="1"/>
<line number="57" hits="1"/>
<line number="58" hits="1"/>
<line number="60" hits="1"/>
<line number="73" hits="1"/>
<line number="75" hits="1"/>
<line number="84" hits="1"/>
<line number="86" hits="1"/>
<line number="98" hits="1"/>
<line number="100" hits="1"/>
<line number="109" hits="1"/>
<line number="111" hits="1"/>
<line number="125" hits="1"/>
<line number="131" hits="1"/>
<line number="137" hits="1"/>
<line number="139" hits="1"/>
<line number="142" hits="1"/>
<line number="147" hits="1"/>
<line number="148" hits="1"/>
<line number="149" hits="1"/>
<line number="150" hits="1"/>
</lines>
</class>
</classes>
Expand Down
23 changes: 22 additions & 1 deletion poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ pytest-sqlalchemy-mock = "^0.1.6"
faker = "^25.2.0"
pytest-reportlog = "^0.4.0"
mkdocs-callouts = "^1.13.2"
pytest-cov = "^5.0.0"

[tool.poetry.group.docs.dependencies]
mkdocs = "^1.6.0"
Expand Down Expand Up @@ -188,7 +189,7 @@ markers = [
"slow: Tests that are slow to run or have delays included.",
]
testpaths = ["tests"]
addopts = "--report-log=logs/pytest.jsonl"
addopts = "--report-log=logs/pytest.jsonl --cov --cov-append --cov-report xml"


[tool.tox]
Expand Down Expand Up @@ -216,7 +217,6 @@ python =
3.10: py310
3.11: py311
3.12: ruff, mypy, py312
3.13: py313
[testenv:mypy]
allowlist_externals = mypy, poetry
Expand Down
11 changes: 10 additions & 1 deletion tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import contextlib
import os
import time
from datetime import datetime, timedelta, timezone
from pathlib import Path

Expand All @@ -20,6 +21,13 @@
from toggl_api.modules.workspace import WorkspaceEndpoint


@pytest.fixture(autouse=True)
def _rate_limit():
yield
if os.environ.get("GH_ACTION"):
time.sleep(1)


@pytest.fixture(scope="session")
def faker():
return Faker()
Expand All @@ -39,7 +47,8 @@ def cache_path():
path = Path(__file__).resolve().parents[0] / Path("cache")
yield path
if path.exists():
cleanup(path)
with contextlib.suppress(PermissionError):
cleanup(path)


@pytest.fixture(scope="session")
Expand Down

0 comments on commit cf2cb85

Please sign in to comment.