Skip to content

Commit 81a5e56

Browse files
committed
test / parser / properties / correct API breaking changes
1 parent e503ec7 commit 81a5e56

File tree

1 file changed

+76
-32
lines changed

1 file changed

+76
-32
lines changed

tests/test_parser/test_properties/test_init.py

Lines changed: 76 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -626,16 +626,16 @@ def test_property_from_data_ref_not_found(self, mocker):
626626
schemas = Schemas()
627627

628628
prop, new_schemas = property_from_data(
629-
name=name, required=required, data=data, schemas=schemas, parent_name="parent"
629+
name=name,
630+
required=required,
631+
data=data,
632+
schemas=schemas,
633+
parent_name="parent",
634+
lazy_references=dict(),
630635
)
631636

632-
from_ref.assert_called_with(data.ref)
633-
assert isinstance(prop, LazyReferencePropertyProxy)
634-
assert prop.resolve() == None
635-
with pytest.raises(RuntimeError):
636-
prop.resolve(False)
637-
with pytest.raises(RuntimeError):
638-
prop.template
637+
from_ref.assert_called_once_with(data.ref)
638+
assert prop == PropertyError(data=data, detail="Could not find reference in parsed models or enums.")
639639
assert schemas == new_schemas
640640

641641
def test_property_from_data_string(self, mocker):
@@ -708,7 +708,12 @@ def test_property_from_data_array(self, mocker):
708708

709709
assert response == build_list_property.return_value
710710
build_list_property.assert_called_once_with(
711-
data=data, name=name, required=required, schemas=schemas, parent_name="parent"
711+
data=data,
712+
name=name,
713+
required=required,
714+
schemas=schemas,
715+
parent_name="parent",
716+
lazy_references=dict(),
712717
)
713718

714719
def test_property_from_data_object(self, mocker):
@@ -727,7 +732,12 @@ def test_property_from_data_object(self, mocker):
727732

728733
assert response == build_model_property.return_value
729734
build_model_property.assert_called_once_with(
730-
data=data, name=name, required=required, schemas=schemas, parent_name="parent"
735+
data=data,
736+
name=name,
737+
required=required,
738+
schemas=schemas,
739+
parent_name="parent",
740+
lazy_references=dict(),
731741
)
732742

733743
def test_property_from_data_union(self, mocker):
@@ -749,7 +759,12 @@ def test_property_from_data_union(self, mocker):
749759

750760
assert response == build_union_property.return_value
751761
build_union_property.assert_called_once_with(
752-
data=data, name=name, required=required, schemas=schemas, parent_name="parent"
762+
data=data,
763+
name=name,
764+
required=required,
765+
schemas=schemas,
766+
parent_name="parent",
767+
lazy_references=dict(),
753768
)
754769

755770
def test_property_from_data_unsupported_type(self, mocker):
@@ -804,7 +819,12 @@ def test_build_list_property_no_items(self, mocker):
804819
schemas = properties.Schemas()
805820

806821
p, new_schemas = properties.build_list_property(
807-
name=name, required=required, data=data, schemas=schemas, parent_name="parent"
822+
name=name,
823+
required=required,
824+
data=data,
825+
schemas=schemas,
826+
parent_name="parent",
827+
lazy_references=dict(),
808828
)
809829

810830
assert p == PropertyError(data=data, detail="type array must have items defined")
@@ -827,14 +847,24 @@ def test_build_list_property_invalid_items(self, mocker):
827847
)
828848

829849
p, new_schemas = properties.build_list_property(
830-
name=name, required=required, data=data, schemas=schemas, parent_name="parent"
850+
name=name,
851+
required=required,
852+
data=data,
853+
schemas=schemas,
854+
parent_name="parent",
855+
lazy_references=dict(),
831856
)
832857

833858
assert p == PropertyError(data="blah", detail=f"invalid data in items of array {name}")
834859
assert new_schemas == second_schemas
835860
assert schemas != new_schemas, "Schema was mutated"
836861
property_from_data.assert_called_once_with(
837-
name=f"{name}_item", required=True, data=data.items, schemas=schemas, parent_name="parent"
862+
name=f"{name}_item",
863+
required=True,
864+
data=data.items,
865+
schemas=schemas,
866+
parent_name="parent",
867+
lazy_references=dict(),
838868
)
839869

840870
def test_build_list_property(self, mocker):
@@ -855,15 +885,25 @@ def test_build_list_property(self, mocker):
855885
mocker.patch("openapi_python_client.utils.to_valid_python_identifier", return_value=name)
856886

857887
p, new_schemas = properties.build_list_property(
858-
name=name, required=required, data=data, schemas=schemas, parent_name="parent"
888+
name=name,
889+
required=required,
890+
data=data,
891+
schemas=schemas,
892+
parent_name="parent",
893+
lazy_references=dict(),
859894
)
860895

