Ejemplo n.º 1
0
    def test_success_response(self, post_method):
        event = {
            "name": "event:name",
            "version": 1,
            "payload": {
                "test": "test"
            },
        }
        response_event = ResponseEvent(
            name="event:name:response",
            version=1,
            payload={"test": "test"},
        )

        post_method.return_value = response_event.to_json()
        response = self.client.send_event(**event)

        self.assertTrue(response.is_success)
        self.assertEqual(response, response_event)
Ejemplo n.º 2
0
    def test_error_response(self, post_method):
        event = {
            "name": "event:name",
            "version": 1,
            "payload": {
                "test": "test"
            },
        }
        response_event = ResponseEvent(
            name="event:name:error",
            version=1,
            payload={"test": "test"},
        )

        post_method.return_value = response_event.to_json()
        response = self.client.send_event(**event)
        self.assertTrue(response.is_error)
        self.assertEqual(EventErrorType.GENERIC, response.error_type)
        self.assertEqual(response, response_event)
Ejemplo n.º 3
0
 async def test_process_event_founding_none_event(self):
     test_event = Event(name="event:test",
                        version="2",
                        id=str(uuid4()),
                        flow_id=str(uuid4()))
     test_json = test_event.to_json()
     event_processor = AsyncEventProcessor()
     event = await event_processor.process_event(test_json)
     response: ResponseEvent = ResponseEvent.from_json(event)
     self.assertTrue(response.is_error)
     self.assertEqual(response.event_type, EventErrorType.NOT_FOUND)
Ejemplo n.º 4
0
 def response_for(
     cls,
     event: Event,
     payload: PayloadType,
     event_type: EventSuccessType = EventSuccessType.SUCCESS,
     loggable=True,
 ) -> ResponseEvent:
     response_event = ResponseEvent.from_object(event)
     response_event.name = f"{response_event.name}:{event_type}"
     response_event.payload = payload
     return response_event
Ejemplo n.º 5
0
 def response_for(
     cls,
     event: Event,
     payload: PayloadType,
     event_type: EventSuccessType = EventSuccessType.SUCCESS,
     loggable=True,
 ) -> ResponseEvent:
     response_event = ResponseEvent.from_object(event)
     response_event.name = f"{response_event.name}:{event_type}"
     response_event.payload = payload
     if loggable:
         cls.logger.info("Event finished with success", extra=response_event.json())
     return response_event
Ejemplo n.º 6
0
    def error_for(
        cls,
        exception: typing.Union[EventException],
        event: typing.Optional[Event] = Event(name="", version=1, id=str(uuid4())),
        id_flow=str(uuid4()),
        loggable=True,
    ) -> ResponseEvent:
        event_name = (
            f"{event.name}:{exception.event_error_type}"
            if event.name
            else f"{exception.event_error_type}"
        )

        event_message = EventMessage(code=exception.code, parameters=exception.parameters).to_dict()
        response_event = ResponseEvent.from_object(event)
        response_event.name = event_name
        response_event.payload = event_message
        if loggable:
            cls.logger.error("Event finished with error", extra=response_event.json())
        return response_event