Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DOP-13277] Collect coverage results #8

Merged
merged 45 commits into from
Mar 11, 2024
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
7d4245b
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
e128e94
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
c4f01f1
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
1c3496e
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
ead710b
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
960c60b
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
f5179a9
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
7c28f95
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
563b97c
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
fba0bd1
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
9f5fcd4
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
e21146c
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
da9d30b
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
8dd7513
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
3f042f2
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
2005c89
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
c5d7c17
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
e646a8e
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
eca6f6d
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
8cecb41
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
bc6f58f
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
7854b3a
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
47dbdad
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
1fb9ecf
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
96dfe91
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
2db8ee1
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
423538c
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
6d03b2d
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
d0eb229
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
e4a7624
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
20cfd3b
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
f7ef533
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
22abd5e
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
81e5d2b
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
53c3d4f
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
af9311d
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
690580d
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 7, 2024
78856c2
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 11, 2024
affc2c8
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 11, 2024
122f692
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 11, 2024
98c90ff
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 11, 2024
1c7d8f5
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 11, 2024
ab62d0e
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 11, 2024
d065a7b
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 11, 2024
a603127
[DOP-13277] Collect coverage results
dmitry-pedchenko Mar 11, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .github/workflows/hdfs-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,13 @@ jobs:
# Tests for the backend are run on the worker.
# Backend and worker on the same container.
run: |
docker compose -f ./docker-compose.test.yml exec -T worker pytest -vvv -s -m hdfs
docker compose -f ./docker-compose.test.yml exec -T worker coverage run pytest -vvv -s -m hdfs
dolfinus marked this conversation as resolved.
Show resolved Hide resolved
env:
COMPOSE_PROJECT_NAME: ${{ github.run_id }}-syncmaster

- name: Generate coverate reports
run: ./combine_coverage.sh
dolfinus marked this conversation as resolved.
Show resolved Hide resolved

- name: Shutdown
if: always()
run: |
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/hive-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,13 @@ jobs:
# Tests for the backend are run on the worker.
# Backend and worker on the same container.
run: |
docker compose -f ./docker-compose.test.yml exec -T worker pytest -vvv -s -m hive
docker compose -f ./docker-compose.test.yml exec -T worker coverage run pytest -vvv -s -m hive
env:
COMPOSE_PROJECT_NAME: ${{ github.run_id }}-syncmaster

- name: Generate coverate reports
run: ./combine_coverage.sh

- name: Shutdown
if: always()
run: |
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/oracle-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,13 @@ jobs:
# Tests for the backend are run on the worker.
# Backend and worker on the same container.
run: |
docker compose -f ./docker-compose.test.yml exec -T worker pytest -vvv -s -m oracle
docker compose -f ./docker-compose.test.yml exec -T worker coverage run pytest -vvv -s -m oracle
env:
COMPOSE_PROJECT_NAME: ${{ github.run_id }}-syncmaster

- name: Generate coverate reports
run: ./combine_coverage.sh

- name: Shutdown
dolfinus marked this conversation as resolved.
Show resolved Hide resolved
if: always()
run: |
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/s3-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,13 @@ jobs:
# Tests for the backend are run on the worker.
# Backend and worker on the same container.
run: |
docker compose -f ./docker-compose.test.yml exec -T worker pytest -vvv -s -m s3
docker compose -f ./docker-compose.test.yml exec -T worker coverage run pytest -vvv -s -m s3
env:
COMPOSE_PROJECT_NAME: ${{ github.run_id }}-syncmaster

- name: Generate coverate reports
run: ./combine_coverage.sh

- name: Shutdown
if: always()
run: |
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/unit-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ jobs:

- name: Install dependencies
run: |
poetry install --no-root --with backend,test
poetry install --no-root --with backend,test,dev
dolfinus marked this conversation as resolved.
Show resolved Hide resolved

- name: Start docker compose
run: |
Expand All @@ -69,7 +69,6 @@ jobs:
- name: Run DB Tests.
run: |
source .env.local
mkdir -p reports/
poetry run coverage run -m pytest -vvv -s ./syncmaster/tests/test_database
env:
COMPOSE_PROJECT_NAME: ${{ github.run_id }}-syncmaster
Expand All @@ -81,6 +80,9 @@ jobs:
env:
COMPOSE_PROJECT_NAME: ${{ github.run_id }}-syncmaster

- name: Generate coverate reports
run: ./combine_coverage.sh

- name: Shutdown
if: always()
run: |
Expand Down
5 changes: 5 additions & 0 deletions combine_coverage.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/usr/bin/env bash

root_path=$(dirname $(realpath $0))
coverage combine --rcfile=tests/.coveragerc
coverage xml --rcfile=tests/.coveragerc -o $root_path/reports/coverage.xml -i
1 change: 1 addition & 0 deletions docker-compose.test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ services:
- test-s3
volumes:
- ./cached_jars:/root/.ivy2
- ./reports:/syncmaster/reports
dolfinus marked this conversation as resolved.
Show resolved Hide resolved
env_file: .env.docker

backend:
Expand Down
4 changes: 2 additions & 2 deletions docker/worker.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,14 @@ COPY ./pyproject.toml ./poetry.lock* /syncmaster/

RUN pip install --upgrade pip setuptools wheel packaging

RUN poetry install --no-root --with worker,test
RUN poetry install --no-root --with worker,test,dev
dolfinus marked this conversation as resolved.
Show resolved Hide resolved

COPY ./syncmaster/ /syncmaster/


# https://docs.celeryq.dev/en/stable/userguide/workers.html#max-tasks-per-child-setting
# Required to start each Celery task in separated process, avoiding issues with global Spark session object
CMD ["celery", "-A" ,"app.tasks.config.celery", "worker", "--loglevel=info", "--max-tasks-per-child=1"]
CMD ["coverage", "run", "celery", "-A" ,"app.tasks.config.celery", "worker", "--loglevel=info", "--max-tasks-per-child=1"]
dolfinus marked this conversation as resolved.
Show resolved Hide resolved

FROM prod as test

Expand Down
254 changes: 194 additions & 60 deletions poetry.lock

Large diffs are not rendered by default.

31 changes: 31 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ faker = "^22.6.0"

[tool.poetry.group.dev.dependencies]
coverage = "^7.4.3"
gevent = "^24.2.1"
dolfinus marked this conversation as resolved.
Show resolved Hide resolved
pre-commit = "^3.3.3"
mypy = "^1.4.1"
black = "^23.3.0"
Expand Down Expand Up @@ -120,3 +121,33 @@ markers = [
"hdfs: tests for hadoop hdfs",
"s3: tests for S3",
]

[tool.coverage.paths]
source = ["syncmaster"]

[tool.coverage.run]
branch = true
parallel = true
relative_files = true
concurrency = ["gevent"]
omit = [
"tests/*",
dmitry-pedchenko marked this conversation as resolved.
Show resolved Hide resolved
"app/db/migrations/*",
dolfinus marked this conversation as resolved.
Show resolved Hide resolved
]
data_file = "reports/.coverage"

[tool.coverage.report]
precision = 2
exclude_lines = [
"pragma: no cover",
"def __repr__",
"if .*debug:",
"raise AssertionError",
"raise NotImplementedError",
"if __name__ == .__main__.:",
"if TYPE_CHECKING:",
"if log.isEnabledFor(logging.DEBUG):",
"if sys.version_info",
"@(abc\\.)?abstractmethod",
"\\.\\.\\.",
dolfinus marked this conversation as resolved.
Show resolved Hide resolved
]
Loading