test_support_model_name_redaction_3442.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. """A printer named after its model keeps the model in the support package (#3442).
  2. The support package redacts printer names everywhere. A printer named "H3C"
  3. turned every "H3C" into [PRINTER], so the package no longer said which model
  4. it came from. A name that is only a model name is not private and stays.
  5. """
  6. import pytest
  7. from backend.app.services.log_reader import collect_sensitive_strings, sanitize_log_content
  8. @pytest.mark.asyncio
  9. @pytest.mark.parametrize(
  10. ("name", "model"),
  11. [
  12. ("H3C", "H3C"), # a model Bambuddy does not list yet: the row's own model decides
  13. ("x1c", "P1S"), # a listed display name, any case
  14. ("A1mini", "A1"), # spaces do not matter
  15. ("BL-P001", "X1C"), # an internal code
  16. ("Bambu Lab H2D", "H2D"), # the 3MF name
  17. ],
  18. )
  19. async def test_a_model_name_is_not_redacted(db_session, printer_factory, name, model):
  20. await printer_factory(name=name, model=model)
  21. sensitive = await collect_sensitive_strings(db_session)
  22. assert name not in sensitive
  23. @pytest.mark.asyncio
  24. async def test_a_real_name_is_still_redacted(db_session, printer_factory):
  25. await printer_factory(name="Workshop H3C", model="H3C")
  26. sensitive = await collect_sensitive_strings(db_session)
  27. assert sensitive["Workshop H3C"] == "[PRINTER]"
  28. line = "Workshop H3C: model H3C connected"
  29. assert sanitize_log_content(line, sensitive) == "[PRINTER]: model H3C connected"