def test_namepace_inheritance(self): schema = avro_schema_parser.parse_schema_string( namespace_subrecord_schema) self.assertEqual(schema._namespace, "topspace") self.assertEqual(schema.sub_record_no_namespace._schema._namespace, "topspace") self.assertEqual(schema.sub_record_with_namespace._schema._namespace, "subspace")
def test_can_parse(self): schema_class = avro_schema_parser.parse_schema_string(self.avsc) self.assertTrue(pyschema.ispyschema(schema_class)) self.assertEqual(schema_class._schema_name, self.schema_name) for (gen_name, gen_type), (ref_name, ref_type) in zip(schema_class._fields.items(), self.references): self.assertEqual(gen_name, ref_name) self.assertTrue(gen_type.is_similar_to(ref_type), "Types for field {0!r} don't match".format(ref_name))
def test_can_parse(self): schema_class = avro_schema_parser.parse_schema_string(self.avsc) self.assertTrue(pyschema.ispyschema(schema_class)) self.assertEqual(schema_class._schema_name, self.schema_name) for (gen_name, gen_type), (ref_name, ref_type) in zip( schema_class._fields.items(), self.references): self.assertEqual(gen_name, ref_name) self.assertTrue( gen_type.is_similar_to(ref_type), "Types for field {0!r} don't match".format(ref_name))
def test_two_way_equivalence(self): schema_class = avro_schema_parser.parse_schema_string( supported_avro_schema) recreated_avsc = avro.get_schema_dict(schema_class) self.recursive_compare(json.loads(supported_avro_schema), recreated_avsc)
def test_supported_avro_schema_succeeds(self): parsed = avro_schema_parser.parse_schema_string(supported_avro_schema) self.schemas_match(parsed, Supported)
def test_parse(self): avro_schema_parser.parse_schema_string(self.avsc)
def test_doc_intact(self): schema = avro_schema_parser.parse_schema_string(self.avsc) self.assertEqual(schema.__doc__, u"hello world\nfoo") self.assertEqual(schema.a.description, u"this is a field")
def test_can_parse_enum_reference(self): avro_schema_parser.parse_schema_string(repeated_enum_schema)
def test_can_decode_defaults(self): schema = avro_schema_parser.parse_schema_string(default_valued_schema) self.assertEqual(schema.foo.default, u"none") self.assertEqual(schema.bar.default, 0) self.assertTrue(isinstance(schema.floatie.default, float)) self.assertTrue(isinstance(schema.bar.default, int))
def test_namepace_inheritance(self): schema = avro_schema_parser.parse_schema_string(namespace_subrecord_schema) self.assertEqual(schema._namespace, "topspace") self.assertEqual(schema.sub_record_no_namespace._schema._namespace, "topspace") self.assertEqual(schema.sub_record_with_namespace._schema._namespace, "subspace")
def test_repeated_subrecord(self): avro_schema_parser.parse_schema_string(repeated_subrecord_schema)
def test_two_way_equivalence(self): schema_class = avro_schema_parser.parse_schema_string(supported_avro_schema) recreated_avsc = avro.get_schema_dict(schema_class) self.recursive_compare(json.loads(supported_avro_schema), recreated_avsc)
def test_roundtrip(self): schema_class = avro_schema_parser.parse_schema_string(self.avsc) schema_struct = json.loads(self.avsc) regenerated_struct = avro.get_schema_dict(schema_class) self.assertEqual(schema_struct, regenerated_struct)