from logging import LogRecord from django.test import TestCase from oscar.core.logging.formatters import PciFormatter class TestLogging(TestCase): data = [ ("some string", "some string"), ( "here is my bankcard 1000010000000007", "here is my bankcard XXXX-XXXX-XXXX-XXXX", ), ( "here is my bankcard 1000-0100-0000-0007", "here is my bankcard XXXX-XXXX-XXXX-XXXX", ), ( "here is my bankcard 1000 0100 0000 0007", "here is my bankcard XXXX-XXXX-XXXX-XXXX", ), ( "here is my bankcard 10 00 01-00 0-000-0007", "here is my bankcard XXXX-XXXX-XXXX-XXXX", ), ] def test_pci_formatter(self): """PCI logging formatter""" for string, expected in self.data: formatter = PciFormatter() record = LogRecord( name=None, level=None, pathname="", lineno=0, msg=string, args=None, exc_info=None, ) self.assertEqual(formatter.format(record), expected)