Skip to content

Commit 5fde63c

Browse files
authored
Fix format message not returning newline (#44)
1 parent 38ff686 commit 5fde63c

2 files changed

Lines changed: 17 additions & 3 deletions

File tree

singer/messages.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -292,12 +292,12 @@ def parse_message(msg):
292292
return None
293293

294294

295-
def format_message(message):
296-
return orjson.dumps(message.asdict(), option=orjson.OPT_APPEND_NEWLINE)
295+
def format_message(message, option=0):
296+
return orjson.dumps(message.asdict(), option=option)
297297

298298

299299
def write_message(message):
300-
sys.stdout.buffer.write(format_message(message))
300+
sys.stdout.buffer.write(format_message(message, option=orjson.OPT_APPEND_NEWLINE))
301301
sys.stdout.buffer.flush()
302302

303303

tests/test_singer.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,20 @@ def test_parse_bulk_decs(self):
192192
value = self.create_record(value_str)
193193
self.assertEqual(float(value_str), value)
194194

195+
def test_format_message(self):
196+
record_message = singer.RecordMessage(
197+
record={'name': 'foo'},
198+
stream='users')
199+
200+
self.assertEqual(b'{"type":"RECORD","stream":"users","record":{"name":"foo"}}',
201+
singer.format_message(record_message))
202+
203+
self.assertEqual(b'{"type":"RECORD","stream":"users","record":{"name":"foo"}}',
204+
singer.format_message(record_message, option=0))
205+
206+
self.assertEqual(b'{"type":"RECORD","stream":"users","record":{"name":"foo"}}\n',
207+
singer.format_message(record_message, option=orjson.OPT_APPEND_NEWLINE))
208+
195209

196210
if __name__ == '__main__':
197211
unittest.main()

0 commit comments

Comments
 (0)