Upstream PR: mikedh/trimesh#2557
OBJ/MTL optional material properties needed round-trip coverage through a zipped resolver path. The test initially stored exported OBJ text in ZipResolver as a string, which conflicted with the resolver's bytes return annotation under pytest-beartype.
Resolver storage and retrieval should keep byte-oriented data as bytes. Tests for material round-trips should validate optional property preservation without weakening type checks.
The exported OBJ text is encoded before being stored in ZipResolver, aligning the test with the resolver contract while preserving the material-property round-trip assertions.
- Focused round-trip test under
pytest-beartype-> 1 passed - Related OBJ tests -> 3 passed
- Full
tests/test_obj.pywith optional dependencies -> 41 passed ruff checkandgit diff --check-> passed