Browse Source

[2136] kept consistency in unittest due to the previous changes

Naoki Kambe 12 years ago
parent
commit
47dd0cc482
1 changed files with 78 additions and 74 deletions
  1. 78 74
      src/bin/stats/tests/b10-stats_test.py

+ 78 - 74
src/bin/stats/tests/b10-stats_test.py

@@ -289,7 +289,7 @@ class TestStats(unittest.TestCase):
         self.stats_server.shutdown()
 
     def test_update_modules(self):
-        self.assertEqual(len(self.stats.modules), 0)
+        self.assertEqual(len(self.stats.modules), 3) # Auth, Boss, Stats
         self.stats.update_modules()
         self.assertTrue('Stats' in self.stats.modules)
         self.assertTrue('Boss' in self.stats.modules)
@@ -329,13 +329,13 @@ class TestStats(unittest.TestCase):
         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.assertEqual(my_statistics_data['Stats']['boot_time'], self.const_default_datetime)
+        self.assertTrue('boot_time' in my_statistics_data['Stats'])
         my_statistics_data = self.stats.get_statistics_data(owner='Stats', name='last_update_time')
-        self.assertEqual(my_statistics_data['Stats']['last_update_time'], self.const_default_datetime)
+        self.assertTrue('last_update_time' in my_statistics_data['Stats'])
         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')
-        self.assertEqual(my_statistics_data, {'Stats': {'lname':''}})
+        self.assertTrue(len(my_statistics_data['Stats']['lname']) >0)
         self.assertRaises(stats.StatsError, self.stats.get_statistics_data,
                           owner='Stats', name='Bar')
         self.assertRaises(stats.StatsError, self.stats.get_statistics_data,
@@ -344,47 +344,49 @@ class TestStats(unittest.TestCase):
                           name='Bar')
 
     def test_update_statistics_data(self):
