aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.woodpecker/tests.yaml4
-rw-r--r--hittekaart-py/tests/test_api.py71
2 files changed, 74 insertions, 1 deletions
diff --git a/.woodpecker/tests.yaml b/.woodpecker/tests.yaml
index 4ca95a0..697a524 100644
--- a/.woodpecker/tests.yaml
+++ b/.woodpecker/tests.yaml
@@ -5,8 +5,10 @@ steps:
- name: test
image: rust
commands:
- - apt update && apt install -y python3-dev
+ - apt update && apt install -y python3-dev python3-pip
+ - pip3 install ./hittekaart-py pytest
- cargo test
+ - cd hittekaart-py && pytest
- name: compile-benches
image: rust
commands:
diff --git a/hittekaart-py/tests/test_api.py b/hittekaart-py/tests/test_api.py
new file mode 100644
index 0000000..1ea51c2
--- /dev/null
+++ b/hittekaart-py/tests/test_api.py
@@ -0,0 +1,71 @@
+from hittekaart_py import (
+ Track, HeatmapRenderer, MarktileRenderer, TilehuntRenderer, Settings, Storage, generate
+)
+
+
+def tracks():
+ return [
+ Track.from_file(b"../test-assets/Synthetic_BRouter_1.gpx.gz", "gzip"),
+ ]
+
+
+def storage():
+ return Storage.MbTiles(b":memory:", "heat", "mappy")
+
+
+def test_track_from_file():
+ track = Track.from_file(b"../test-assets/Synthetic_BRouter_1.gpx.gz", "gzip")
+ assert track is not None
+
+
+def test_track_from_coordinates():
+ track = Track.from_coordinates([(1.0, 2.0), (3.0, 4.0)])
+ assert track is not None
+
+
+def test_storage_folder():
+ storage = Storage.Folder(b"/tmp")
+ assert storage is not None
+
+
+def test_storage_osmand():
+ storage = Storage.OsmAnd(b":memory:")
+ assert storage is not None
+
+
+def test_storage_mbtiles():
+ storage = Storage.MbTiles(b":memory:")
+ assert storage is not None
+
+ storage = Storage.MbTiles(b":memory:", "Heatmap")
+ assert storage is not None
+
+ storage = Storage.MbTiles(b":memory:", "Heatmap", "This is my heatmap")
+ assert storage is not None
+
+
+def test_generate_heatmap():
+ generate(
+ Settings(),
+ tracks(),
+ HeatmapRenderer(),
+ storage(),
+ )
+
+
+def test_generate_marktile():
+ generate(
+ Settings(),
+ tracks(),
+ MarktileRenderer(),
+ storage(),
+ )
+
+
+def test_generate_tilehunt():
+ generate(
+ Settings(),
+ tracks(),
+ TilehuntRenderer(10),
+ storage(),
+ )