def test_lock_persistent_graph(self, mocker: MockerFixture) -> None: """Test lock_persistent_graph.""" mocker.patch.object( CfnginContext, "persistent_graph_location", { "Bucket": "test-bucket", "Key": "something.json" }, ) mocker.patch.object(CfnginContext, "persistent_graph_locked", False) mocker.patch.object(CfnginContext, "persistent_graph", True) obj = CfnginContext() stubber = Stubber(obj.s3_client) stubber.add_response( "put_object_tagging", {}, { "Tagging": { # pylint: disable=protected-access "TagSet": [{ "Key": obj._persistent_graph_lock_tag, "Value": "123" }] }, **obj.persistent_graph_location, }, ) with stubber: assert not obj.lock_persistent_graph("123")
def test_lock_persistent_graph_no_such_key(self, mocker: MockerFixture) -> None: """Test lock_persistent_graph NoSuchKey.""" mocker.patch.object( CfnginContext, "persistent_graph_location", { "Bucket": "test-bucket", "Key": "something.json" }, ) mocker.patch.object(CfnginContext, "persistent_graph_locked", False) mocker.patch.object(CfnginContext, "persistent_graph", True) obj = CfnginContext() stubber = Stubber(obj.s3_client) stubber.add_client_error("put_object_tagging", "NoSuchKey") with stubber, pytest.raises(PersistentGraphCannotLock): obj.lock_persistent_graph("123")