861896
assert isinstance(p, properties.ListProperty)
862897
assert p.inner_property == property_from_data.return_value[0]
863898
assert new_schemas == second_schemas
864899
assert schemas != new_schemas, "Schema was mutated"
865900
property_from_data.assert_called_once_with(
866-
name=f"{name}_item", required=True, data=data.items, schemas=schemas, parent_name="parent"
901+
name=f"{name}_item",
902+
required=True,
903+
data=data.items,
904+
schemas=schemas,
905+
parent_name="parent",
906+
lazy_references=dict(),
867907
)
868908

869909

@@ -1019,10 +1059,18 @@ def test_build_schemas(mocker):
10191059

10201060
build_model_property.assert_has_calls(
10211061
[
1022-
mocker.call(data=in_data["1"], name="1", schemas=Schemas(), required=True, parent_name=None),
1023-
mocker.call(data=in_data["2"], name="2", schemas=schemas_1, required=True, parent_name=None),
1024-
mocker.call(data=in_data["3"], name="3", schemas=schemas_2, required=True, parent_name=None),
1025-
mocker.call(data=in_data["3"], name="3", schemas=schemas_2, required=True, parent_name=None),
1062+
mocker.call(
1063+
data=in_data["1"], name="1", schemas=Schemas(), required=True, parent_name=None, lazy_references=dict()
1064+
),
1065+
mocker.call(
1066+
data=in_data["2"], name="2", schemas=schemas_1, required=True, parent_name=None, lazy_references=dict()
1067+
),
1068+
mocker.call(
1069+
data=in_data["3"], name="3", schemas=schemas_2, required=True, parent_name=None, lazy_references=dict()
1070+
),
1071+
mocker.call(
1072+
data=in_data["3"], name="3", schemas=schemas_2, required=True, parent_name=None, lazy_references=dict()
1073+
),
10261074
]
10271075
)
10281076
# schemas_3 was the last to come back from build_model_property, but it should be ignored because it's an error
@@ -1118,6 +1166,7 @@ def test_build_model_property(additional_properties_schema, expected_additional_
11181166
schemas=schemas,
11191167
required=True,
11201168
parent_name="parent",
1169+
lazy_references=dict(),
11211170
)
11221171

11231172
assert new_schemas != schemas
@@ -1156,11 +1205,7 @@ def test_build_model_property_bad_prop():
11561205
schemas = Schemas(models={"OtherModel": None})
11571206

11581207
err, new_schemas = build_model_property(
1159-
data=data,
1160-
name="prop",
1161-
schemas=schemas,
1162-
required=True,
1163-
parent_name=None,
1208+
data=data, name="prop", schemas=schemas, required=True, parent_name=None, lazy_references=dict()
11641209
)
11651210

11661211
assert new_schemas == schemas
@@ -1185,6 +1230,7 @@ def test_build_model_property_bad_additional_props():
11851230
schemas=schemas,
11861231
required=True,
11871232
parent_name=None,
1233+
lazy_references=dict(),
11881234
)
11891235

11901236
assert new_schemas == schemas
@@ -1251,8 +1297,8 @@ def test__is_local_reference():
12511297
assert _is_local_reference(ref) == expected_result
12521298

12531299

1254-
def test__reference_name():
1255-
from openapi_python_client.parser.properties import _reference_name
1300+
def test__reference_pointer_name():
1301+
from openapi_python_client.parser.properties import _reference_pointer_name
12561302

12571303
data_set = [
12581304
("#/foobar", "foobar"),
@@ -1261,7 +1307,7 @@ def test__reference_name():
12611307

12621308
for data, expected_result in data_set:
12631309
ref = oai.Reference.construct(ref=data)
1264-
assert _reference_name(ref) == expected_result
1310+
assert _reference_pointer_name(ref) == expected_result
12651311

12661312

12671313
def test__reference_model_name():
@@ -1440,6 +1486,8 @@ def test_lazy_proxy_reference_unresolved():
14401486
assert lazy_reference_proxy.get_type_string(no_optional=True) == "LazyReferencePropertyProxy"
14411487
assert lazy_reference_proxy.get_imports(prefix="..") == set()
14421488
assert lazy_reference_proxy.resolve() == None
1489+
assert lazy_reference_proxy.required == False
1490+
assert lazy_reference_proxy.nullable == True
14431491
with pytest.raises(RuntimeError):
14441492
lazy_reference_proxy.resolve(False)
14451493
with pytest.raises(RuntimeError):
@@ -1448,10 +1496,6 @@ def test_lazy_proxy_reference_unresolved():
14481496
copy.deepcopy(lazy_reference_proxy)
14491497
with pytest.raises(RuntimeError):
14501498
lazy_reference_proxy.name
1451-
with pytest.raises(RuntimeError):
1452-
lazy_reference_proxy.required
1453-
with pytest.raises(RuntimeError):
1454-
lazy_reference_proxy.nullable
14551499
with pytest.raises(RuntimeError):
14561500
lazy_reference_proxy.default
14571501
with pytest.raises(RuntimeError):

0 commit comments

Comments
 (0)