def test_split_json_chunk_with_empty_chunk(self):
     chunk = ""
     result = tuple(FileDataSource._split_json_chunk(chunk))
     self.assertEqual(0, len(result))
     chunk = " [     ] "
     result = tuple(FileDataSource._split_json_chunk(chunk))
     self.assertEqual(0, len(result))
    def test_split_json_chunk_with_prepend(self):
        prepend = '{"key": "33", "val'
        chunk = 'ue": "333"} , {"key": "44", "value": "444"}  ]  '
        result = tuple(FileDataSource._split_json_chunk(chunk))
        self.assertEqual(2, len(result))
        self.assertEqual('ue": "333"}', result[0])
        with self.assertRaises(json.JSONDecodeError):
            json.loads(result[0])
        self.assertEqual('{"key": "44", "value": "444"}', result[1])

        result = tuple(FileDataSource._split_json_chunk(chunk, prepend))
        self.assertEqual(2, len(result))
        self.assertEqual('{"key": "33", "value": "333"}', result[0])
        self.assertEqual('{"key": "44", "value": "444"}', result[1])
 def test_split_json_chunk_with_complete_chunk(self):
     chunk = '  [  {"key": "11": "value": "111"} , {"key": "22": "value": "222"} , {"key": "33": "value": "333"} ]  '
     result = tuple(FileDataSource._split_json_chunk(chunk))
     self.assertEqual(3, len(result))
     self.assertEqual('{"key": "11": "value": "111"}', result[0])
     self.assertEqual('{"key": "22": "value": "222"}', result[1])
     self.assertEqual('{"key": "33": "value": "333"}', result[2])
 def test_split_json_chunk_with_incomplete_chunk(self):
     chunk = '  [  {"key": "11": "value": "111"} , {"key": "22": "value": "222"} , {"key": "33": "val'
     result = tuple(FileDataSource._split_json_chunk(chunk))
     self.assertEqual(3, len(result))
     self.assertEqual('{"key": "11": "value": "111"}', result[0])
     self.assertEqual('{"key": "22": "value": "222"}', result[1])
     self.assertEqual('{"key": "33": "val', result[2])
     with self.assertRaises(json.JSONDecodeError):
         json.loads(result[2])