def test_pack_body(self):
     lsa_body = extension_abr.ExtensionAbr()
     lsa_body.add_abr_info(10, '1.1.1.1')
     self.assertEqual(TestExtensionAbr.body_bytes_1, lsa_body.pack_lsa_body())
     lsa_body.add_abr_info(15, '2.2.2.2')
     self.assertEqual(TestExtensionAbr.body_bytes_2, lsa_body.pack_lsa_body())
     lsa_body.add_abr_info(20, '3.3.3.3')
     self.assertEqual(TestExtensionAbr.body_bytes_3, lsa_body.pack_lsa_body())
     lsa_body.add_abr_info(0, '4.4.4.4')
     self.assertEqual(TestExtensionAbr.body_bytes_4, lsa_body.pack_lsa_body())
 def test_add_abr_info_invalid_parameters(self):
     lsa_body = extension_abr.ExtensionAbr()
     with self.assertRaises(ValueError):
         lsa_body.add_abr_info(-1, '1.1.1.1')
     with self.assertRaises(ValueError):
         lsa_body.add_abr_info(conf.MAX_VALUE_24_BITS + 1, '1.1.1.1')
     with self.assertRaises(ValueError):
         lsa_body.add_abr_info(1, '')
     with self.assertRaises(ValueError):
         lsa_body.add_abr_info(1, '2001:db8:cafe:1::')
 def test_delete_abr_info(self):
     lsa_body = extension_abr.ExtensionAbr()
     lsa_body.add_abr_info(10, '1.1.1.1')
     lsa_body.add_abr_info(200, '2.2.2.2')
     lsa_body.delete_abr_info('3.3.3.3')
     self.assertEqual([[10, '1.1.1.1'], [200, '2.2.2.2']], lsa_body.abr_list)
     lsa_body.delete_abr_info('1.1.1.1')
     self.assertEqual([[200, '2.2.2.2']], lsa_body.abr_list)
     lsa_body.delete_abr_info('1.1.1.1')
     self.assertEqual([[200, '2.2.2.2']], lsa_body.abr_list)
     lsa_body.delete_abr_info('2.2.2.2')
     self.assertEqual([], lsa_body.abr_list)
 def test_add_abr_info_successful(self):
     lsa_body = extension_abr.ExtensionAbr()
     self.assertEqual(0, len(lsa_body.abr_list))
     lsa_body.add_abr_info(0, '1.1.1.1')
     self.assertEqual(1, len(lsa_body.abr_list))
     self.assertEqual([[0, '1.1.1.1']], lsa_body.abr_list)
     lsa_body.add_abr_info(10, '1.1.1.1')
     self.assertEqual(1, len(lsa_body.abr_list))
     self.assertEqual([[0, '1.1.1.1']], lsa_body.abr_list)
     lsa_body.add_abr_info(conf.MAX_VALUE_24_BITS, '2.2.2.2')
     self.assertEqual(2, len(lsa_body.abr_list))
     self.assertEqual([[0, '1.1.1.1'], [conf.MAX_VALUE_24_BITS, '2.2.2.2']], lsa_body.abr_list)
 def test_get_abr_info(self):
     lsa_body = extension_abr.ExtensionAbr()
     self.assertIsNone(lsa_body.get_abr_info('1.1.1.1'))
     self.assertIsNone(lsa_body.get_abr_info('2.2.2.2'))
     lsa_body.add_abr_info(10, '1.1.1.1')
     self.assertIsNotNone(lsa_body.get_abr_info('1.1.1.1'))
     self.assertEqual([10, '1.1.1.1'], lsa_body.get_abr_info('1.1.1.1'))
     self.assertIsNone(lsa_body.get_abr_info('2.2.2.2'))
     lsa_body.add_abr_info(100, '2.2.2.2')
     self.assertIsNotNone(lsa_body.get_abr_info('1.1.1.1'))
     self.assertEqual([10, '1.1.1.1'], lsa_body.get_abr_info('1.1.1.1'))
     self.assertIsNotNone(lsa_body.get_abr_info('2.2.2.2'))
     self.assertEqual([100, '2.2.2.2'], lsa_body.get_abr_info('2.2.2.2'))
 def test_has_abr_info(self):
     lsa_body = extension_abr.ExtensionAbr()
     self.assertFalse(lsa_body.has_abr_info('1.1.1.1'))
     self.assertFalse(lsa_body.has_abr_info('2.2.2.2'))
     lsa_body.add_abr_info(10, '1.1.1.1')
     self.assertTrue(lsa_body.has_abr_info('1.1.1.1'))
     self.assertFalse(lsa_body.has_abr_info('2.2.2.2'))
     lsa_body.add_abr_info(20, '2.2.2.2')
     self.assertTrue(lsa_body.has_abr_info('1.1.1.1'))
     self.assertTrue(lsa_body.has_abr_info('2.2.2.2'))
     lsa_body.delete_abr_info('1.1.1.1')
     self.assertFalse(lsa_body.has_abr_info('1.1.1.1'))
     self.assertTrue(lsa_body.has_abr_info('2.2.2.2'))
     lsa_body.delete_abr_info('2.2.2.2')
     self.assertFalse(lsa_body.has_abr_info('1.1.1.1'))
     self.assertFalse(lsa_body.has_abr_info('2.2.2.2'))
 def create_extension_abr_lsa_body(self):
     self.body = extension_abr.ExtensionAbr()
     self.set_lsa_length()
     self.set_lsa_checksum()