Skip to content

Tests failing on openSUSE Tumbleweed #875

@kastl-ars

Description

@kastl-ars
  • I'm submitting a ...

    • bug report
    • feature request
  • What is the current behavior?

There are several tests failing when packaging detect-secrets for openSUSE. This might be due to the build environment that does not have network connectivity. But before ignoring those tests, I would like to get your opinion.

[   38s] =================================== FAILURES ===================================
[   38s] ___________________ TestAWSKeyDetector.test_verify_no_secret ___________________
[   38s] 
[   38s] self = <aws_key_test.TestAWSKeyDetector object at 0x7f61b0ab8be0>
[   38s] 
[   38s]     def test_verify_no_secret(self):
[   38s]         logic = AWSKeyDetector()
[   38s]     
[   38s]         assert logic.verify(
[   38s]             self.example_key,
[   38s]             get_code_snippet([], 1),
[   38s] >       ) == VerifiedResult.UNVERIFIED
[   38s] E       AttributeError: 'TestAWSKeyDetector' object has no attribute 'example_key'
[   38s] 
[   38s] tests/plugins/aws_key_test.py:77: AttributeError
[   38s] _________________ TestAWSKeyDetector.test_verify_valid_secret __________________
[   38s] 
[   38s] self = <aws_key_test.TestAWSKeyDetector object at 0x7f61b0ab9330>
[   38s] 
[   38s]     def test_verify_valid_secret(self):
[   38s]         with mock.patch(
[   38s]             'detect_secrets.plugins.aws.verify_aws_secret_access_key',
[   38s]             return_value=True,
[   38s]         ):
[   38s]             assert AWSKeyDetector().verify(
[   38s]                 self.example_key,
[   38s]                 get_code_snippet(['={}'.format(EXAMPLE_SECRET)], 1),
[   38s] >           ) == VerifiedResult.VERIFIED_TRUE
[   38s] E           AttributeError: 'TestAWSKeyDetector' object has no attribute 'example_key'
[   38s] 
[   38s] tests/plugins/aws_key_test.py:92: AttributeError
[   38s] ________________ TestAWSKeyDetector.test_verify_invalid_secret _________________
[   38s] 
[   38s] self = <aws_key_test.TestAWSKeyDetector object at 0x7f61b0918cd0>
[   38s] 
[   38s]     def test_verify_invalid_secret(self):
[   38s]         with mock.patch(
[   38s]             'detect_secrets.plugins.aws.verify_aws_secret_access_key',
[   38s]             return_value=False,
[   38s]         ):
[   38s]             assert AWSKeyDetector().verify(
[   38s]                 self.example_key,
[   38s]                 get_code_snippet(['={}'.format(EXAMPLE_SECRET)], 1),
[   38s] >           ) == VerifiedResult.VERIFIED_FALSE
[   38s] E           AttributeError: 'TestAWSKeyDetector' object has no attribute 'example_key'
[   38s] 
[   38s] tests/plugins/aws_key_test.py:102: AttributeError
[   38s] _______ TestAWSKeyDetector.test_verify_keep_trying_until_found_something _______
[   38s] 
[   38s] self = <aws_key_test.TestAWSKeyDetector object at 0x7f61b091a260>
[   38s] 
[   38s]     def test_verify_keep_trying_until_found_something(self):
[   38s]         data = {'count': 0}
[   38s]     
[   38s]         def counter(*args, **kwargs):
[   38s]             output = data['count']
[   38s]             data['count'] += 1
[   38s]     
[   38s]             return bool(output)
[   38s]     
[   38s]         with mock.patch(
[   38s]             'detect_secrets.plugins.aws.verify_aws_secret_access_key',
[   38s]             counter,
[   38s]         ):
[   38s]             assert AWSKeyDetector().verify(
[   38s]                 self.example_key,
[   38s]                 get_code_snippet(
[   38s]                     [
[   38s]                         'false_secret = {0}'.format('TEST' * 10),
[   38s]                         'real_secret = {0}'.format(EXAMPLE_SECRET),
[   38s]                     ],
[   38s]                     1,
[   38s]                 ),
[   38s] >           ) == VerifiedResult.VERIFIED_TRUE
[   38s] E           AttributeError: 'TestAWSKeyDetector' object has no attribute 'example_key'
[   38s] 
[   38s] tests/plugins/aws_key_test.py:126: AttributeError
[   38s] _ TestAnalyzeLine.test_potential_secret_constructed_correctly[VerifiedResult.UNVERIFIED-False] _
[   38s] 
[   38s] self = <base_test.TestAnalyzeLine object at 0x7f61b09184c0>
[   38s] verified_result = <VerifiedResult.UNVERIFIED: 2>, is_verified = False
[   38s] 
[   38s]     @pytest.mark.parametrize(
[   38s]         'verified_result ,is_verified',
[   38s]         [
[   38s]             (VerifiedResult.UNVERIFIED, False),
[   38s]             (VerifiedResult.VERIFIED_FALSE, False),
[   38s]             (VerifiedResult.VERIFIED_TRUE, True),
[   38s]         ],
[   38s]     )
[   38s]     def test_potential_secret_constructed_correctly(self, verified_result, is_verified):
[   38s]         self._enable_filter()
[   38s]         plugin = MockPlugin(verified_result)
[   38s]         output = plugin.analyze_line(
[   38s] >           filename=self.filename,
[   38s]             line=self.line,
[   38s]             line_number=1,
[   38s]             context=self.context,
[   38s]         )
[   38s] E       AttributeError: 'TestAnalyzeLine' object has no attribute 'filename'
[   38s] 
[   38s] tests/plugins/base_test.py:65: AttributeError
[   38s] _ TestAnalyzeLine.test_potential_secret_constructed_correctly[VerifiedResult.VERIFIED_FALSE-False] _
[   38s] 
[   38s] self = <base_test.TestAnalyzeLine object at 0x7f61b09190f0>
[   38s] verified_result = <VerifiedResult.VERIFIED_FALSE: 1>, is_verified = False
[   38s] 
[   38s]     @pytest.mark.parametrize(
[   38s]         'verified_result ,is_verified',
[   38s]         [
[   38s]             (VerifiedResult.UNVERIFIED, False),
[   38s]             (VerifiedResult.VERIFIED_FALSE, False),
[   38s]             (VerifiedResult.VERIFIED_TRUE, True),
[   38s]         ],
[   38s]     )
[   38s]     def test_potential_secret_constructed_correctly(self, verified_result, is_verified):
[   38s]         self._enable_filter()
[   38s]         plugin = MockPlugin(verified_result)
[   38s]         output = plugin.analyze_line(
[   38s] >           filename=self.filename,
[   38s]             line=self.line,
[   38s]             line_number=1,
[   38s]             context=self.context,
[   38s]         )
[   38s] E       AttributeError: 'TestAnalyzeLine' object has no attribute 'filename'
[   38s] 
[   38s] tests/plugins/base_test.py:65: AttributeError
[   38s] _ TestAnalyzeLine.test_potential_secret_constructed_correctly[VerifiedResult.VERIFIED_TRUE-True] _
[   38s] 
[   38s] self = <base_test.TestAnalyzeLine object at 0x7f61b09199c0>
[   38s] verified_result = <VerifiedResult.VERIFIED_TRUE: 3>, is_verified = True
[   38s] 
[   38s]     @pytest.mark.parametrize(
[   38s]         'verified_result ,is_verified',
[   38s]         [
[   38s]             (VerifiedResult.UNVERIFIED, False),
[   38s]             (VerifiedResult.VERIFIED_FALSE, False),
[   38s]             (VerifiedResult.VERIFIED_TRUE, True),
[   38s]         ],
[   38s]     )
[   38s]     def test_potential_secret_constructed_correctly(self, verified_result, is_verified):
[   38s]         self._enable_filter()
[   38s]         plugin = MockPlugin(verified_result)
[   38s]         output = plugin.analyze_line(
[   38s] >           filename=self.filename,
[   38s]             line=self.line,
[   38s]             line_number=1,
[   38s]             context=self.context,
[   38s]         )
[   38s] E       AttributeError: 'TestAnalyzeLine' object has no attribute 'filename'
[   38s] 
[   38s] tests/plugins/base_test.py:65: AttributeError
[   38s] _ TestAnalyzeLine.test_no_verification_call_if_verification_filter_is_disabled _
[   38s] 
[   38s] self = <base_test.TestAnalyzeLine object at 0x7f61b091b790>
[   38s] 
[   38s]     def test_no_verification_call_if_verification_filter_is_disabled(self):
[   38s]         self._disable_filter()
[   38s]         plugin = MockPlugin(VerifiedResult.VERIFIED_TRUE)
[   38s]         output = plugin.analyze_line(
[   38s] >           filename=self.filename,
[   38s]             line=self.line,
[   38s]             line_number=1,
[   38s]             context=self.context,
[   38s]         )
[   38s] E       AttributeError: 'TestAnalyzeLine' object has no attribute 'filename'
[   38s] 
[   38s] tests/plugins/base_test.py:81: AttributeError
[   38s] ___________ TestAnalyzeLine.test_handle_verify_exception_gracefully ____________
[   38s] 
[   38s] self = <base_test.TestAnalyzeLine object at 0x7f61b0919c60>
[   38s] 
[   38s]     def test_handle_verify_exception_gracefully(self):
[   38s]         self._enable_filter()
[   38s]         plugin = MockExceptionRaisingPlugin()
[   38s]         output = plugin.analyze_line(
[   38s] >           filename=self.filename,
[   38s]             line=self.line,
[   38s]             line_number=1,
[   38s]             context=self.context,
[   38s]         )
[   38s] E       AttributeError: 'TestAnalyzeLine' object has no attribute 'filename'
[   38s] 
[   38s] tests/plugins/base_test.py:94: AttributeError
[   38s] =============================== warnings summary ===============================
[   38s] tests/core/baseline_test.py::TestCreate::test_error_when_getting_git_tracked_files
[   38s]   /home/abuild/rpmbuild/BUILD/detect-secrets-1.5.0/detect_secrets/core/scan.py:74: UserWarning: Did not detect git repository. Try scanning all files instead.
[   38s]     log.warning('Did not detect git repository. Try scanning all files instead.')
[   38s] 
[   38s] tests/core/usage/filters_usage_test.py::test_disable_filter
[   38s]   /home/abuild/rpmbuild/BUILD/detect-secrets-1.5.0/detect_secrets/core/usage/filters.py:192: UserWarning: Redundant --disable-filter "blah"
[   38s]     log.warning(f'Redundant --disable-filter "{name}"')
[   38s] 
[   38s] -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
[   38s] =========================== short test summary info ============================
[   38s] FAILED tests/plugins/aws_key_test.py::TestAWSKeyDetector::test_verify_no_secret
[   38s] FAILED tests/plugins/aws_key_test.py::TestAWSKeyDetector::test_verify_valid_secret
[   38s] FAILED tests/plugins/aws_key_test.py::TestAWSKeyDetector::test_verify_invalid_secret
[   38s] FAILED tests/plugins/aws_key_test.py::TestAWSKeyDetector::test_verify_keep_trying_until_found_something
[   38s] FAILED tests/plugins/base_test.py::TestAnalyzeLine::test_potential_secret_constructed_correctly[VerifiedResult.UNVERIFIED-False]
[   38s] FAILED tests/plugins/base_test.py::TestAnalyzeLine::test_potential_secret_constructed_correctly[VerifiedResult.VERIFIED_FALSE-False]
[   38s] FAILED tests/plugins/base_test.py::TestAnalyzeLine::test_potential_secret_constructed_correctly[VerifiedResult.VERIFIED_TRUE-True]
[   38s] FAILED tests/plugins/base_test.py::TestAnalyzeLine::test_no_verification_call_if_verification_filter_is_disabled
[   38s] FAILED tests/plugins/base_test.py::TestAnalyzeLine::test_handle_verify_exception_gracefully
[   38s] ============ 9 failed, 1022 passed, 6 xfailed, 2 warnings in 32.24s ============

I am a little confused why the Did not detect git repository warning pops up. The tarball contains the .git directory, i.e. the build directory should be a valid git repository.

  • If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem

The package is built in an offline-environment after preparing the source tarball and installing dependencies from the OS.

The tests are being run using pytest 8.2.2.

  • What is the expected behavior?

Ideally the tests should pass.

  • Please tell us about your environment:
    • detect-secrets Version: 1.5.0
    • Python Version: 3.10 / 3.11 / 3.12
    • OS Version: openSUSE Tumbleweed
    • File type (if applicable):

Any hints are highly appreciated!

Kind Regards
Johannes

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions