"""Test the `parse_materials` function and its helpers""" from helpers.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", ]