def test_json_dict(self): p = OlsrParser(links2) data = p.json(dict=True) self.assertIsInstance(data, dict) self.assertEqual(data['type'], 'NetworkGraph') self.assertEqual(data['protocol'], 'OLSR') self.assertEqual(data['version'], '0.8') self.assertEqual(data['revision'], None) self.assertEqual(data['metric'], 'ETX') self.assertIsInstance(data['nodes'], list) self.assertIsInstance(data['links'], list) self.assertEqual(len(data['nodes']), 3) self.assertEqual(len(data['links']), 2) self.assertIsInstance(data['links'][0]['cost'], float) # test additional properties properties = data['links'][0]['properties'] self.assertIsInstance(properties['link_quality'], float) self.assertIsInstance(properties['neighbor_link_quality'], float) # test local_addresses self.assertIsInstance(data['nodes'][0]['local_addresses'], list) found = False for node in data['nodes']: if node['id'] == '10.150.0.2': self.assertEqual(len(node['local_addresses']), 2) self.assertEqual(node['local_addresses'][0], '172.16.192.2') self.assertEqual(node['local_addresses'][1], '192.168.0.2') found = True self.assertTrue(found)
def test_cost(self): parser = OlsrParser(links2) graph = parser.json(dict=True) a = graph['links'][0]['cost'] b = graph['links'][1]['cost'] self.assertIn(27.669, [a, b]) self.assertIn(1.0, [a, b])
def test_weight(self): parser = OlsrParser(links2) graph = parser.json(dict=True) a = graph['links'][0]['weight'] b = graph['links'][1]['weight'] self.assertIn(27.669921875, [a, b]) self.assertIn(1.0, [a, b])
def test_weight(self): parser = OlsrParser(links2) graph = parser.json(dict=True) a = str(graph['links'][0]['weight'])[0:3] b = str(graph['links'][1]['weight'])[0:3] self.assertIn('27.', [a, b]) self.assertIn('1.0', [a, b])
def test_json_dict(self): p = OlsrParser(links2) data = p.json(dict=True) self.assertIsInstance(data, dict) self.assertEqual(data['type'], 'NetworkGraph') self.assertEqual(data['protocol'], 'OLSR') self.assertEqual(data['version'], '0.6.6') self.assertEqual(data['revision'], '5031a799fcbe17f61d57e387bc3806de') self.assertEqual(data['metric'], 'ETX') self.assertIsInstance(data['nodes'], list) self.assertIsInstance(data['links'], list) self.assertEqual(len(data['nodes']), 3) self.assertEqual(len(data['links']), 2)
def test_json_string(self): p = OlsrParser(links2) data = p.json() self.assertIsInstance(data, six.string_types) self.assertIn('NetworkGraph', data) self.assertIn('protocol', data) self.assertIn('version', data) self.assertIn('revision', data) self.assertIn('metric', data) self.assertIn('OLSR', data) self.assertIn('0.8', data) self.assertIn('null', data) self.assertIn('ETX', data) self.assertIn('links', data) self.assertIn('nodes', data)
def test_json_string(self): p = OlsrParser(links2) data = p.json() self.assertIsInstance(data, six.string_types) self.assertIn('NetworkGraph', data) self.assertIn('protocol', data) self.assertIn('version', data) self.assertIn('revision', data) self.assertIn('metric', data) self.assertIn('OLSR', data) self.assertIn('0.6.6', data) self.assertIn('5031a799fcbe17f61d57e387bc3806de', data) self.assertIn('ETX', data) self.assertIn('links', data) self.assertIn('nodes', data)
def test_infinite_cost(self): data = 'Table: Topology\nDest. IP\tLast hop IP\tLQ\tNLQ\tCost\n10.150.0.3\t10.150.0.2\t0.195\t0.184\tINFINITE\n\n' p = OlsrParser(data) cost = p.json(dict=True)['links'][0]['weight'] self.assertEqual(cost, float('inf'))
def test_cost(self): parser = OlsrParser(links2) graph = parser.json(dict=True) self.assertEqual(27.669, graph['links'][0]['cost']) self.assertEqual(1.0, graph['links'][1]['cost'])
def test_weight(self): parser = OlsrParser(links2) graph = parser.json(dict=True) self.assertEqual(str(graph['links'][0]['weight'])[0:3], '27.') self.assertEqual(graph['links'][1]['weight'], 1.0)