def request_events(): yield [ RequestCreateEvent("a/1", {"a": 1}), RequestDeleteEvent("b/2"), RequestUpdateEvent("a/1", {"a": None, "b": [1, True]}), RequestRestoreEvent("b/2"), ]
def test_update_no_delete_fields_event(event_translator): update_event = RequestUpdateEvent("a/1", {"a": "some_value"}) db_events = event_translator.translate_single(update_event) assert len(db_events) == 1 assert isinstance(db_events[0], DbUpdateEvent)
def create_event(self, event: Dict[str, Any]) -> BaseRequestEvent: type = event["type"] fqid = event["fqid"] request_event: BaseRequestEvent if type == "create": request_event = RequestCreateEvent(fqid, event["fields"]) elif type == "update": request_event = RequestUpdateEvent(fqid, event["fields"]) elif type == "delete": request_event = RequestDeleteEvent(fqid) elif type == "restore": request_event = RequestRestoreEvent(fqid) else: raise BadCodingError() return request_event
def test_update_no_fields(): with pytest.raises(InvalidFormat): RequestUpdateEvent("c/1", {})
def test_update_duplicate_fields_2(): with pytest.raises(InvalidRequest): RequestUpdateEvent( "c/1", {}, {"add": {"test": ["value"]}, "remove": {"test": ["value"]}} )
def test_update_duplicate_fields_1(): with pytest.raises(InvalidRequest): RequestUpdateEvent("c/1", {"test": "stuff"}, {"add": {"test": ["value"]}})
def test_update_list_fields(): event = RequestUpdateEvent("c/1", {}, {"add": {"test": ["value"]}}) assert event.list_fields == {"add": {"test": ["value"]}}