Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
giswqs
GitHub Repository: giswqs/geemap
Path: blob/master/tests/test_ee_tile_layers.py
2313 views
1
"""Tests for `ee_tile_layers` package."""
2
3
import unittest
4
from unittest.mock import patch
5
6
import box
7
import ee
8
9
from geemap import ee_tile_layers
10
from tests import fake_ee
11
12
13
@patch.object(ee, "Feature", fake_ee.Feature)
14
@patch.object(ee, "FeatureCollection", fake_ee.FeatureCollection)
15
@patch.object(ee, "Geometry", fake_ee.Geometry)
16
@patch.object(ee, "Image", fake_ee.Image)
17
@patch.object(ee, "ImageCollection", fake_ee.ImageCollection)
18
class TestEETileLayers(unittest.TestCase):
19
"""Tests for `ee_tile_layers` package."""
20
21
def test_validate_vis_params_none(self):
22
vis_params = None
23
self.assertEqual(ee_tile_layers._validate_vis_params(vis_params), {})
24
25
def test_validate_vis_params_invalid_palette_type(self):
26
vis_params = {"min": 0.1, "palette": {}}
27
with self.assertRaisesRegex(ValueError, "palette must be"):
28
ee_tile_layers._validate_vis_params(vis_params)
29
30
def test_validate_vis_params_box_palette_no_default(self):
31
vis_params = {"min": 0.1, "palette": box.Box({"unknown-key": 2})}
32
with self.assertRaisesRegex(ValueError, "Box object is invalid"):
33
ee_tile_layers._validate_vis_params(vis_params)
34
35
def test_validate_vis_params_box_palette(self):
36
vis_params = {"min": 0.1, "palette": box.Box({"default": ["#00ff00"]})}
37
self.assertEqual(
38
ee_tile_layers._validate_vis_params(vis_params),
39
{"min": 0.1, "palette": ["#00ff00"]},
40
)
41
42
def test_validate_vis_params_str_palette(self):
43
vis_params = {"min": 0.1, "palette": "00FF00"}
44
self.assertEqual(
45
ee_tile_layers._validate_vis_params(vis_params),
46
{"min": 0.1, "palette": "#00ff00"},
47
)
48
49
def test_validate_vis_params_list_palette(self):
50
vis_params = {"min": 0.1, "palette": ["#00ff00"]}
51
self.assertEqual(
52
ee_tile_layers._validate_vis_params(vis_params),
53
{"min": 0.1, "palette": ["#00ff00"]},
54
)
55
56
def test_get_tile_url_format_geometry(self):
57
self.assertEqual(
58
ee_tile_layers._get_tile_url_format(ee.Geometry(""), {}), "url-format"
59
)
60
self.assertEqual(
61
ee_tile_layers._get_tile_url_format(ee.Feature(""), {}), "url-format"
62
)
63
self.assertEqual(
64
ee_tile_layers._get_tile_url_format(ee.FeatureCollection([]), {}),
65
"url-format",
66
)
67
68
def test_get_tile_url_format_image(self):
69
self.assertEqual(
70
ee_tile_layers._get_tile_url_format(ee.Image(), {}), "url-format"
71
)
72
73
def test_get_tile_url_format_imagecollection(self):
74
self.assertEqual(
75
ee_tile_layers._get_tile_url_format(ee.ImageCollection([]), {}),
76
"url-format",
77
)
78
79
def test_get_tile_url_format_invalid_type(self):
80
with self.assertRaisesRegex(AttributeError, "Cannot add an object of type str"):
81
ee_tile_layers._get_tile_url_format("some-invalid-type", {})
82
83
def test_ee_leaflet_tile_layer(self):
84
layer = ee_tile_layers.EELeafletTileLayer(
85
ee_object=ee.Image(1),
86
vis_params={"min": 42, "palette": "012345"},
87
name="a-name",
88
shown=False,
89
opacity=0.5,
90
)
91
# self.assertEqual(layer.vis_params, {"min": 42, "palette": "#012345"})
92
self.assertEqual(layer.url_format, "url-format")
93
94
def test_ee_folium_tile_layer(self):
95
layer = ee_tile_layers.EEFoliumTileLayer(
96
ee_object=ee.Image(1),
97
vis_params={"min": 42, "palette": "012345"},
98
name="a-name",
99
shown=False,
100
opacity=0.5,
101
)
102
# self.assertEqual(layer.vis_params, {"min": 42, "palette": "#012345"})
103
self.assertEqual(layer.url_format, "url-format")
104
105
106
if __name__ == "__main__":
107
unittest.main()
108
109