You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

logging_tests.py 1.5KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. from logging import LogRecord
  2. from django.test import TestCase
  3. from oscar.test.decorators import dataProvider
  4. from oscar.core.logging.formatters import PciFormatter
  5. class PciFormatterTests(TestCase):
  6. def setUp(self):
  7. self.formatter = PciFormatter()
  8. def test_a_basic_string_is_unchanged(self):
  9. msg = 'some string'
  10. record = self.create_log_record(msg)
  11. self.assertEquals(msg, self.formatter.format(record))
  12. bankcard_strings = lambda: [('here is my bankcard 1000010000000007', 'here is my bankcard XXXX-XXXX-XXXX-XXXX'),
  13. ('here is my bankcard 1000-0100-0000-0007', 'here is my bankcard XXXX-XXXX-XXXX-XXXX'),
  14. ('here is my bankcard 1000 0100 0000 0007', 'here is my bankcard XXXX-XXXX-XXXX-XXXX'),
  15. ('here is my bankcard 10 00 01-00 0-000-0007', 'here is my bankcard XXXX-XXXX-XXXX-XXXX'),
  16. ]
  17. @dataProvider(bankcard_strings)
  18. def test_a_sensitive_strings_are_filtered(self, sensitive, filtered):
  19. record = self.create_log_record(sensitive)
  20. self.assertEquals(filtered, self.formatter.format(record))
  21. def create_log_record(self, msg):
  22. return LogRecord(name=None,
  23. level=None,
  24. pathname='',
  25. lineno=0,
  26. msg=msg,
  27. args=None,
  28. exc_info=None)