Skip to content

Commit f52427b

Browse files
committed
prepare for nested object
1 parent 0c95423 commit f52427b

File tree

4 files changed

+23
-3
lines changed

4 files changed

+23
-3
lines changed

.pylintrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ disable=
1616

1717
[BASIC]
1818

19-
good-names=e,ex,f,fp,i,j,k,n,_
19+
good-names=e,ex,f,fp,i,j,k,v,n,_
2020

2121
[FORMAT]
2222

python/rpdk/typescript/codegen.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from rpdk.core.jsonutils.resolver import ContainerType, resolve_models
1111
from rpdk.core.plugin_base import LanguagePlugin
1212

13-
from .resolver import translate_type
13+
from .resolver import contains_model, translate_type
1414
from .utils import safe_reserved
1515

1616
LOG = logging.getLogger(__name__)
@@ -41,6 +41,7 @@ def __init__(self):
4141
trim_blocks=True, lstrip_blocks=True, keep_trailing_newline=True
4242
)
4343
self.env.filters["translate_type"] = translate_type
44+
self.env.filters["contains_model"] = contains_model
4445
self.env.filters["safe_reserved"] = safe_reserved
4546
self.env.globals["ContainerType"] = ContainerType
4647
self.namespace = None

python/rpdk/typescript/resolver.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,9 @@ def translate_type(resolved_type):
2626
return f"Set<{item_type}>"
2727

2828
raise ValueError(f"Unknown container type {resolved_type.container}")
29+
30+
31+
def contains_model(resolved_type):
32+
if resolved_type.container == ContainerType.LIST:
33+
return contains_model(resolved_type.type)
34+
return resolved_type.container == ContainerType.MODEL

tests/plugin/resolver_test.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import pytest
22
from rpdk.core.jsonutils.resolver import ContainerType, ResolvedType
3-
from rpdk.typescript.resolver import PRIMITIVE_TYPES, translate_type
3+
from rpdk.typescript.resolver import PRIMITIVE_TYPES, contains_model, translate_type
44

55
RESOLVED_TYPES = [
66
(ResolvedType(ContainerType.PRIMITIVE, item_type), native_type)
@@ -41,3 +41,16 @@ def test_translate_type_set(resolved_type, native_type):
4141
def test_translate_type_unknown(resolved_type, _typescript_type):
4242
with pytest.raises(ValueError):
4343
translate_type(ResolvedType("foo", resolved_type))
44+
45+
46+
@pytest.mark.parametrize("resolved_type,_native_type", RESOLVED_TYPES)
47+
def test_contains_model_list_containing_primitive(resolved_type, _native_type):
48+
assert contains_model(ResolvedType(ContainerType.LIST, resolved_type)) is False
49+
50+
51+
def test_contains_model_list_containing_model():
52+
resolved_type = ResolvedType(
53+
ContainerType.LIST,
54+
ResolvedType(ContainerType.LIST, ResolvedType(ContainerType.MODEL, "Foo")),
55+
)
56+
assert contains_model(resolved_type) is True

0 commit comments

Comments
 (0)