def test_read(self):
     concrete_anns = self.get_anns()
     ctx = SolverContext.create_context(concrete_anns)
     sym_anns = read_announcements(concrete_anns, ctx)
     self.assertEqual(len(sym_anns), len(concrete_anns))
     for sym_ann, con_ann in zip(sym_anns, concrete_anns):
         for attr in Announcement.attributes:
             if attr == 'communities':
                 for community in con_ann.communities:
                     con_val = con_ann.communities[community]
                     sym_val = sym_ann.communities[community]
                     if is_empty(con_val):
                         self.assertFalse(sym_val.is_concrete)
                     else:
                         self.assertTrue(sym_val.is_concrete)
                         self.assertEquals(sym_val.get_value(), con_val)
                 continue
             con_val = getattr(con_ann, attr)
             sym_val = getattr(sym_ann, attr)
             if is_empty(con_val):
                 self.assertFalse(sym_val.is_concrete)
             else:
                 self.assertTrue(sym_val.is_concrete)
                 if attr == 'as_path':
                     con_val = get_as_path_key(con_val)
                 sym_val_concrete = sym_val.get_value()
                 if attr == 'origin':
                     sym_val_concrete = BGP_ATTRS_ORIGIN.__members__[
                         sym_val_concrete]
                 self.assertEquals(sym_val_concrete, con_val)
 def test_create(self):
     # Arrange
     concrete_anns = self.get_anns()
     ctx = SolverContext.create_context(concrete_anns)
     # Act
     sym_anns = read_announcements(concrete_anns, ctx)
     # Assert
     self.assertEquals(len(sym_anns), 2)
 def test_sub(self):
     # Arrange
     concrete_anns = self.get_anns()
     ctx = SolverContext.create_context(concrete_anns)
     sym_anns = read_announcements(concrete_anns, ctx)
     mutator = self
     # Act
     new_anns = sym_anns.create_new([sym_anns[0]], mutator)
     new_anns2 = new_anns.create_new([new_anns[0]], mutator)
     self.assertEquals(len(sym_anns), 2)
     self.assertEquals(len(new_anns), 1)
     self.assertEquals(len(new_anns2), 1)
     self.assertEquals(sym_anns.mutators, [])
     self.assertEquals(new_anns.mutators, [mutator])
     self.assertEquals(new_anns2.mutators, [mutator, mutator])
Esempio n. 4
0
def get_sym(concrete_anns, ctx):
    return read_announcements(concrete_anns, ctx)