def test_get_does_not_download_if_exists(mock_logic):
    with mock.patch(
        'detect_secrets_server.storage.s3.os.path.exists',
        return_value=True,
    ), mock_open():
        mock_logic.get('filename', force_download=False)

    assert not mock_logic.client.download_file.called
    def test_get_success(self, local_file_storage, mock_rootdir):
        with mock_open() as m:
            local_file_storage.get('mock_filename')

            m.assert_called_with(
                '{}/tracked/local/mock_filename.json'.format(
                    mock_rootdir,
                ),
            )
예제 #3
0
    def test_single_non_tracked_git_file_should_work(self):
        with mock.patch(
                'detect_secrets.core.baseline.os.path.isfile',
                return_value=True,
        ), mock_open(
                'Super hidden value "BEEF0123456789a"',
                'detect_secrets.core.secrets_collection.codecs.open',
        ):
            results = self.get_results(path=['will_be_mocked'])

        assert len(results['will_be_mocked']) == 1
예제 #4
0
    def test_single_non_tracked_git_file_should_work(self):
        with mock.patch(
            'detect_secrets.core.baseline.os.path.isfile',
            return_value=True,
        ), mock_open(
            'Super hidden value "0123456789a"',
            'detect_secrets.core.secrets_collection.codecs.open',
        ):
            results = self.get_results('will_be_mocked')

        assert len(results['will_be_mocked']) == 1
예제 #5
0
    def test_reads_old_baseline_from_file(self, mock_merge_baseline):
        with mock_stdin(), mock_open(
            json.dumps({'key': 'value'}),
            'detect_secrets.main.open',
        ) as m:
            assert main('--scan --import old_baseline_file'.split()) == 0
            assert m.call_args[0][0] == 'old_baseline_file'

        mock_merge_baseline.assert_called_once_with(
            {'key': 'value'},
            Any(dict),
        )
예제 #6
0
    def test_put_success(self, file_storage):
        with mock_open() as m:
            file_storage.put('filename', {
                'key': 'value',
            })

            m().write.assert_called_with(
                json.dumps(
                    {
                        'key': 'value',
                    },
                    indent=2,
                    sort_keys=True,
                ))
예제 #7
0
def test_build_automaton():
    word_list = """
        foam\n
    """
    with mock_open(
        data=word_list,
        namespace='detect_secrets.util.open',
    ):
        automaton, word_list_hash = util.build_automaton(word_list='will_be_mocked.txt')
        assert word_list_hash == hashlib.sha1('foam'.encode('utf-8')).hexdigest()
        assert filters.is_found_with_aho_corasick(
            secret='foam_roller',
            automaton=automaton,
        )
        assert not filters.is_found_with_aho_corasick(
            secret='no_words_in_word_list',
            automaton=automaton,
        )
예제 #8
0
    def test_writes_new_baseline_if_modified(self):
        baseline_string = self._create_baseline()
        modified_baseline = json.loads(baseline_string)
        modified_baseline['results']['test_data/files/file_with_secrets.py'][
            0]['line_number'] = 0

        with mock.patch(
            ('detect_secrets.core.secrets_collection.'
             'SecretsCollection._get_baseline_string_from_file'),
                return_value=json.dumps(modified_baseline),
        ), mock_open(
                '',
                'detect_secrets.pre_commit_hook.open',
        ) as m:
            assert_commit_blocked(
                '--baseline will_be_mocked test_data/files/file_with_secrets.py',
            )

            baseline_written = json.loads(m().write.call_args[0][0])

        original_baseline = json.loads(baseline_string)
        assert original_baseline['exclude_regex'] == baseline_written[
            'exclude_regex']
        assert original_baseline['results'] == baseline_written['results']
예제 #9
0
    def test_get_success(self, file_storage):
        with mock_open({'key': 'value'}):
            data = file_storage.get('does_not_matter')

        assert data == {'key': 'value'}