示例#1
0
    def test_reads_non_existed_baseline_from_file(
        self,
        mock_merge_baseline,
        mock_baseline_initialize,
    ):
        fnf_error = FileNotFoundError()
        fnf_error.errno = 2
        with mock_stdin(), mock.patch(
                'detect_secrets.main._read_from_file',
                side_effect=fnf_error,
        ) as m_read, mock.patch(
                'detect_secrets.main.write_baseline_to_file', ) as m_write:
            assert main('scan --update non_existed_baseline_file'.split()) == 0
            assert m_read.call_args[0][0] == 'non_existed_baseline_file'
            assert m_write.call_args[1][
                'filename'] == 'non_existed_baseline_file'
            assert m_write.call_args[1]['data'] == Any(dict)

        mock_baseline_initialize.assert_called_once_with(
            plugins=Any(tuple),
            exclude_files_regex='^non_existed_baseline_file$',
            exclude_lines_regex=None,
            path='.',
            should_scan_all_files=False,
            output_raw=False,
            output_verified_false=False,
            word_list_file=None,
            word_list_hash=None,
        )
        mock_merge_baseline.assert_not_called()
示例#2
0
    def test_scan_with_rootdir(self, mock_baseline_initialize):
        with mock_stdin():
            assert wrap_detect_secrets_main('scan test_data') == 0

        mock_baseline_initialize.assert_called_once_with(
            plugins=Any(tuple),
            custom_plugin_paths=Any(tuple),
            exclude_files_regex=None,
            exclude_lines_regex=None,
            path=['test_data'],
            should_scan_all_files=False,
            word_list_file=None,
            word_list_hash=None,
        )
示例#3
0
    def test_scan_with_all_files_flag(self, mock_baseline_initialize):
        with mock_stdin():
            assert wrap_detect_secrets_main('scan --all-files') == 0

        mock_baseline_initialize.assert_called_once_with(
            plugins=Any(tuple),
            custom_plugin_paths=Any(tuple),
            exclude_files_regex=None,
            exclude_lines_regex=None,
            path='.',
            should_scan_all_files=True,
            word_list_file=None,
            word_list_hash=None,
        )
示例#4
0
    def test_reads_old_baseline_from_file(self, mock_merge_baseline):
        with mock_stdin(), mock.patch(
                'detect_secrets.main._read_from_file',
                return_value={'key': 'value'},
        ) as m_read, mock.patch(
                'detect_secrets.main._write_to_file', ) as m_write:
            assert main('scan --update old_baseline_file'.split()) == 0
            assert m_read.call_args[0][0] == 'old_baseline_file'
            assert m_write.call_args[0] == ('old_baseline_file', Any(str))

        mock_merge_baseline.assert_called_once_with(
            {'key': 'value'},
            Any(dict),
        )
示例#5
0
    def test_scan_with_exclude_args(self, mock_baseline_initialize):
        with mock_stdin():
            assert wrap_detect_secrets_main(
                'scan --exclude-files some_pattern_here --exclude-lines other_patt',
            ) == 0

        mock_baseline_initialize.assert_called_once_with(
            plugins=Any(tuple),
            custom_plugin_paths=Any(tuple),
            exclude_files_regex='some_pattern_here',
            exclude_lines_regex='other_patt',
            path='.',
            should_scan_all_files=False,
            word_list_file=None,
            word_list_hash=None,
        )
示例#6
0
    def test_reads_from_stdin(self, mock_merge_baseline):
        with mock_stdin(json.dumps({'key': 'value'})):
            assert wrap_detect_secrets_main('scan') == 0

        mock_merge_baseline.assert_called_once_with(
            {'key': 'value'},
            Any(dict),
        )
示例#7
0
    def test_scan_with_excludes_flag(self, mock_baseline_initialize):
        assert main('--scan --exclude some_pattern_here'.split()) == 0

        mock_baseline_initialize.assert_called_once_with(
            Any(tuple),
            'some_pattern_here',
            '.',
        )
示例#8
0
    def test_scan_basic(self, mock_baseline_initialize):
        assert main(['--scan']) == 0

        mock_baseline_initialize.assert_called_once_with(
            Any(tuple),
            None,
            '.',
        )
示例#9
0
    def test_scan_with_rootdir(self, mock_baseline_initialize):
        assert main('--scan test_data'.split()) == 0

        mock_baseline_initialize.assert_called_once_with(
            Any(tuple),
            None,
            'test_data',
        )
示例#10
0
    def test_reads_from_stdin(self, mock_merge_baseline):
        with mock_stdin(json.dumps({'key': 'value'})):
            assert main(['scan']) == 0

        mock_merge_baseline.assert_called_once_with(
            {'key': 'value'},
            Any(dict),
        )
示例#11
0
    def test_scan_with_all_files_flag(self, mock_baseline_initialize):
        with mock_stdin():
            assert main('scan --all-files'.split()) == 0

        mock_baseline_initialize.assert_called_once_with(
            Any(tuple),
            None,
            '.',
            True,
        )
示例#12
0
    def test_scan_with_rootdir(self, mock_baseline_initialize):
        with mock_stdin():
            assert main('scan test_data'.split()) == 0

        mock_baseline_initialize.assert_called_once_with(
            plugins=Any(tuple),
            exclude_files_regex=None,
            exclude_lines_regex=None,
            path=['test_data'],
            scan_all_files=False,
        )
示例#13
0
    def test_scan_basic(self, mock_baseline_initialize):
        with mock_stdin():
            assert main(['scan']) == 0

        mock_baseline_initialize.assert_called_once_with(
            plugins=Any(tuple),
            exclude_files_regex=None,
            exclude_lines_regex=None,
            path='.',
            scan_all_files=False,
        )
示例#14
0
    def test_scan_with_all_files_flag(self, mock_baseline_initialize):
        with mock_stdin():
            assert main('scan --all-files'.split()) == 0

        mock_baseline_initialize.assert_called_once_with(
            plugins=Any(tuple),
            exclude_files_regex=None,
            exclude_lines_regex=None,
            path='.',
            scan_all_files=True,
        )
示例#15
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),
        )
示例#16
0
    def test_scan_with_exclude_args(self, mock_baseline_initialize):
        with mock_stdin():
            assert main(
                'scan --exclude-files some_pattern_here --exclude-lines other_patt'
                .split(), ) == 0

        mock_baseline_initialize.assert_called_once_with(
            plugins=Any(tuple),
            exclude_files_regex='some_pattern_here',
            exclude_lines_regex='other_patt',
            path='.',
            scan_all_files=False,
        )
示例#17
0
    def test_scan_with_rootdir(self, mock_baseline_initialize):
        with mock_stdin():
            assert main('scan test_data'.split()) == 0

        mock_baseline_initialize.assert_called_once_with(
            plugins=Any(tuple),
            exclude_files_regex=None,
            exclude_lines_regex=None,
            path=['test_data'],
            should_scan_all_files=False,
            output_raw=False,
            output_verified_false=False,
            word_list_file=None,
            word_list_hash=None,
        )
示例#18
0
    def test_scan_basic(self, mock_baseline_initialize):
        with mock_stdin():
            assert main(['scan']) == 0

        mock_baseline_initialize.assert_called_once_with(
            plugins=Any(tuple),
            exclude_files_regex=None,
            exclude_lines_regex=None,
            path='.',
            should_scan_all_files=False,
            output_raw=False,
            output_verified_false=False,
            word_list_file=None,
            word_list_hash=None,
        )