Repository navigation
Expand file tree
/
Copy pathtest_resolver.py
More file actions
68 lines (48 loc) · 2.44 KB
/
Copy pathtest_resolver.py
File metadata and controls
68 lines (48 loc) · 2.44 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
64
65
66
67
68
import pytest
from rpdk.core.jsonutils.resolver import MULTIPLE, ContainerType, ResolvedType
from rpdk.java.resolver import PRIMITIVE_TYPES, translate_type
RESOLVED_TYPES = [
(ResolvedType(ContainerType.PRIMITIVE, item_type), formats["default"])
for item_type, formats in PRIMITIVE_TYPES.items()
]
RESOLVED_INTEGER_FORMATS = [
(
ResolvedType(ContainerType.PRIMITIVE, "integer", "int64"),
PRIMITIVE_TYPES["integer"]["int64"],
),
(
ResolvedType(ContainerType.PRIMITIVE, "integer", "int32"),
PRIMITIVE_TYPES["integer"]["int32"],
),
]
def test_translate_type_model_passthrough():
item_type = object()
traslated = translate_type(ResolvedType(ContainerType.MODEL, item_type))
assert traslated is item_type
@pytest.mark.parametrize("resolved_type,native_type", RESOLVED_TYPES)
def test_translate_type_primitive(resolved_type, native_type):
assert translate_type(resolved_type) == native_type
@pytest.mark.parametrize("resolved_type,native_type", RESOLVED_TYPES)
def test_translate_type_dict(resolved_type, native_type):
traslated = translate_type(ResolvedType(ContainerType.DICT, resolved_type))
assert traslated == f"Map<String, {native_type}>"
def test_translate_type_multiple():
assert translate_type(ResolvedType(ContainerType.MULTIPLE, MULTIPLE)) == "Object"
@pytest.mark.parametrize("resolved_type,native_type", RESOLVED_TYPES)
def test_translate_type_list(resolved_type, native_type):
traslated = translate_type(ResolvedType(ContainerType.LIST, resolved_type))
assert traslated == f"List<{native_type}>"
@pytest.mark.parametrize("resolved_type,native_type", RESOLVED_TYPES)
def test_translate_type_set(resolved_type, native_type):
traslated = translate_type(ResolvedType(ContainerType.SET, resolved_type))
assert traslated == f"Set<{native_type}>"
@pytest.mark.parametrize("resolved_type,_java_type", RESOLVED_TYPES)
def test_translate_type_unknown(resolved_type, _java_type):
with pytest.raises(ValueError):
translate_type(ResolvedType("foo", resolved_type))
@pytest.mark.parametrize("resolved_type,java_type", RESOLVED_INTEGER_FORMATS)
def test_translate_type_integer_formats(resolved_type, java_type):
assert translate_type(resolved_type) == java_type
def test_translate_type_unavailable_format():
resolved_type = ResolvedType(ContainerType.PRIMITIVE, "integer", "int128")
assert translate_type(resolved_type) == PRIMITIVE_TYPES["integer"]["default"]