test_filament_finish.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. """Finish words in filament wording, for slot reuse and generic presets."""
  2. import pytest
  3. from backend.app.utils.filament_finish import different_finish, finish_generic_id, finishes
  4. @pytest.mark.parametrize(
  5. ("text", "expected"),
  6. [
  7. ("PLA Silk+", ["silk"]),
  8. ("Silk Multi-Color", ["silk"]),
  9. ("Bambu PETG HF", ["hf"]),
  10. ("PLA High Speed", ["high speed"]),
  11. ("Sunlu PLA", []),
  12. (None, []),
  13. ],
  14. )
  15. def test_finishes(text, expected):
  16. assert finishes(text) == expected
  17. @pytest.mark.parametrize(
  18. ("spool", "slot", "differ"),
  19. [
  20. ("PLA Silk", "PLA Matte", True),
  21. ("PLA Silk+", "Bambu PLA Silk", False),
  22. ("PETG Basic", "PETG HF", True),
  23. ("PLA", "PLA Matte", False),
  24. ("PLA Silk", "", False),
  25. ],
  26. )
  27. def test_different_finish(spool, slot, differ):
  28. assert different_finish(spool, slot) is differ
  29. @pytest.mark.parametrize(
  30. ("material", "text", "generic"),
  31. [
  32. ("PLA", "PLA Silk+", "GFL96"),
  33. ("PLA", "Silk Multi-Color", "GFL96"),
  34. ("PETG", "PETG HF", "GFG96"),
  35. ("PLA", "PLA Matte", ""),
  36. ("PLA", "", ""),
  37. ],
  38. )
  39. def test_finish_generic_id(material, text, generic):
  40. assert finish_generic_id(material, text) == generic