| from __future__ import annotations | |
| import pytest | |
| from pre_commit_hooks.detect_private_key import main | |
| # Input, expected return value | |
| TESTS = ( | |
| (b'-----BEGIN RSA PRIVATE KEY-----', 1), | |
| (b'-----BEGIN DSA PRIVATE KEY-----', 1), | |
| (b'-----BEGIN EC PRIVATE KEY-----', 1), | |
| (b'-----BEGIN OPENSSH PRIVATE KEY-----', 1), | |
| (b'PuTTY-User-Key-File-2: ssh-rsa', 1), | |
| (b'---- BEGIN SSH2 ENCRYPTED PRIVATE KEY ----', 1), | |
| (b'-----BEGIN ENCRYPTED PRIVATE KEY-----', 1), | |
| (b'-----BEGIN OpenVPN Static key V1-----', 1), | |
| (b'ssh-rsa DATA', 0), | |
| (b'ssh-dsa DATA', 0), | |
| # Some arbitrary binary data | |
| (b'\xa2\xf1\x93\x12', 0), | |
| ) | |
| @pytest.mark.parametrize(('input_s', 'expected_retval'), TESTS) | |
| def test_main(input_s, expected_retval, tmpdir): | |
| path = tmpdir.join('file.txt') | |
| path.write_binary(input_s) | |
| assert main([str(path)]) == expected_retval |