(1, "Unknown command: '__UNKNOWN__'"))
def test_update_modules(self):
- self.stats = stats.Stats()
- self.assertEqual(len(self.stats.modules), 3) # Auth, Init, Stats
+ """Confirm the behavior of Stats.update_modules().
+
+ It checks whether the expected command is sent to ConfigManager,
+ and whether the answer from ConfigManager is handled as expected.
+
+ """
+
+ def __check_group_sendmsg(command, destination):
+ self.assertEqual('ConfigManager', destination)
+ cmd, value = isc.config.ccsession.parse_command(command)
+ self.assertEqual(cmd,
+ isc.config.ccsession.COMMAND_GET_STATISTICS_SPEC)
+ self.assertEqual(None, value)
+ return 42 # faked seq number
+
+ def __check_group_recvmsg(nonblocking, seq):
+ self.assertFalse(nonblocking)
+ self.assertEqual(42, seq) # should be the one returned above
+ answer = isc.config.ccsession.create_answer(
+ 0, {'Init': [{
+ "item_name": "boot_time",
+ "item_type": "string",
+ "item_optional": False,
+ "item_default": "1970-01-01T00:00:00Z",
+ "item_title": "Boot time",
+ "item_description": "dummy desc",
+ "item_format": "date-time"
+ }]})
+ return answer, None
+
+ self.stats = self.SimpleStat()
+ self.stats.cc_session.group_sendmsg = __check_group_sendmsg
+ self.stats.cc_session.group_recvmsg = __check_group_recvmsg
+
self.stats.update_modules()
+
+ # Stats is always inconrporated. For others, only the ones returned
+ # by group_recvmsg() above is available.
self.assertTrue('Stats' in self.stats.modules)
self.assertTrue('Init' in self.stats.modules)
self.assertFalse('Dummy' in self.stats.modules)
- my_statistics_data = stats.get_spec_defaults(self.stats.modules['Stats'].get_statistics_spec())
+
+ my_statistics_data = stats.get_spec_defaults(
+ self.stats.modules['Stats'].get_statistics_spec())
self.assertTrue('report_time' in my_statistics_data)
self.assertTrue('boot_time' in my_statistics_data)
self.assertTrue('last_update_time' in my_statistics_data)
self.assertTrue('timestamp' in my_statistics_data)
self.assertTrue('lname' in my_statistics_data)
- self.assertEqual(my_statistics_data['report_time'], self.const_default_datetime)
- self.assertEqual(my_statistics_data['boot_time'], self.const_default_datetime)
- self.assertEqual(my_statistics_data['last_update_time'], self.const_default_datetime)
+ self.assertEqual(my_statistics_data['report_time'],
+ self.const_default_datetime)
+ self.assertEqual(my_statistics_data['boot_time'],
+ self.const_default_datetime)
+ self.assertEqual(my_statistics_data['last_update_time'],
+ self.const_default_datetime)
self.assertEqual(my_statistics_data['timestamp'], 0.0)
self.assertEqual(my_statistics_data['lname'], "")
- my_statistics_data = stats.get_spec_defaults(self.stats.modules['Init'].get_statistics_spec())
+ my_statistics_data = stats.get_spec_defaults(
+ self.stats.modules['Init'].get_statistics_spec())
self.assertTrue('boot_time' in my_statistics_data)
- self.assertEqual(my_statistics_data['boot_time'], self.const_default_datetime)
+ self.assertEqual(my_statistics_data['boot_time'],
+ self.const_default_datetime)
+
+ # Error case
orig_parse_answer = stats.isc.config.ccsession.parse_answer
stats.isc.config.ccsession.parse_answer = lambda x: (99, 'error')
self.assertRaises(stats.StatsError, self.stats.update_modules)
self.assertTrue('Stats' in my_statistics_data)
self.assertTrue('Init' in my_statistics_data)
self.assertTrue('boot_time' in my_statistics_data['Init'])
+
my_statistics_data = self.stats.get_statistics_data(owner='Stats')
self.assertTrue('Stats' in my_statistics_data)
self.assertTrue('report_time' in my_statistics_data['Stats'])
self.assertTrue('last_update_time' in my_statistics_data['Stats'])
self.assertTrue('timestamp' in my_statistics_data['Stats'])
self.assertTrue('lname' in my_statistics_data['Stats'])
- self.assertRaises(stats.StatsError, self.stats.get_statistics_data, owner='Foo')
- my_statistics_data = self.stats.get_statistics_data(owner='Stats', name='report_time')
- self.assertEqual(my_statistics_data['Stats']['report_time'], self.const_default_datetime)
- my_statistics_data = self.stats.get_statistics_data(owner='Stats', name='boot_time')
+ self.assertRaises(stats.StatsError, self.stats.get_statistics_data,
+ owner='Foo')
+
+ my_statistics_data = self.stats.get_statistics_data(
+ owner='Stats', name='report_time')
+ self.assertEqual(my_statistics_data['Stats']['report_time'],
+ self.const_default_datetime)
+
+ my_statistics_data = self.stats.get_statistics_data(
+ owner='Stats', name='boot_time')
self.assertTrue('boot_time' in my_statistics_data['Stats'])
- my_statistics_data = self.stats.get_statistics_data(owner='Stats', name='last_update_time')
+
+ my_statistics_data = self.stats.get_statistics_data(
+ owner='Stats', name='last_update_time')
self.assertTrue('last_update_time' in my_statistics_data['Stats'])
- my_statistics_data = self.stats.get_statistics_data(owner='Stats', name='timestamp')
+
+ my_statistics_data = self.stats.get_statistics_data(
+ owner='Stats', name='timestamp')
self.assertEqual(my_statistics_data['Stats']['timestamp'], 0.0)
- my_statistics_data = self.stats.get_statistics_data(owner='Stats', name='lname')
+
+ my_statistics_data = self.stats.get_statistics_data(
+ owner='Stats', name='lname')
self.assertTrue(len(my_statistics_data['Stats']['lname']) >0)
self.assertRaises(stats.StatsError, self.stats.get_statistics_data,
owner='Stats', name='Bar')