# isc.cc.Session, time.time() and time.sleep() are restored
# during tearDown().
+ def _start_cfgmgr_helper(self, bob, data_path, filename, clear_config):
+ expect_args = ['b10-cfgmgr']
+ if data_path is not None:
+ bob.data_path = data_path
+ expect_args.append('--data-path=' + data_path)
+ if filename is not None:
+ bob.config_filename = filename
+ expect_args.append('--config-filename=' + filename)
+ if clear_config:
+ bob.clear_config = clear_config
+ expect_args.append('--clear-config')
+
+ pi = bob.start_cfgmgr()
+ self.assertEqual('b10-cfgmgr', pi.name)
+ self.assertEqual(expect_args, pi.args)
+ self.assertEqual({'TESTENV': 'A test string'}, pi.env)
+
+ # this is set by ProcessInfo.spawn()
+ self.assertEqual(42147, pi.pid)
+
def test_start_cfgmgr(self):
'''Test that b10-cfgmgr is started.'''
class DummySession():
time.sleep = _my_sleep
# defaults
- pi = bob.start_cfgmgr()
- self.assertEqual('b10-cfgmgr', pi.name)
- self.assertEqual(['b10-cfgmgr'], pi.args)
- self.assertEqual({'TESTENV': 'A test string'}, pi.env)
-
- # this is set by ProcessInfo.spawn()
- self.assertEqual(42147, pi.pid)
+ self._start_cfgmgr_helper(bob, None, None, False)
# check that 2 attempts were made. on the 3rd attempt,
# process_running() returns that ConfigManager is running.
self.assertEqual(attempts, 2)
# data_path is specified
- bob.data_path = '/var/lib/test'
- pi = bob.start_cfgmgr()
- self.assertEqual('b10-cfgmgr', pi.name)
- self.assertEqual(['b10-cfgmgr',
- '--data-path=/var/lib/test'],
- pi.args)
- self.assertEqual({'TESTENV': 'A test string'}, pi.env)
-
- # this is set by ProcessInfo.spawn()
- self.assertEqual(42147, pi.pid)
-
- # config_filename is specified
- bob.config_filename = 'foo.cfg'
- pi = bob.start_cfgmgr()
- self.assertEqual('b10-cfgmgr', pi.name)
- self.assertEqual(['b10-cfgmgr',
- '--data-path=/var/lib/test',
- '--config-filename=foo.cfg'],
- pi.args)
- self.assertEqual({'TESTENV': 'A test string'}, pi.env)
+ self._start_cfgmgr_helper(bob, '/var/lib/test', None, False)
- # this is set by ProcessInfo.spawn()
- self.assertEqual(42147, pi.pid)
-
- # clear_config is specified
- bob.clear_config = True
- pi = bob.start_cfgmgr()
- self.assertEqual('b10-cfgmgr', pi.name)
- self.assertEqual(['b10-cfgmgr',
- '--data-path=/var/lib/test',
- '--config-filename=foo.cfg',
- '--clear-config'],
- pi.args)
- self.assertEqual({'TESTENV': 'A test string'}, pi.env)
+ # config_filename is specified. Because `bob` is not
+ # reconstructed, data_path is retained from the last call to
+ # _start_cfgmgr_helper().
+ self._start_cfgmgr_helper(bob, '/var/lib/test', 'foo.cfg', False)
- # this is set by ProcessInfo.spawn()
- self.assertEqual(42147, pi.pid)
+ # clear_config is specified. Because `bob` is not reconstructed,
+ # data_path and config_filename are retained from the last call
+ # to _start_cfgmgr_helper().
+ self._start_cfgmgr_helper(bob, '/var/lib/test', 'foo.cfg', True)
def test_start_cfgmgr_timeout(self):
'''Test that b10-cfgmgr startup attempts connections several times