Skip to content

Commit 3616f8e

Browse files
committed
Add basic test coverage for some _repr_html_ cases #668/#771
1 parent 51781d7 commit 3616f8e

File tree

4 files changed

+75
-0
lines changed

4 files changed

+75
-0
lines changed

tests/rest/models/test_general.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
import re
2+
3+
import dirty_equals
14
import pytest
25

36
from openeo.rest.models.general import (
@@ -68,6 +71,13 @@ def test_federation_missing(self, data, expected):
6871
collections = CollectionListingResponse(data)
6972
assert collections.ext_federation_missing() == expected
7073

74+
def test_repr_html_basic(self):
75+
data = {"collections": [{"id": "S2"}]}
76+
collections = CollectionListingResponse(data)
77+
assert collections._repr_html_() == dirty_equals.IsStr(
78+
regex=r'.*<openeo-collections>.*"collections":\s*\[{"id":\s*"S2".*', regex_flags=re.DOTALL
79+
)
80+
7181

7282
class TestProcessListingResponse:
7383
def test_basic(self):
@@ -108,6 +118,14 @@ def test_federation_missing(self, data, expected):
108118
assert processes.ext_federation_missing() == expected
109119

110120

121+
def test_repr_html_basic(self):
122+
data = {"processes": [{"id": "ndvi"}, {"id": "s2mask"}]}
123+
processes = ProcessListingResponse(data)
124+
assert processes._repr_html_() == dirty_equals.IsStr(
125+
regex=r'.*<openeo-processes>.*"processes":\s*\[{"id":\s*"ndvi".*', regex_flags=re.DOTALL
126+
)
127+
128+
111129
class TestJobListingResponse:
112130
def test_basic(self):
113131
data = {"jobs": [{"id": "job-01"}, {"id": "job-02"}]}
@@ -146,6 +164,13 @@ def test_federation_missing(self, data, expected):
146164
jobs = JobListingResponse(data)
147165
assert jobs.ext_federation_missing() == expected
148166

167+
def test_repr_html_basic(self):
168+
data = {"jobs": [{"id": "job-01"}, {"id": "job-02"}]}
169+
jobs = JobListingResponse(data)
170+
assert jobs._repr_html_() == dirty_equals.IsStr(
171+
regex=r'.*<openeo-data-table>.*"data":\s*\[{"id":\s*"job-01".*', regex_flags=re.DOTALL
172+
)
173+
149174

150175
class TestLogsResponse:
151176
def test_basic(self):
@@ -187,3 +212,10 @@ def test_links(self):
187212
def test_federation_missing(self, data, expected):
188213
logs = LogsResponse(data)
189214
assert logs.ext_federation_missing() == expected
215+
216+
def test_repr_html_basic(self):
217+
data = {"logs": [{"id": "log-01", "level": "info", "message": "hello"}]}
218+
logs = LogsResponse(data)
219+
assert logs._repr_html_() == dirty_equals.IsStr(
220+
regex=r'.*<openeo-logs>.*"logs":\s*\[{"id":\s*"log-01".*', regex_flags=re.DOTALL
221+
)

tests/rest/test_connection.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
from contextlib import nullcontext
1111
from pathlib import Path
1212

13+
import dirty_equals
1314
import pytest
1415
import requests
1516
import requests_mock
@@ -3601,6 +3602,29 @@ def test_list_collections_extra_metadata(requests_mock, caplog):
36013602
assert "Partial collection listing: missing federation components: ['oeob']." in caplog.text
36023603

36033604

3605+
def test_collection_metadata_repr_html(requests_mock):
3606+
requests_mock.get(
3607+
API_URL,
3608+
json={
3609+
"api_version": "1.0.0",
3610+
"federation": {"b1": {"url": "https://b1.test/"}, "b2": {"url": "https://b2.test/"}},
3611+
},
3612+
)
3613+
requests_mock.get(
3614+
API_URL + "collections/S2",
3615+
json={"id": "S2", "federation:backends": ["b2"]},
3616+
)
3617+
con = Connection(API_URL)
3618+
metadata = con.describe_collection("S2")
3619+
result = metadata._repr_html_()
3620+
assert result == dirty_equals.IsStr(
3621+
regex=r'.*<openeo-collection>.*"federation":.*"https://b1.test/".*', regex_flags=re.DOTALL
3622+
)
3623+
assert result == dirty_equals.IsStr(
3624+
regex=r'.*<openeo-collection>.*"federation:backends":\s*\["b2"\].*', regex_flags=re.DOTALL
3625+
)
3626+
3627+
36043628
def test_describe_collection(requests_mock):
36053629
requests_mock.get(API_URL, json={"api_version": "1.0.0"})
36063630
requests_mock.get(

tests/rest/test_udp.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
import re
12
import warnings
23

4+
import dirty_equals
35
import pytest
46

57
import openeo
@@ -27,6 +29,14 @@ def test_describe(con100, requests_mock, test_data):
2729
assert details == expected_details
2830

2931

32+
def test_repr_html(con100, requests_mock):
33+
requests_mock.get(API_URL + "/process_graphs/add1", json={"id": "add1"})
34+
udp = con100.user_defined_process("add1")
35+
assert udp._repr_html_() == dirty_equals.IsStr(
36+
regex=r'.*<openeo-process>.*"process":\s*{"id":\s*"add1".*', regex_flags=re.DOTALL
37+
)
38+
39+
3040
def test_store_simple(con100, requests_mock):
3141
requests_mock.get(API_URL + "/processes", json={"processes": [{"id": "add"}]})
3242

tests/test_metadata.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,15 @@
4343
)
4444

4545

46+
class TestCollectionMetadata:
47+
48+
def test_repr_html_basic(self):
49+
metadata = CollectionMetadata({"hello": "world"})
50+
assert metadata._repr_html_() == dirty_equals.IsStr(
51+
regex=r'.*<openeo-collection>.*"hello":\s*"world".*</openeo-collection>.*', regex_flags=re.DOTALL
52+
)
53+
54+
4655
def test_metadata_get():
4756
metadata = CollectionMetadata({"foo": "bar", "very": {"deeply": {"nested": {"path": {"to": "somewhere"}}}}})
4857
assert metadata.get("foo") == "bar"

0 commit comments

Comments
 (0)