def test_flat_person_xml_conversion(self): # Open rwperson-database yang model yang = rw_peas.PeasPlugin('yangmodel_plugin-c', 'YangModelPlugin-1.0') yang_model = yang.get_interface('Model') yang_module = yang.get_interface('Module') yang_node = yang.get_interface('Node') yang_key = yang.get_interface('Key') model = yang_model.alloc() module = yang_model.load_module(model, "rwperson-db") #populate the person self.flat_person.name = "test-name" self.flat_person.email = "*****@*****.**" self.flat_person.employed = True self.flat_person.id = 12345 self.flat_person.emergency_phone.number = "123-456-7890" self.flat_person.emergency_phone.type_yang = 'WORK' new_flat_phone = [ RwpersonDbYang.FlatPhoneNumber(), RwpersonDbYang.FlatPhoneNumber() ] new_flat_phone[0].number = '#1' new_flat_phone[1].number = '#2' self.flat_person.phone = new_flat_phone # recreate a person using to_xml and from_xml methods xml_str = self.flat_person.to_xml(model) recreated_flat_person = RwpersonDbYang.FlatPerson() recreated_flat_person.from_xml(model, xml_str) print("Person : ", self.flat_person) print("Recreated Person : ", recreated_flat_person) # check the newly created person is identical self.assertEqual(self.flat_person.name, recreated_flat_person.name) self.assertEqual(self.flat_person.email, recreated_flat_person.email) self.assertEqual(self.flat_person.employed, recreated_flat_person.employed) self.assertEqual(self.flat_person.id, recreated_flat_person.id) self.assertEqual(self.flat_person.emergency_phone.number, recreated_flat_person.emergency_phone.number) self.assertEqual(self.flat_person.emergency_phone.type_yang, recreated_flat_person.emergency_phone.type_yang) self.assertEqual(len(self.flat_person.phone), len(recreated_flat_person.phone)) for phone, recreated_phone in zip(self.flat_person.phone, recreated_flat_person.phone): self.assertEqual(phone.number, recreated_phone.number) self.assertEqual(phone.type_yang, recreated_phone.type_yang) flat_person = None recreated_flat_person = None new_flat_phone = None
def test_list_in_flat_person(self): self.assertNotEqual(self.flat_person.phone, None) self.assertEqual(len(self.flat_person.phone), 0) new_phone_inline = [ RwpersonDbYang.FlatPhoneNumber(), RwpersonDbYang.FlatPhoneNumber() ] new_phone_inline[0].number = '#1' new_phone_inline[1].number = '#2' self.flat_person.phone = new_phone_inline self.assertEqual(self.flat_person.phone[0], new_phone_inline[0]) self.assertEqual(self.flat_person.phone[1], new_phone_inline[1])
def test_flat_person_protobuf_conversion(self): self.flat_person.name = "test-name" self.flat_person.email = "*****@*****.**" self.flat_person.employed = True self.flat_person.id = 12345 self.flat_person.emergency_phone.number = "123-456-7890" self.flat_person.emergency_phone.type_yang = 'WORK' new_phone = [ RwpersonDbYang.FlatPhoneNumber(), RwpersonDbYang.FlatPhoneNumber() ] new_phone[0].number = '#1' new_phone[1].number = '#2' self.flat_person.phone = new_phone # recreate a flat person using to_pbuf and from_pbuf methods flat_pbuf = self.flat_person.to_pbuf() recreated_flat_person = RwpersonDbYang.FlatPerson() recreated_flat_person.from_pbuf(flat_pbuf) print("Flat Person : ", self.flat_person) print("Recreated Flat Person : ", recreated_flat_person) # check the newly created flat person is identical self.assertEqual(self.flat_person.name, recreated_flat_person.name) self.assertEqual(self.flat_person.email, recreated_flat_person.email) self.assertEqual(self.flat_person.employed, recreated_flat_person.employed) self.assertEqual(self.flat_person.id, recreated_flat_person.id) self.assertEqual(self.flat_person.emergency_phone.number, recreated_flat_person.emergency_phone.number) self.assertEqual(self.flat_person.emergency_phone.type_yang, recreated_flat_person.emergency_phone.type_yang) self.assertEqual(len(self.flat_person.phone), len(recreated_flat_person.phone)) for phone, recreated_phone in zip(self.flat_person.phone, recreated_flat_person.phone): self.assertEqual(phone.number, recreated_phone.number) self.assertEqual(phone.type_yang, recreated_phone.type_yang)