Skip to content

Commit d493136

Browse files
committed
add python tests
1 parent 0c21a18 commit d493136

File tree

4 files changed

+149
-46
lines changed

4 files changed

+149
-46
lines changed

examples/RasterLayer.ipynb

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
},
1010
{
1111
"cell_type": "code",
12-
"execution_count": 1,
12+
"execution_count": 2,
1313
"metadata": {},
1414
"outputs": [],
1515
"source": [
@@ -18,7 +18,7 @@
1818
},
1919
{
2020
"cell_type": "code",
21-
"execution_count": 2,
21+
"execution_count": 3,
2222
"metadata": {},
2323
"outputs": [],
2424
"source": [
@@ -30,30 +30,20 @@
3030
},
3131
{
3232
"cell_type": "code",
33-
"execution_count": 3,
34-
"metadata": {
35-
"scrolled": true
36-
},
33+
"execution_count": 4,
34+
"metadata": {},
3735
"outputs": [
3836
{
39-
"data": {
40-
"application/vnd.jupyter.widget-view+json": {
41-
"model_id": "bf54f7b270eb4c12ba2fbcaeea2583da",
42-
"version_major": 2,
43-
"version_minor": 0
44-
},
45-
"text/plain": [
46-
"Map(center=[4.299875503991089, 46.85012303279379], zoom=0.0)"
47-
]
48-
},
49-
"execution_count": 3,
50-
"metadata": {},
51-
"output_type": "execute_result"
37+
"name": "stdout",
38+
"output_type": "stream",
39+
"text": [
40+
"Map(center=[0.0, 0.0], zoom=0.0)\n"
41+
]
5242
}
5343
],
5444
"source": [
55-
"m = Map(center=[4.299875503991089, 46.85012303279379], zoom=0)\n",
56-
"m"
45+
"m = Map()\n",
46+
"print(m)"
5747
]
5848
},
5949
{
@@ -74,7 +64,7 @@
7464
},
7565
{
7666
"cell_type": "code",
77-
"execution_count": 5,
67+
"execution_count": 6,
7868
"metadata": {},
7969
"outputs": [],
8070
"source": [
@@ -83,7 +73,7 @@
8373
},
8474
{
8575
"cell_type": "code",
86-
"execution_count": 26,
76+
"execution_count": 8,
8777
"metadata": {},
8878
"outputs": [],
8979
"source": [
@@ -108,11 +98,7 @@
10898
{
10999
"cell_type": "code",
110100
"execution_count": 9,
111-
"metadata": {
112-
"jupyter": {
113-
"source_hidden": true
114-
}
115-
},
101+
"metadata": {},
116102
"outputs": [],
117103
"source": [
118104
"attributions = [\n",
@@ -132,6 +118,20 @@
132118
"source": [
133119
"m.remove_layer(rasterlay)"
134120
]
121+
},
122+
{
123+
"cell_type": "code",
124+
"execution_count": null,
125+
"metadata": {},
126+
"outputs": [],
127+
"source": []
128+
},
129+
{
130+
"cell_type": "code",
131+
"execution_count": null,
132+
"metadata": {},
133+
"outputs": [],
134+
"source": []
135135
}
136136
],
137137
"metadata": {

examples/VectorTileLayer.ipynb

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"cells": [
33
{
44
"cell_type": "code",
5-
"execution_count": 23,
5+
"execution_count": 1,
66
"id": "3e872bf4-ebce-4bf9-a693-45bbe7296b50",
77
"metadata": {},
88
"outputs": [],
@@ -12,7 +12,7 @@
1212
},
1313
{
1414
"cell_type": "code",
15-
"execution_count": 24,
15+
"execution_count": 2,
1616
"id": "b86d142b-3904-4340-ab94-285b25998834",
1717
"metadata": {},
1818
"outputs": [],
@@ -25,22 +25,22 @@
2525
},
2626
{
2727
"cell_type": "code",
28-
"execution_count": 25,
28+
"execution_count": 3,
2929
"id": "7fa3311c-d409-4c46-9493-5d99cc92bd49",
3030
"metadata": {},
3131
"outputs": [
3232
{
3333
"data": {
3434
"application/vnd.jupyter.widget-view+json": {
35-
"model_id": "",
35+
"model_id": "5a93500bbaa94ac59a4b0190afaf8da3",
3636
"version_major": 2,
3737
"version_minor": 0
3838
},
3939
"text/plain": [
4040
"Map(center=[4.299875503991089, 46.85012303279379], zoom=0.0)"
4141
]
4242
},
43-
"execution_count": 25,
43+
"execution_count": 3,
4444
"metadata": {},
4545
"output_type": "execute_result"
4646
}
@@ -52,7 +52,7 @@
5252
},
5353
{
5454
"cell_type": "code",
55-
"execution_count": 26,
55+
"execution_count": 4,
5656
"id": "45bcff0e-d17e-45c1-8ae3-cde10b6936a8",
5757
"metadata": {},
5858
"outputs": [],
@@ -63,7 +63,7 @@
6363
},
6464
{
6565
"cell_type": "code",
66-
"execution_count": 27,
66+
"execution_count": 5,
6767
"id": "925df5fd-5165-4e6f-a2bd-aa9c875c3b42",
6868
"metadata": {},
6969
"outputs": [],
@@ -80,7 +80,7 @@
8080
},
8181
{
8282
"cell_type": "code",
83-
"execution_count": 28,
83+
"execution_count": 6,
8484
"id": "52a18ec7-981b-4182-846f-91c372aeac98",
8585
"metadata": {},
8686
"outputs": [],
@@ -90,7 +90,7 @@
9090
},
9191
{
9292
"cell_type": "code",
93-
"execution_count": 29,
93+
"execution_count": 7,
9494
"id": "2a617173-7a1e-4e9a-a9db-3b3d6085b5ea",
9595
"metadata": {},
9696
"outputs": [],
@@ -112,7 +112,7 @@
112112
},
113113
{
114114
"cell_type": "code",
115-
"execution_count": 30,
115+
"execution_count": 8,
116116
"id": "ba96582e-a837-49df-b98d-aa1f2fa9ada5",
117117
"metadata": {},
118118
"outputs": [],
@@ -130,7 +130,7 @@
130130
},
131131
{
132132
"cell_type": "code",
133-
"execution_count": 31,
133+
"execution_count": 9,
134134
"id": "cc12097b-8d4c-4cc1-a43e-126137249db8",
135135
"metadata": {},
136136
"outputs": [],
@@ -140,7 +140,7 @@
140140
},
141141
{
142142
"cell_type": "code",
143-
"execution_count": 32,
143+
"execution_count": 10,
144144
"id": "afc43b3c-805f-4144-97a1-43c9987e9558",
145145
"metadata": {},
146146
"outputs": [],

ipyopenlayers/Map.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ class Map(DOMWidget):
131131
_view_module_version = Unicode(module_version).tag(sync=True)
132132

133133
center = List(def_loc).tag(sync=True, o=True)
134-
zoom = CFloat(2).tag(sync=True, o=True)
134+
zoom = CFloat(0).tag(sync=True, o=True)
135135
layers = List(Instance(Layer)).tag(sync=True, **widget_serialization)
136136
overlays=List(Instance(BaseOverlay)).tag(sync=True, **widget_serialization)
137137
controls=List(Instance(BaseControl)).tag(sync=True, **widget_serialization)
@@ -140,12 +140,14 @@ class Map(DOMWidget):
140140

141141
def __init__(self, center=None, zoom=None, **kwargs):
142142
super().__init__(**kwargs)
143-
144143
if center is not None:
145144
self.center = center
146145
if zoom is not None:
147146
self.zoom = zoom
148147

148+
def __repr__(self):
149+
return f"Map(center={self.center}, zoom={self.zoom})"
150+
149151
def add_layer(self, layer):
150152
self.layers = self.layers + [layer]
151153

ipyopenlayers/tests/test_example.py

Lines changed: 105 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,111 @@
55
# Distributed under the terms of the Modified BSD License.
66

77
import pytest
8+
from traitlets import TraitError
89

9-
from ..Map import ExampleWidget
10-
10+
from ..Map import Map, RasterTileLayer, GeoTIFFTileLayer, VectorTileLayer, GeoJSON, HeatmapLayer, ImageOverlay, VideoOverlay, PopupOverlay, ZoomSlider, FullScreen, ScaleLine, MousePosition
1111

1212
def test_example_creation_blank():
13-
w = ExampleWidget()
14-
assert w.value == 'Hello World'
13+
w = Map()
14+
assert w.zoom == 0
15+
16+
def test_add_layer():
17+
m = Map()
18+
m.add_layer(RasterTileLayer())
19+
assert m.zoom == 0
20+
assert len(m.layers) == 1
21+
22+
def test_add_multiple_layers():
23+
m = Map()
24+
m.add_layer(RasterTileLayer())
25+
m.add_layer(GeoTIFFTileLayer())
26+
m.add_layer(VectorTileLayer())
27+
assert len(m.layers) == 3
28+
29+
def test_remove_layer():
30+
m = Map()
31+
layer = RasterTileLayer()
32+
m.add_layer(layer)
33+
assert len(m.layers) == 1
34+
m.remove_layer(layer)
35+
assert len(m.layers) == 0
36+
37+
def test_clear_layers():
38+
m = Map()
39+
m.add_layer(RasterTileLayer())
40+
m.add_layer(GeoTIFFTileLayer())
41+
m.add_layer(VectorTileLayer())
42+
assert len(m.layers) == 3
43+
m.clear_layers()
44+
assert len(m.layers) == 0
45+
46+
def test_add_overlay():
47+
m = Map()
48+
overlay = ImageOverlay()
49+
m.add_overlay(overlay)
50+
assert len(m.overlays) == 1
51+
52+
def test_remove_overlay():
53+
m = Map()
54+
overlay = ImageOverlay()
55+
m.add_overlay(overlay)
56+
assert len(m.overlays) == 1
57+
m.remove_overlay(overlay)
58+
assert len(m.overlays) == 0
59+
60+
def test_add_control():
61+
m = Map()
62+
control = ZoomSlider()
63+
m.add_control(control)
64+
assert len(m.controls) == 1
65+
66+
def test_remove_control():
67+
m = Map()
68+
control = ZoomSlider()
69+
m.add_control(control)
70+
assert len(m.controls) == 1
71+
m.remove_control(control)
72+
assert len(m.controls) == 0
73+
74+
def test_add_multiple_controls():
75+
m = Map()
76+
m.add_control(ZoomSlider())
77+
m.add_control(FullScreen())
78+
m.add_control(ScaleLine())
79+
m.add_control(MousePosition())
80+
assert len(m.controls) == 4
81+
82+
'''def test_initialize_with_center_and_zoom():
83+
center = [10.0, 20.0]
84+
zoom = 5
85+
m = Map(center=center, zoom=zoom)
86+
assert m.center == center
87+
assert m.zoom == zoom '''
88+
89+
def test_update_center():
90+
m = Map()
91+
new_center = [30.0, 40.0]
92+
m.center = new_center
93+
assert m.center == new_center
94+
95+
def test_update_zoom():
96+
m = Map()
97+
new_zoom = 10
98+
m.zoom = new_zoom
99+
assert m.zoom == new_zoom
100+
101+
def test_adding_invalid_layer_raises_error():
102+
m = Map()
103+
with pytest.raises(TraitError):
104+
m.add_layer("invalid layer")
105+
106+
def test_adding_invalid_overlay_raises_error():
107+
m = Map()
108+
with pytest.raises(TraitError):
109+
m.add_overlay("invalid overlay")
110+
111+
def test_adding_invalid_control_raises_error():
112+
m = Map()
113+
with pytest.raises(TraitError):
114+
m.add_control("invalid control")
115+

0 commit comments

Comments
 (0)