def test_parse(self): events = common.parse(basic_parse(BytesIO(JSON))) events = [value for prefix, event, value in events if prefix == 'docs.item.meta.item.item' ] self.assertEqual(events, [1])
def test_object_builder(self): builder = common.ObjectBuilder() for event, value in basic_parse(BytesIO(JSON)): builder.event(event, value) self.assertEqual(builder.value, { 'docs': [ { 'string': 'строка - тест', 'null': None, 'boolean': False, 'true': True, 'integer': 0, 'double': Decimal('0.5'), 'exponent': 100, 'long': 10000000000, }, { 'meta': [[1], {}], }, { 'meta': {'key': 'value'}, }, { 'meta': None, }, ], })
def test_object_builder(self): builder = common.ObjectBuilder() for event, value in basic_parse(BytesIO(JSON)): builder.event(event, value) self.assertEqual(builder.value, { 'docs': [ { 'string': 'строка - тест', 'null': None, 'boolean': False, 'integer': 0, 'double': Decimal('0.5'), 'exponent': Decimal('100'), 'long': 10000000000, }, { 'meta': [[1], {}], }, { 'meta': {'key': 'value'}, }, { 'meta': None, }, ], })
def test_items(self): events = basic_parse(BytesIO(JSON)) meta = list(common.items(common.parse(events), 'docs.item.meta')) self.assertEqual(meta, [ [[1], {}], {'key': 'value'}, None, ])
def test_object_builder(self): builder = common.ObjectBuilder() for event, value in basic_parse(BytesIO(JSON)): builder.event(event, value) self.assertEqual( builder.value, { "docs": [ { "string": "строка", "null": None, "boolean": False, "integer": 0, "double": Decimal("0.5"), "long": 10000000000, "decimal": Decimal("10000000000.5"), }, {"meta": [[1], {}]}, {"meta": {"key": "value"}}, {"meta": None}, ] }, )
def test_scalar_builder(self): builder = common.ObjectBuilder() for event, value in basic_parse(BytesIO(SCALAR_JSON)): builder.event(event, value) self.assertEqual(builder.value, 0)
def parse(file, **kwargs): ''' Backend-specific wrapper for ijson.common.parse. ''' return common.parse(basic_parse(file, **kwargs))
def test_items(self): events = basic_parse(BytesIO(JSON)) meta = list(common.items(common.parse(events), "docs.item.meta")) self.assertEqual(meta, [[[1], {}], {"key": "value"}, None])