You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+23-13Lines changed: 23 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,21 +10,22 @@ Install hatch with `pipx` and configure it. As a minimum, configure it to create
10
10
[dirs.env]
11
11
virtual = ".venv"
12
12
```
13
+
# Cheat sheet
14
+
- tests: `hatch run test:test`
15
+
- docs: `hatch run dev:docs`
13
16
14
-
# VSCode
17
+
# Dev tooling
18
+
## VSCode
15
19
1. Clone the repo
16
20
1. Run `hatch env create && hatch env create dev && hatch env create test`
17
21
1. Open VSCode `code .`
18
22
1. Select the `dev` environment for development [See the documentation.](https://hatch.pypa.io/latest/how-to/integrate/vscode/)
19
23
20
24
To enable test discovery and test debugging, change the *python interpreter path* to a test environments path e.g. `test.py3.11`.
21
25
22
-
# No VSCode
26
+
##No VSCode
23
27
I suggest NeoVim or Zed. See the cheat-sheet below.
24
28
25
-
# Cheat sheet
26
-
- tests: `hatch test`
27
-
- docs: `hatch run dev:docs`
28
29
29
30
# Documentation
30
31
The docs is built into "sites" folder. This is gitignored and the docs is built in CI.
@@ -54,19 +55,28 @@ The package follows semantic versioning. Breaking changes will occur unannounced
54
55
55
56
56
57
# Docker
57
-
The base Dockerfile can be used to run Airflow and install dagcellent in _editable_ mode, so it gives you a short feedback loop.
58
+
It is recommended to use Podman with the container files. The base Dockerfile can be used to run Airflow and install dagcellent in _editable_ mode, so it gives you a short feedback loop.
59
+
60
+
# Tests
61
+
The testing suite uses Pytest.
58
62
59
-
# tests
60
63
## Unit tests
61
64
### Fuzzing/hypothesis
65
+
*coming soon* 👀
62
66
63
67
## Integration tests
64
-
The CI will run integration tests, where external components are not mocked, but real containerized entities are used.
68
+
The CI will run integration tests, where external components are not mocked, but real containerized entities are used. All integration tests are marked with `integration`.
69
+
70
+
In general, prefer integration testing/system tests over mocking. E.g.: to guarantee that our tools work on various SQL engines, implement integration tests against those engines.
65
71
72
+
The following structure illustrates where to find the various integration test.
73
+
```
74
+
tests
75
+
├── dags
76
+
└── integration
77
+
├── mlflow
78
+
├── mssql
79
+
└── psql
80
+
```
66
81
67
-
The following integrations are available (docker commands should be executed from the project root folder):
68
-
- mssql: `docker compose -f docker-compose.yaml -f ./tests/integration/docker-compose.override.mssql.yaml up --detach`
69
-
- psql: `docker compose -f docker-compose.yaml -f ./tests/integration/docker-compose.override.psql.yaml up --detach`
70
82
71
-
To stop the running instances, it is a good idea to use the `volumes` flag to remove persistent data:
0 commit comments