コード例 #1
0
 def test_assess_bootstrap_part_to(self):
     args = parse_args(['to', 'bar'])
     with assess_bootstrap_cxt():
         with self.sub_assess_mocks() as (base_mock, metadata_mock,
                                          to_mock):
             with patch('jujupy.ModelClient.get_full_path'):
                 assess_bootstrap(args)
     self.assertEqual(0, base_mock.call_count)
     self.assertEqual(0, metadata_mock.call_count)
     self.assertEqual(1, to_mock.call_count)
コード例 #2
0
 def test_assess_to_fails(self):
     with extended_bootstrap_cxt('2.0.0'):
         with patch('jujupy.ModelClient.bootstrap', autospec=True):
             with patch('assess_bootstrap.get_controller_address',
                        return_value='255.1.1.0', autospec=True):
                 args = parse_args(['to', 'bar', '/foo',
                                    '--to', '255.1.13.0'])
                 args.temp_env_name = 'qux'
                 bs_manager = BootstrapManager.from_args(args)
                 with self.assertRaises(JujuAssertionError):
                     assess_to(bs_manager, args.to)
コード例 #3
0
 def test_assess_base_bootstrap_defaults(self):
     def check(myself):
         self.assertEqual(myself.env.config,
                          {'name': 'bar', 'type': 'foo'})
     with extended_bootstrap_cxt():
         with patch('jujupy.ModelClient.bootstrap', side_effect=check,
                    autospec=True):
             assess_bootstrap(parse_args(['base', 'bar', '/foo']))
     self.assertRegexpMatches(
         self.log_stream.getvalue(),
         r"(?m)^INFO Environment successfully bootstrapped.$")
コード例 #4
0
 def test_parse_args(self):
     with temp_dir() as log_dir:
         args = parse_args(['base', 'foo', 'bar', log_dir, 'baz'])
         self.assertEqual(
             Namespace(
                 agent_stream=None, agent_url=None, bootstrap_host=None,
                 deadline=None, debug=False, env='foo', juju_bin='bar',
                 keep_env=False, local_metadata_source=None, logs=log_dir,
                 machine=[], part='base', region=None, series=None,
                 temp_env_name='baz', to=None, upload_tools=False,
                 verbose=20),
             args)
コード例 #5
0
 def test_assess_metadata_valid_url(self):
     with extended_bootstrap_cxt('2.0.0'):
         with patch('jujupy.ModelClient.bootstrap', autospec=True):
             args = parse_args(['metadata', 'bar', '/foo'])
             args.temp_env_name = 'qux'
             bs_manager = BootstrapManager.from_args(args)
             with patch.object(
                     bs_manager.client, 'get_model_config',
                     return_value={'agent-metadata-url':
                                   {'value': 'example.com/valid'}}):
                 with self.assertRaises(JujuAssertionError):
                     assess_metadata(bs_manager, None)
コード例 #6
0
 def test_assess_metadata_local_source(self):
     def check(myself, metadata_source=None):
         self.assertEqual(self.target_dict, myself.env._config)
         self.assertEqual('agents', metadata_source)
     with extended_bootstrap_cxt('2.0.0'):
         with patch('jujupy.ModelClient.bootstrap', side_effect=check,
                    autospec=True):
             args = parse_args(['metadata', 'bar', '/foo'])
             args.temp_env_name = 'qux'
             bs_manager = BootstrapManager.from_args(args)
             with patch.object(
                     bs_manager.client, 'get_model_config',
                     side_effect=lambda: self.get_url(bs_manager)):
                 assess_metadata(bs_manager, 'agents')
コード例 #7
0
 def test_assess_to(self):
     args = parse_args(
         ['to', 'bar', '/foo', '--region', 'baz', '--to', 'test-host'])
     args.temp_env_name = 'qux'
     with extended_bootstrap_cxt('2.0.0'):
         with patch('jujupy.ModelClient.juju', autospec=True,
                    return_value=make_fake_juju_return()) as j_mock:
             with patch('assess_bootstrap.get_controller_hostname',
                        return_value='test-host', autospec=True):
                 bs_manager = BootstrapManager.from_args(args)
                 assess_to(bs_manager, args.to)
     bootstrap_args = [
         c[1][2] for c in j_mock.mock_calls if c[1][1] == 'bootstrap'][0]
     to_pos = bootstrap_args.index('--to')
     self.assertEqual('test-host', bootstrap_args[to_pos + 1])
コード例 #8
0
 def test_assess_base_bootstrap_region_temp_env(self):
     def check(myself):
         self.assertEqual(
             myself.env.config, {
                 'name': 'qux', 'type': 'foo', 'region': 'baz'})
         self.assertEqual(myself.env.environment, 'qux')
     with extended_bootstrap_cxt():
         with patch('jujupy.ModelClient.bootstrap', side_effect=check,
                    autospec=True):
             args = parse_args(['base', 'bar', '/foo'])
             args.region = 'baz'
             args.temp_env_name = 'qux'
             assess_bootstrap(args)
     self.assertRegexpMatches(
         self.log_stream.getvalue(),
         r"(?m)^INFO Environment successfully bootstrapped.$")
コード例 #9
0
 def test_parse_args_debug(self):
     args = parse_args(['base', 'foo', 'bar', '--debug'])
     self.assertIsTrue(args.debug)
コード例 #10
0
 def test_parse_args_part(self):
     args = parse_args(['metadata'])
     self.assertEqual(args.part, 'metadata')
コード例 #11
0
 def test_parse_args_to(self):
     args = parse_args(['to', 'foo', 'bar', '--to', 'qux'])
     self.assertEqual(args.to, 'qux')
コード例 #12
0
 def test_parse_args_local_metadata_source(self):
     args = parse_args(['base', 'foo', 'bar',
                        '--local-metadata-source', 'qux'])
     self.assertEqual(args.local_metadata_source, 'qux')
コード例 #13
0
 def test_parse_args_temp_env_name(self):
     args = parse_args(['base', 'fee', 'fi', 'foe', 'fum'])
     self.assertEqual(args.temp_env_name, 'fum')
コード例 #14
0
 def test_parse_args_region(self):
     args = parse_args(['base', 'foo', 'bar', '--region', 'foo'])
     self.assertEqual(args.region, 'foo')