dayrize-usecase/etl/src/tests/parsers/test_materials.py

42 lines
1.3 KiB
Python

"""Test the `parse_materials` function and its helpers"""
from helpers.parsers.materials import (
parse_materials,
clean_material_name,
material_classifier,
)
def test_none():
"""Test None value"""
assert parse_materials(None) is None
def test_amounts():
"""Test a materials string containing amounts"""
assert parse_materials(" 83% Recycled Polyester, 17% Spandex") == ["fabric"]
assert clean_material_name(" 83% Recycled Polyester") == "recycled polyester"
assert material_classifier("recycled polyester") == "fabric"
def test_annotations():
"""Test a materials string containing annotations between parentheses"""
assert parse_materials(" Cardboard (Frame)") == ["cardboard"]
assert clean_material_name(" Cardboard (Frame)") == "cardboard"
assert material_classifier("cardboard") == "cardboard"
def test_keyword():
"""Test a string where the material is a word inside the string"""
assert parse_materials(" Walnut Wood (Frame)") == ["wood"]
assert clean_material_name("walnut wood") == "walnut wood"
assert material_classifier("walnut wood") == "wood"
def test_multiple_materials():
"""Test a string with two different materials"""
assert parse_materials(" MDF (Medium-Density Fiberboard), Metal (Frame)") == [
"metal",
"wood",
]