-        self.stats.update_statistics_data(owner='Stats', lname='foo@bar')
-        self.assertTrue('Stats' in self.stats.statistics_data)
-        my_statistics_data = self.stats.statistics_data['Stats']
-        self.assertEqual(my_statistics_data['lname'], 'foo@bar')
-        self.stats.update_statistics_data(owner='Stats', last_update_time=self.const_datetime)
-        self.assertTrue('Stats' in self.stats.statistics_data)
-        my_statistics_data = self.stats.statistics_data['Stats']
-        self.assertEqual(my_statistics_data['last_update_time'], self.const_datetime)
-        self.assertEqual(self.stats.update_statistics_data(owner='Stats', lname=0.0),
+        # success
+        self.assertEqual(self.stats.statistics_data['Stats']['lname'],
+                         self.stats.cc_session.lname)
+        self.stats.update_statistics_data(
+            'Stats', self.stats.cc_session.lname,
+            {'lname': 'foo@bar'})
+        self.assertEqual(self.stats.statistics_data['Stats']['lname'],
+                         'foo@bar')
+        # error case
+        self.assertEqual(self.stats.update_statistics_data('Stats', None,
+                                                           {'lname': 0.0}),
                          ['0.0 should be a string'])
-        self.assertEqual(self.stats.update_statistics_data(owner='Dummy', foo='bar'),
+        self.assertEqual(self.stats.update_statistics_data('Dummy', None,
+                                                           {'foo': 'bar'}),
                          ['unknown module name: Dummy'])
 
     def test_update_statistics_data_withmid(self):
         # one id of Auth
-        self.stats.update_statistics_data(owner='Auth',
-                                          mid="bar@foo",
-                                          **{'queries.tcp':1001})
+        self.stats.update_statistics_data('Auth', "bar@foo",
+                                          {'queries.tcp':1001})
         self.assertTrue('Auth' in self.stats.statistics_data)
         self.assertTrue('queries.tcp' in self.stats.statistics_data['Auth'])
-        self.assertEqual(self.stats.statistics_data['Auth']['queries.tcp'], 1001)
+        self.assertEqual(self.stats.statistics_data['Auth']['queries.tcp'], 1001 + 3 * 4)
         self.assertTrue('Auth' in self.stats.statistics_data_bymid)
         self.assertTrue('bar@foo' in self.stats.statistics_data_bymid['Auth'])
         self.assertTrue('queries.tcp' in self.stats.statistics_data_bymid['Auth']['bar@foo'])
         self.assertEqual(self.stats.statistics_data_bymid['Auth']['bar@foo']['queries.tcp'], 1001)
-        self.assertEqual(self.stats.statistics_data_bymid,
-                         {'Auth': {'bar@foo': {'queries.tcp': 1001}}})
+        self.assertEqual(self.stats.statistics_data_bymid['Auth']['bar@foo'],
+                         {'queries.tcp': 1001})
         # check consolidation of statistics data
-        self.stats.update_statistics_data(owner='Auth',
-                                          mid="bar2@foo",
-                                          **{'queries.tcp':2001})
+        self.stats.update_statistics_data('Auth', "bar2@foo",
+                                          {'queries.tcp':2001})
         self.assertTrue('Auth' in self.stats.statistics_data)
         self.assertTrue('queries.tcp' in self.stats.statistics_data['Auth'])
-        self.assertEqual(self.stats.statistics_data['Auth']['queries.tcp'], 3002)
+        self.assertEqual(self.stats.statistics_data['Auth']['queries.tcp'], 3002 + 3 * 4)
         self.assertTrue('Auth' in self.stats.statistics_data_bymid)
         self.assertTrue('bar@foo' in self.stats.statistics_data_bymid['Auth'])
         self.assertTrue('queries.tcp' in self.stats.statistics_data_bymid['Auth']['bar@foo'])
         self.assertEqual(self.stats.statistics_data_bymid['Auth']['bar@foo']['queries.tcp'], 1001)
-        self.assertEqual(self.stats.statistics_data_bymid,
-                         {'Auth': {'bar@foo': {'queries.tcp': 1001},
-                                   'bar2@foo': {'queries.tcp': 2001}}})
+        self.assertEqual(self.stats.statistics_data_bymid['Auth']['bar@foo'],
+                         {'queries.tcp': 1001})
+        self.assertEqual(self.stats.statistics_data_bymid['Auth']['bar2@foo'],
+                         {'queries.tcp': 2001})
         # kill running Auth but the statistics data is preserved
         self.assertEqual(self.base.boss.server.pid_list[0][0], 9999)
         killed = self.base.boss.server.pid_list.pop(0)
@@ -392,24 +394,24 @@ class TestStats(unittest.TestCase):
         self.assertTrue('Auth' in self.stats.statistics_data)
         self.assertTrue('queries.tcp' in self.stats.statistics_data['Auth'])
         self.assertTrue('queries.udp' in self.stats.statistics_data['Auth'])
-        self.assertEqual(self.stats.statistics_data['Auth']['queries.tcp'], 3002)
-        self.assertEqual(self.stats.statistics_data['Auth']['queries.udp'], 0)
+        self.assertEqual(self.stats.statistics_data['Auth']['queries.tcp'], 3002 + 3 * 4)
+        self.assertEqual(self.stats.statistics_data['Auth']['queries.udp'], 2 * 4)
         self.assertTrue('Auth' in self.stats.statistics_data_bymid)
         # restore statistics data of killed auth
         self.base.boss.server.pid_list = [ killed ] + self.base.boss.server.pid_list[:]
-        self.stats.update_statistics_data(owner='Auth',
-                                          mid="bar@foo",
-                                          **{'queries.tcp':1001})
+        self.stats.update_statistics_data('Auth',
+                                          "bar@foo",
+                                          {'queries.tcp': 1001})
         # another mid of Auth
-        self.stats.update_statistics_data(owner='Auth',
-                                          mid="bar3@foo",
-                                          **{'queries.tcp':1002,
-                                             'queries.udp':1003})
+        self.stats.update_statistics_data('Auth',
+                                          "bar3@foo",
+                                          {'queries.tcp':1002,
+                                           'queries.udp':1003})
         self.assertTrue('Auth' in self.stats.statistics_data)
         self.assertTrue('queries.tcp' in self.stats.statistics_data['Auth'])
         self.assertTrue('queries.udp' in self.stats.statistics_data['Auth'])
-        self.assertEqual(self.stats.statistics_data['Auth']['queries.tcp'], 4004)
-        self.assertEqual(self.stats.statistics_data['Auth']['queries.udp'], 1003)
+        self.assertEqual(self.stats.statistics_data['Auth']['queries.tcp'], 4004 + 3 * 4)
+        self.assertEqual(self.stats.statistics_data['Auth']['queries.udp'], 1003 + 2 * 4)
         self.assertTrue('Auth' in self.stats.statistics_data_bymid)
         self.assertTrue('bar@foo' in self.stats.statistics_data_bymid['Auth'])
         self.assertTrue('bar3@foo' in self.stats.statistics_data_bymid['Auth'])
@@ -421,33 +423,40 @@ class TestStats(unittest.TestCase):
         self.assertEqual(self.stats.statistics_data_bymid['Auth']['bar3@foo']['queries.udp'], 1003)
 
     def test_config(self):
+        orig_get_timestamp = stats.get_timestamp
+        stats.get_timestamp = lambda : self.const_timestamp
         stats_server = ThreadingServerManager(MyStats)
-        stats = stats_server.server
+        stat = stats_server.server
         # test updating poll-interval
-        self.assertEqual(stats.config['poll-interval'], 60)
-        self.assertEqual(stats.config_handler({'poll-interval': 120}),
+        self.assertEqual(stat.config['poll-interval'], 60)
+        self.assertEqual(stat.get_interval(), 60)
+        self.assertEqual(stat.next_polltime, self.const_timestamp + 60)
+        self.assertEqual(stat.config_handler({'poll-interval': 120}),
                          isc.config.create_answer(0))
-        self.assertEqual(stats.config['poll-interval'], 120)
-        self.assertEqual(stats.config_handler({'poll-interval': "foo"}),
+        self.assertEqual(stat.config['poll-interval'], 120)
+        self.assertEqual(stat.get_interval(), 120)
+        self.assertEqual(stat.next_polltime, self.const_timestamp + 120)
+        stats.get_timestamp = orig_get_timestamp
+        self.assertEqual(stat.config_handler({'poll-interval': "foo"}),
                          isc.config.create_answer(1, 'foo should be an integer'))
-        self.assertEqual(stats.config_handler({'poll-interval': -1}),
+        self.assertEqual(stat.config_handler({'poll-interval': -1}),
                          isc.config.create_answer(1, 'Negative integer ignored'))
         # unknown item
         self.assertEqual(
-            stats.config_handler({'_UNKNOWN_KEY_': None}),
+            stat.config_handler({'_UNKNOWN_KEY_': None}),
             isc.config.ccsession.create_answer(
                 1, "unknown item _UNKNOWN_KEY_"))
         # test no change if zero interval time
-        self.assertEqual(stats.config_handler({'poll-interval': 0}),
+        self.assertEqual(stat.config_handler({'poll-interval': 0}),
                          isc.config.create_answer(0))
-        self.assertEqual(stats.config['poll-interval'], 0)
+        self.assertEqual(stat.config['poll-interval'], 0)
         stats_server.run()
         self.assertEqual(
             send_command(
                 'show', 'Stats',
                 params={ 'owner' : 'Boss',
                   'name'  : 'boot_time' }),
-            (0, {'Boss': {'boot_time': '1970-01-01T00:00:00Z'}}))
+            (0, {'Boss': {'boot_time': self.const_datetime}}))
         stats_server.shutdown()
 
     def test_commands(self):
@@ -474,37 +483,32 @@ class TestStats(unittest.TestCase):
                 1, "specified arguments are incorrect: owner: Foo, name: bar"))
         self.assertEqual(self.stats.command_show(owner='Auth'),
                          isc.config.create_answer(
-                0, {'Auth':{ 'queries.udp': 0,
-                     'queries.tcp': 0,
+                0, {'Auth':{ 'queries.udp': 8,
+                     'queries.tcp': 12,
                      'queries.perzone': [{ 'zonename': 'test1.example',
-                                           'queries.udp': 1,
-                                           'queries.tcp': 2 },
-                                         { 'zonename': 'test2.example',
-                                           'queries.udp': 3,
-                                           'queries.tcp': 4 }] }}))
+                                           'queries.udp': 16,
+                                           'queries.tcp': 20 }
+                                         ]}}))
         self.assertEqual(self.stats.command_show(owner='Auth', name='queries.udp'),
                          isc.config.create_answer(
-                0, {'Auth': {'queries.udp':0}}))
+                0, {'Auth': {'queries.udp':8}}))
         self.assertEqual(self.stats.command_show(owner='Auth', name='queries.perzone'),
                          isc.config.create_answer(
                 0, {'Auth': {'queries.perzone': [{ 'zonename': 'test1.example',
-                      'queries.udp': 1,
-                      'queries.tcp': 2 },
-                    { 'zonename': 'test2.example',
-                      'queries.udp': 3,
-                      'queries.tcp': 4 }]}}))
-        orig_get_timestamp = stats.get_timestamp
+                      'queries.udp': 16,
+                      'queries.tcp': 20 }]}}))
         orig_get_datetime = stats.get_datetime
