Skip to content

Commit 3128d4b

Browse files
committed
Merge pull request #37 from micxjo/master
Fix for chained responses with newlines
2 parents 841595f + fd419e6 commit 3128d4b

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

ipfsApi/encoding.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ def parse(self, raw):
4242
results.append(obj)
4343
cur = idx
4444
while cur < len(json_string) - 1:
45+
if json_string[cur] == '\n':
46+
cur += 1
4547
obj, idx = self.decoder.raw_decode(json_string[cur:])
4648
results.append(obj)
4749
cur += idx

test/unit/test_encoding.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,15 @@ def test_json_parse_chained(self):
2525
self.assertEqual(res[0]['key1'], 'value1')
2626
self.assertEqual(res[1]['key2'], 'value2')
2727

28+
def test_json_parse_chained_newlines(self):
29+
data1 = {'key1': 'value1'}
30+
data2 = {'key2': 'value2'}
31+
res = self.encoder.parse(
32+
json.dumps(data1) + '\n' + json.dumps(data2))
33+
self.assertEqual(len(res), 2)
34+
self.assertEqual(res[0]['key1'], 'value1')
35+
self.assertEqual(res[1]['key2'], 'value2')
36+
2837
def test_json_encode(self):
2938
data = {'key': 'value'}
3039
self.assertEqual(

0 commit comments

Comments
 (0)