<p>您是否尝试过在第二个测试用例之前简单地删除singleton实例?你知道吗</p>
<pre class="lang-py prettyprint-override"><code>@pytest.mark.unit_test
def test_get_secrets(monkeypatch):
def mock_init_auth_false(self, *args, **kwargs):
self.path = "dummy_path"
self.vault_url = "dummy_url"
self.is_authenticated = False
def mock_init_auth_true(self, *args, **kwargs):
self.path = "dummy_path"
self.vault_url = "dummy_url"
self.is_authenticated = True
# Negative case - auth is false
monkeypatch.setattr(vault1.VaultAuth, "__init__", mock_init_auth_false)
secrets_manager = vault1.VaultAuth(prefix_path="prefix", address="https://vault")
with pytest.raises(RuntimeError) as exception:
secret_data = secrets_manager.get_secrets(region="test_region")
assert "Failed to fetch secrets" in str(exception.value)
monkeypatch.undo()
del Singleton._instances[vault1.VaultAuth]
# Positive case - auth is true
monkeypatch.setattr(vault1.VaultAuth, "__init__", mock_init_auth_true)
secrets_manager = vault1.VaultAuth(prefix_path="prefix", address="https://vault")
assert secrets_manager.get_secrets(region="test_region")
</code></pre>