def test_read_write_identical_fields(self): """ Class -> AST -> Class should yield same fields """ schema_reader = PythonSchemaReader(NodeData) ast = schema_reader.get_ast() schema_writer = PythonSchemaWriter(ast) module = schema_writer.get_module() self.assertTrue(hasattr(module, 'NodeData')) # assert field names are the same self.assertEquals( sorted([f.field_name for f in NodeData.get_field_definitions()]), sorted([f.field_name for f in module.NodeData.get_field_definitions()])) # assert field types are the same for field in NodeData.get_field_definitions(): field_name = field.field_name self.assertEquals( field.field_type.get_type_name(), module.NodeData.get_field_definition(field_name).field_type.get_type_name())