+        orig_get_timestamp = stats.get_timestamp
+        stats.get_datetime = lambda x=None: self.const_datetime
         stats.get_timestamp = lambda : self.const_timestamp
-        stats.get_datetime = lambda : self.const_datetime
-        self.assertEqual(stats.get_timestamp(), self.const_timestamp)
-        self.assertEqual(stats.get_datetime(), self.const_datetime)
-        self.assertEqual(self.stats.command_show(owner='Stats', name='report_time'), \
-                             isc.config.create_answer(0, {'Stats': {'report_time':self.const_datetime}}))
-        self.assertEqual(self.stats.statistics_data['Stats']['timestamp'], self.const_timestamp)
-        self.assertEqual(self.stats.statistics_data['Stats']['boot_time'], self.const_default_datetime)
-        stats.get_timestamp = orig_get_timestamp
+        self.assertEqual(self.stats.command_show(owner='Stats', name='report_time'),
+                         isc.config.create_answer(
+                0, {'Stats': {'report_time':self.const_datetime}}))
+        self.assertEqual(self.stats.command_show(owner='Stats', name='timestamp'),
+                         isc.config.create_answer(
+                0, {'Stats': {'timestamp':self.const_timestamp}}))
         stats.get_datetime = orig_get_datetime
+        stats.get_timestamp = orig_get_timestamp
         self.stats.mccs.specification = isc.config.module_spec.ModuleSpec(
             { "module_name": self.stats.module_name,
               "statistics": [] } )
@@ -794,15 +798,15 @@ class TestStats(unittest.TestCase):
             stat.statistics_data['Stats'])
         self.assertEqual(
             stat.statistics_data['Stats']['lname'],
-            stat.cc_session.lname)
+            stat.mccs._session.lname)
         stats_server.shutdown()
 
     def test_polling2(self):
-        stats_server = ThreadingServerManager(MyStats)
-        stat = stats_server.server
-        boss = self.base.boss.server
         # set invalid statistics
+        boss = self.base.boss.server
         boss.statistics_data = {'boot_time':1}
+        stats_server = ThreadingServerManager(MyStats)
+        stat = stats_server.server
         stats_server.run()
         self.assertEqual(
             send_command('status', 'Stats'),