Ejemplo n.º 1
0
    def test_round_trip(self):
        record_message = singer.RecordMessage(record={'name': 'foo'},
                                              stream='users')

        schema_message = singer.SchemaMessage(stream='users',
                                              key_properties=['name'],
                                              schema={
                                                  'type': 'object',
                                                  'properties': {
                                                      'name': {
                                                          'type': 'string'
                                                      }
                                                  }
                                              })

        state_message = singer.StateMessage(value={'seq': 1})

        self.assertEqual(
            record_message,
            singer.parse_message(singer.format_message(record_message)))
        self.assertEqual(
            schema_message,
            singer.parse_message(singer.format_message(schema_message)))
        self.assertEqual(
            state_message,
            singer.parse_message(singer.format_message(state_message)))
    def test_format_message(self):
        record_message = singer.RecordMessage(record={'name': 'foo'},
                                              stream='users')

        self.assertEqual(
            b'{"type":"RECORD","stream":"users","record":{"name":"foo"}}',
            singer.format_message(record_message))

        self.assertEqual(
            b'{"type":"RECORD","stream":"users","record":{"name":"foo"}}',
            singer.format_message(record_message, option=0))

        self.assertEqual(
            b'{"type":"RECORD","stream":"users","record":{"name":"foo"}}\n',
            singer.format_message(record_message,
                                  option=orjson.OPT_APPEND_NEWLINE))