Skip to content

Commit 1366019

Browse files
fix: missing label for "extra-label" error (#1772)
- fixes #1771
1 parent f49d449 commit 1366019

2 files changed

Lines changed: 8 additions & 7 deletions

File tree

frictionless/resource/__spec__/test_validate_schema.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ def test_resource_validate_invalid_resource():
3838

3939
def test_resource_validate_schema_extra_headers_and_cells():
4040
schema = Schema.from_descriptor({"fields": [{"name": "id", "type": "integer"}]})
41+
# resource with extra label "name"
4142
resource = TableResource(path="data/table.csv", schema=schema)
4243
report = resource.validate()
4344
assert report.flatten(["rowNumber", "fieldNumber", "type"]) == [
@@ -46,6 +47,10 @@ def test_resource_validate_schema_extra_headers_and_cells():
4647
[3, 2, "extra-cell"],
4748
]
4849

50+
extra_label_error = report.task.errors[0]
51+
assert extra_label_error.label == "name"
52+
assert '"name"' in extra_label_error.message
53+
4954

5055
def test_resource_validate_schema_multiple_errors():
5156
source = "data/schema-errors.csv"

frictionless/table/header.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -179,13 +179,9 @@ def _get_missing_fields(self) -> List[Tuple[int, Field]]:
179179

180180
def required_and_missing(field: Field) -> bool:
181181
required = field.required or (
182-
field.schema is not None
183-
and field.name in field.schema.primary_key
184-
)
185-
return (
186-
required
187-
and self.__normalize(field.name) not in normalized_labels
182+
field.schema is not None and field.name in field.schema.primary_key
188183
)
184+
return required and self.__normalize(field.name) not in normalized_labels
189185

190186
missing = [field for field in fields if required_and_missing(field)]
191187

@@ -236,7 +232,7 @@ def __process(self):
236232
note="",
237233
labels=list(map(str, labels)),
238234
row_numbers=self.__row_numbers,
239-
label="",
235+
label=label,
240236
field_name="",
241237
field_number=extra_start + offset,
242238
)

0 commit comments

Comments
 (0)