Пример #1
0
    def test_no_vulns_found(self, mock_text, mock_find_vulnerabilities,
                            mock_parse_args, mock_discover_files):
        mock_find_vulnerabilities.return_value = []
        example_file = 'examples/vulnerable_code/inter_command_injection.py'
        output_file = 'mocked_outfile'

        mock_discover_files.return_value = [example_file]
        mock_parse_args.return_value = mock.Mock(project_root=None,
                                                 baseline=None,
                                                 json=None,
                                                 output_file=output_file)
        main(['parse_args is mocked'])  # No SystemExit
        assert mock_text.report.call_count == 1
        mock_text.report.assert_called_with(
            mock_find_vulnerabilities.return_value,
            mock_parse_args.return_value.output_file)
Пример #2
0
    def test_json_output(self, mock_json, mock_find_vulnerabilities,
                         mock_parse_args, mock_discover_files):
        mock_find_vulnerabilities.return_value = 'stuff'
        example_file = 'examples/vulnerable_code/inter_command_injection.py'
        output_file = 'mocked_outfile'

        mock_discover_files.return_value = [example_file]
        mock_parse_args.return_value = mock.Mock(project_root=None,
                                                 baseline=None,
                                                 json=True,
                                                 output_file=output_file)
        with self.assertRaises(SystemExit):
            main(['parse_args is mocked'])
        assert mock_json.report.call_count == 1
        mock_json.report.assert_called_with(
            mock_find_vulnerabilities.return_value,
            mock_parse_args.return_value.output_file)
Пример #3
0
    def test_text_output(self, mock_text, mock_find_vulnerabilities,
                         mock_parse_args, mock_discover_files):
        mock_find_vulnerabilities.return_value = 'stuff'
        example_file = 'examples/vulnerable_code/inter_command_injection.py'
        output_file = 'mocked_outfile'

        mock_discover_files.return_value = [example_file]
        mock_parse_args.return_value = mock.Mock(autospec=True,
                                                 project_root=None,
                                                 baseline=None,
                                                 json=None,
                                                 output_file=output_file)
        main(['parse_args is mocked'])
        assert mock_text.report.call_count == 1
        # This with: makes no sense
        with self.assertRaises(AssertionError):
            assert mock_text.report.assert_called_with(
                mock_find_vulnerabilities.return_value,
                mock_parse_args.return_value.output_file)
Пример #4
0
    def test_text_output(self, mock_text, mock_find_vulnerabilities, mock_parse_args, mock_discover_files):
        mock_find_vulnerabilities.return_value = 'stuff'
        example_file = 'examples/vulnerable_code/inter_command_injection.py'
        output_file = 'mocked_outfile'

        import pyt.formatters.text
        mock_discover_files.return_value = [example_file]
        mock_parse_args.return_value = mock.Mock(
            project_root=None,
            baseline=None,
            formatter=pyt.formatters.text,
            output_file=output_file,
            only_unsanitised=False,
        )
        with self.assertRaises(SystemExit):
            main(['parse_args is mocked'])
        assert mock_text.report.call_count == 1
        mock_text.report.assert_called_with(
            mock_find_vulnerabilities.return_value,
            mock_parse_args.return_value.output_file,
            True,
        )