def test_put_persistent_graph_not_locked(self, mocker: MockerFixture) -> None: """Test put_persistent_graph not locked.""" mocker.patch.object( CfnginContext, "persistent_graph_location", { "Bucket": "test-bucket", "Key": "something.json" }, ) mocker.patch.object(CfnginContext, "persistent_graph_locked", False) obj = CfnginContext() obj.persistent_graph = Graph.from_dict(self.persist_graph_raw, context=obj) with pytest.raises(PersistentGraphUnlocked): obj.put_persistent_graph("123")
def test_put_persistent_graph_lock_code_mismatch( self, mocker: MockerFixture) -> None: """Test put_persistent_graph lock code mismatch.""" mocker.patch.object( CfnginContext, "persistent_graph_location", { "Bucket": "test-bucket", "Key": "something.json" }, ) mocker.patch.object(CfnginContext, "persistent_graph_locked", True) mocker.patch.object(CfnginContext, "persistent_graph_lock_code", "0") obj = CfnginContext() obj.persistent_graph = Graph.from_dict(self.persist_graph_raw, context=obj) with pytest.raises(PersistentGraphLockCodeMissmatch): obj.put_persistent_graph("123")
def test_put_persistent_graph_empty(self, mocker: MockerFixture) -> None: """Test put_persistent_graph empty.""" mocker.patch.object( CfnginContext, "persistent_graph_location", { "Bucket": "test-bucket", "Key": "something.json" }, ) obj = CfnginContext() obj.persistent_graph = Graph.from_dict({}, context=obj) stubber = Stubber(obj.s3_client) stubber.add_response("delete_object", {}, obj.persistent_graph_location) with stubber: assert not obj.put_persistent_graph("123")
def test_put_persistent_graph(self, mocker: MockerFixture) -> None: """Test put_persistent_graph.""" mocker.patch.object( CfnginContext, "persistent_graph_location", { "Bucket": "test-bucket", "Key": "something.json" }, ) mocker.patch.object(CfnginContext, "persistent_graph_locked", True) mocker.patch.object(CfnginContext, "persistent_graph_lock_code", "123") obj = CfnginContext() obj.persistent_graph = Graph.from_dict(self.persist_graph_raw, context=obj) stubber = Stubber(obj.s3_client) stubber.add_response( "put_object", {}, { "Body": json.dumps(self.persist_graph_raw, default=json_serial, indent=4).encode(), "ServerSideEncryption": "AES256", "ACL": "bucket-owner-full-control", "ContentType": "application/json", "Tagging": "cfngin_lock_code=123", **obj.persistent_graph_location, }, ) with stubber: assert not obj.put_persistent_graph("123")