-
Notifications
You must be signed in to change notification settings - Fork 119
Expand file tree
/
Copy pathtest_fields_request.py
More file actions
63 lines (44 loc) · 2.05 KB
/
test_fields_request.py
File metadata and controls
63 lines (44 loc) · 2.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
from stac_fastapi.extensions.core.fields.request import (
FieldsExtensionGetRequest,
FieldsExtensionPostRequest,
PostFieldsExtension,
)
def test_post_fields_extension_defaults():
"""Test the default instantiation."""
ext = PostFieldsExtension()
assert ext.include == set()
assert ext.exclude == set()
def test_get_field_dict_empty():
"""Test field dict generation with empty/None inputs."""
assert PostFieldsExtension._get_field_dict(None) == {}
assert PostFieldsExtension._get_field_dict(set()) == {}
def test_get_field_dict_simple_fields():
"""Test field dict generation with top-level fields."""
fields = {"id", "type", "geometry"}
result = PostFieldsExtension._get_field_dict(fields)
assert result == {"id": ..., "type": ..., "geometry": ...}
def test_get_field_dict_nested_fields():
"""Test field dict generation with dot-notation nested fields."""
fields = {"properties.datetime", "properties.cloud_cover", "assets.visual"}
result = PostFieldsExtension._get_field_dict(fields)
assert result == {"properties": {"datetime", "cloud_cover"}, "assets": {"visual"}}
def test_get_field_dict_mixed_fields():
"""Test field dict generation with a mix of top-level and nested fields."""
fields = {"id", "properties", "properties.datetime"}
result = PostFieldsExtension._get_field_dict(fields)
assert "id" in result
assert result["id"] is ...
assert "properties" in result
def test_fields_extension_get_request():
"""Test that the GET request properly uses the converter
for comma-separated strings."""
req = FieldsExtensionGetRequest(fields="id,type,properties.datetime")
assert req.fields == ["id", "type", "properties.datetime"]
req_none = FieldsExtensionGetRequest(fields=None)
assert req_none.fields is None
def test_fields_extension_post_request():
"""Test POST request model defaults."""
req = FieldsExtensionPostRequest()
assert isinstance(req.fields, PostFieldsExtension)
assert req.fields.include == set()
assert req.fields.exclude == set()