Skip to content

Commit a9c4fa6

Browse files
committed
update unit tests
1 parent 1154ed6 commit a9c4fa6

File tree

3 files changed

+114
-5
lines changed

3 files changed

+114
-5
lines changed

test/test_schema.py

Lines changed: 110 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -560,18 +560,72 @@ def fn(a: FileData) -> list[FileData]:
560560
},
561561
},
562562
"required": [],
563+
"default": {
564+
"type": "object",
565+
"properties": {
566+
"url": {
567+
"anyOf": [{"type": "string"}, {"type": "null"}],
568+
"default": None,
569+
},
570+
"version": {
571+
"anyOf": [{"type": "string"}, {"type": "null"}],
572+
"default": None,
573+
},
574+
"record_locator": {
575+
"anyOf": [
576+
{
577+
"type": "object",
578+
"items": {"key": {"type": "string"}, "value": {}},
579+
},
580+
{"type": "null"},
581+
],
582+
"default": None,
583+
},
584+
"date_created": {
585+
"anyOf": [{"type": "string"}, {"type": "null"}],
586+
"default": None,
587+
},
588+
"date_modified": {
589+
"anyOf": [{"type": "string"}, {"type": "null"}],
590+
"default": None,
591+
},
592+
"date_processed": {
593+
"anyOf": [{"type": "string"}, {"type": "null"}],
594+
"default": None,
595+
},
596+
"permissions_data": {
597+
"anyOf": [
598+
{
599+
"type": "array",
600+
"items": {
601+
"type": "object",
602+
"items": {"key": {"type": "string"}, "value": {}},
603+
},
604+
},
605+
{"type": "null"},
606+
],
607+
"default": None,
608+
},
609+
"filesize_bytes": {
610+
"anyOf": [{"type": "integer"}, {"type": "null"}],
611+
"default": None,
612+
},
613+
},
614+
"required": [],
615+
},
563616
},
564617
"additional_metadata": {
565618
"type": "object",
566619
"items": {"key": {"type": "string"}, "value": {}},
620+
"default": {},
567621
},
568622
"reprocess": {"type": "boolean", "default": False},
569623
"local_download_path": {
570624
"anyOf": [{"type": "string"}, {"type": "null"}],
571625
"default": None,
572626
},
573627
},
574-
"required": ["identifier", "connector_type", "metadata", "additional_metadata"],
628+
"required": ["identifier", "connector_type"],
575629
}
576630
},
577631
}
@@ -657,20 +711,73 @@ def fn(a: FileData) -> list[FileData]:
657711
},
658712
},
659713
"required": [],
714+
"default": {
715+
"type": "object",
716+
"properties": {
717+
"url": {
718+
"anyOf": [{"type": "string"}, {"type": "null"}],
719+
"default": None,
720+
},
721+
"version": {
722+
"anyOf": [{"type": "string"}, {"type": "null"}],
723+
"default": None,
724+
},
725+
"record_locator": {
726+
"anyOf": [
727+
{
728+
"type": "object",
729+
"items": {"key": {"type": "string"}, "value": {}},
730+
},
731+
{"type": "null"},
732+
],
733+
"default": None,
734+
},
735+
"date_created": {
736+
"anyOf": [{"type": "string"}, {"type": "null"}],
737+
"default": None,
738+
},
739+
"date_modified": {
740+
"anyOf": [{"type": "string"}, {"type": "null"}],
741+
"default": None,
742+
},
743+
"date_processed": {
744+
"anyOf": [{"type": "string"}, {"type": "null"}],
745+
"default": None,
746+
},
747+
"permissions_data": {
748+
"anyOf": [
749+
{
750+
"type": "array",
751+
"items": {
752+
"type": "object",
753+
"items": {"key": {"type": "string"}, "value": {}},
754+
},
755+
},
756+
{"type": "null"},
757+
],
758+
"default": None,
759+
},
760+
"filesize_bytes": {
761+
"anyOf": [{"type": "integer"}, {"type": "null"}],
762+
"default": None,
763+
},
764+
},
765+
"required": [],
766+
},
660767
},
661768
"additional_metadata": {
662769
"type": "object",
663770
"items": {"key": {"type": "string"}, "value": {}},
771+
"default": {},
664772
},
665773
"reprocess": {"type": "boolean", "default": False},
666774
"local_download_path": {
667775
"anyOf": [{"type": "string"}, {"type": "null"}],
668776
"default": None,
669777
},
670778
},
671-
"required": ["identifier", "connector_type", "metadata", "additional_metadata"],
779+
"required": ["identifier", "connector_type"],
672780
},
673781
}
674-
675782
assert output_schema == expected_output_schema
676783
assert is_valid_response_dict(output_schema)

test/test_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,5 +136,5 @@ def fn(a: FileData) -> None:
136136

137137
inputs = {"a": {"not": "the", "right": "values"}}
138138

139-
with pytest.raises(KeyError):
139+
with pytest.raises(ValueError):
140140
utils.map_inputs(func=fn, raw_inputs=inputs)

unstructured_platform_plugins/etl_uvicorn/utils.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,9 @@ def map_inputs(func: Callable, raw_inputs: dict[str, Any]) -> dict[str, Any]:
112112
and issubclass(type_data, BaseModel)
113113
):
114114
field_value = raw_inputs[field_name]
115-
raw_inputs[field_name] = type_data.model_validate(field_value.model_dump())
115+
if isinstance(field_value, BaseModel):
116+
field_value = field_value.model_dump()
117+
raw_inputs[field_name] = type_data.model_validate(field_value)
116118
except Exception as e:
117119
raise ValueError(f"failed to map input for field {field_name}: {field_value}") from e
118120
return raw_inputs

0 commit comments

Comments
 (0)