コード例 #1
0
    def test_initialize_plugins_failed_instantiation(self):
        with mock.patch(
                'detect_secrets.plugins.HexHighEntropyString.__init__',
                side_effect=TypeError,
        ):
            output = initialize(SensitivityValues(hex_limit=3, ), )

        assert len(output) == 0
コード例 #2
0
    def test_success(self):
        plugins = SensitivityValues(
            base64_limit=4.5,
            hex_limit=3,
        )

        output = initialize(plugins)
        assert isinstance(output[0], Base64HighEntropyString)
        assert output[0].entropy_limit == 4.5
        assert isinstance(output[1], HexHighEntropyString)
        assert output[1].entropy_limit == 3
コード例 #3
0
    def test_aliases(self):
        """For better usability, we can also use aliases when initializing
        the SensitivityValues object.
        """
        plugins = SensitivityValues(
            Base64HighEntropyString=2,

            # Non aliases should take precedence over aliases.
            HexHighEntropyString=1,
            hex_limit=1.5,
        )

        output = initialize(plugins)
        assert isinstance(output[0], Base64HighEntropyString)
        assert output[0].entropy_limit == 2
        assert isinstance(output[1], HexHighEntropyString)
        assert output[1].entropy_limit == 1.5
コード例 #4
0
    def scan(self):
        """Clones the repo, and scans the git diff between last_commit_hash and HEAD.

        :raises: subprocess.CalledProcessError
        """
        self.clone_and_pull_repo()
        diff = self._get_latest_changes()
        baseline = self._get_baseline()

        default_plugins = initialize(self.plugin_config)

        secrets = SecretsCollection(default_plugins, self.exclude_regex)

        secrets.scan_diff(diff,
                          baseline_filename=baseline,
                          last_commit_hash=self.last_commit_hash,
                          repo_name=self.name)

        if baseline:
            baseline_collection = SecretsCollection.load_baseline_from_string(
                baseline)
            secrets = get_secrets_not_in_baseline(secrets, baseline_collection)

        return secrets
コード例 #5
0
    def test_no_sensitivity_value_necessary_plugin(self):
        plugins = SensitivityValues(PrivateKeyDetector=True)

        output = initialize(plugins)
        assert len(output) == 1
        assert isinstance(output[0], PrivateKeyDetector)
コード例 #6
0
    def test_false_disables_plugin(self):
        output = initialize(SensitivityValues(PrivateKeyDetector=False))

        assert len(output) == 0
コード例 #7
0
 def test_input_requires_sensitivity_values_object(self):
     assert len(initialize('this is not a SensitivityValues object')) == 0