def test_path_no_match(self):
     signature = RegexSignature(
         'path', 'GitHub Hub command-line client configuration file',
         'config/hub$')
     self.assertFalse(
         signature.match('/path/to/config/hub/more', '').is_match)
     self.assertFalse(signature.match('/path/to/confi/hub', '').is_match)
 def test_extension_match(self):
     signature = RegexSignature('extension',
                                'Potential cryptographic private key',
                                '^key(pair)?$')
     self.assertTrue(signature.match('/path/to/key.key', '').is_match)
     self.assertTrue(signature.match('/path/to/key.keypair', '').is_match)
     self.assertTrue(signature.match('/path/to/.key.keypair', '').is_match)
 def test_filename_no_match(self):
     signature = RegexSignature(
         'filename', 'git-credential-store helper credentials file',
         r'^\.?git-credentials$')
     self.assertFalse(
         signature.match('/path/to/git-credentials-1', '').is_match)
     self.assertFalse(signature.match('/path/to/.git', '').is_match)
 def test_extension_no_match(self):
     signature = RegexSignature('extension',
                                'Potential cryptographic private key',
                                '^key(pair)?$')
     self.assertFalse(signature.match('/path/to/file.txt', '').is_match)
     self.assertFalse(signature.match('/path/to/file', '').is_match)
     self.assertFalse(signature.match('/path/to/.file', '').is_match)
 def test_contents_no_match(self):
     signature = RegexSignature(
         'contents', 'Contains a private ke',
         '-----BEGIN (EC|RSA|DSA|OPENSSH) PRIVATE KEY----')
     self.assertFalse(
         signature.match('/path/to/key', '-----BEGIN PRIVATE KEY-----'))
     self.assertFalse(signature.match('/path/to/.git', ''))
    def test_contents_matched_extended(self):
        signature = RegexSignature('contents', 'Facebook access token',
                                   'EAACEdEose0cBA[0-9A-Za-z]+')

        result = signature.match(
            'path/to/config.py', ''''
        secret_key = 'EAACEdEose0cBAsjsjs'
        ''')

        self.assertTrue(result.is_match)
        self.assertEqual('EAACEdEose0cBAsjsjs', result.matched_value)
 def test_invalid_regex(self):
     with self.assertRaises(TypeError):
         RegexSignature(
             'contents', 'Facebook Secret Key',
             '(?i)(facebook|fb)(.{0,20})?(?-i)['
             '\"][0-9a-f]{32}['
             '\"]')
    def test_contents_match(self):
        signature = RegexSignature(
            'contents', 'Contains a private key',
            '-----BEGIN (EC|RSA|DSA|OPENSSH) PRIVATE KEY----')
        self.assertTrue(
            signature.match(
                '/path/to/key', '''
        -----BEGIN RSA PRIVATE KEY-----
MIICWgIBAAKBgF0VVPpf0Z/xx2Z4tj9SZCE7fF9d9VquC2F6zCyJH4/6EqbR/tWg
IVhXJJRYzQui05AC4dZUB/6MJdLUpC/x3MaAl4N3CH1AHz1I82OQUuM1fA2xakM8
LuP12mcaK2pXZ+Q/1VatGmYzP52CxWD1M+XsdfUE/es0M5eU/vOZ1dhXAgMBAAEC
gYAB45bv5dXpOwzi5Xw9WLyzd/OUM+Hwzytn9QgDt1yunVKXlBdp2nASzOHvKMYw
gENu3sAai2YGIm36E1qppmzmjBIRSKvgPJKj0o+RsimtKuodW4iyLn/vJTmggyBb
AdQYp358oHItd6LkmhawPiv+JidDdj+aR7dtd6qXI8Y9UQJBAK36oSMTq9VqEGmc
D6CBJOZjFbWaVFQmvqldCTsBDywX7FyOD5JAlqfgWzXziJ2jWH2uyElITDo/qEE5
sRQAK+UCQQCI93l52CfybkQfvzfi2fTcIcU8ecGit180eS7C5WwSdl8i9mmSa1fb
X/upu3QWE2C/u7Mt1qBDJugv9TmZM8eLAkA3YxLpl9mcl6eh940CDBszPVgr+HXg
VHVedb/6iNvLrdIRpShP50APMd3XzzAu/1GssXgR3HJoGNv35+X3+BYBAkBLHRT0
elOmA0y+8FoQwaEkXCzTtp43w0Kl/1NitPjowxv3i5VoJBBBkcjtU40dUjE71Q81
sz+etCafrmeRGjFzAkAbSUeDF9K9SO1XyPc5G3WXzaYmOkhGs7il+H8jGKlEizBd
PiZodLoJ21/7Ph35BYzS43dtL7IrLAP/TarvYbeg
-----END RSA PRIVATE KEY-----
        ''').is_match)
 def test_invalid(self):
     signature = RegexSignature('random', 'Random', '')
     self.assertFalse(signature.match('', '').is_match)
 def test_path_match(self):
     signature = RegexSignature(
         'path', 'GitHub Hub command-line client configuration file',
         'config/hub$')
     self.assertTrue(signature.match('/path/to/config/hub', ''))
 def test_filename_match(self):
     signature = RegexSignature(
         'filename', 'git-credential-store helper credentials file',
         '^\.?git-credentials$')
     self.assertTrue(signature.match('/path/to/.git-credentials', ''))
     self.assertTrue(signature.match('/path/to/git-credentials', ''))