예제 #1
0
 def test_parse_fail_when_lm_and_alm_used(self):
     invalid_config = {
         'test': {
             'description': 'a test group',
             'lm': {},
             'alm': {}
         }
     }
     with self.assertRaises(ConfigError) as context:
         EnvironmentGroupsParser.from_dict(invalid_config)
     self.assertEqual(
         str(context.exception),
         'Environment should not feature both \'lm\' and \'alm\'')
예제 #2
0
 def test_parse_invalid_arm(self):
     invalid_config = {
         'test': {
             'description': 'a test group',
             'arm': {
                 'invalid': {}
             }
         }
     }
     with self.assertRaises(ConfigError) as context:
         EnvironmentGroupsParser.from_dict(invalid_config)
     self.assertEqual(
         str(context.exception),
         'AnsibleRM environment cannot be configured without property: host (ip_address)'
     )
예제 #3
0
 def test_parse_lm_using_lm_key(self):
     valid_config = {
         'test': {
             'description': 'a test group',
             'lm': {
                 'host': 'test',
                 'port': 32455,
                 'protocol': 'http',
                 'secure': True,
                 'username': '******',
                 'password': '******',
                 'auth_host': 'auth',
                 'auth_port': 32456,
                 'auth_protocol': 'http'
             }
         }
     }
     groups_config = EnvironmentGroupsParser.from_dict(valid_config)
     self.assertIn('test', groups_config)
     test_group_config = groups_config['test']
     lm_config = test_group_config.lm
     self.assertIsInstance(lm_config, LmEnvironment)
     self.assertEqual(lm_config.name, 'alm')
     self.assertEqual(lm_config.host, 'test')
     self.assertEqual(lm_config.port, 32455)
     self.assertEqual(lm_config.protocol, 'http')
     self.assertEqual(lm_config.secure, True)
     self.assertEqual(lm_config.username, 'user')
     self.assertEqual(lm_config.password, 'secret')
     self.assertEqual(lm_config.auth_host, 'auth')
     self.assertEqual(lm_config.auth_port, 32456)
     self.assertEqual(lm_config.auth_protocol, 'http')
예제 #4
0
 def test_parse_multi_envs(self):
     valid_config = {
         'test': {
             'description': 'a test group',
             'alm': {
                 'host': 'test'
             },
             'arm': {
                 'first': {
                     'host': 'test'
                 },
                 'second': {
                     'host': 'test2'
                 }
             }
         },
         'test2': {
             'description': 'another test group',
             'alm': {
                 'host': 'test'
             },
             'arm': {
                 'first': {
                     'host': 'test'
                 },
                 'second': {
                     'host': 'test2'
                 }
             }
         }
     }
     groups_config = EnvironmentGroupsParser.from_dict(valid_config)
     self.assertIn('test', groups_config)
     self.assertIn('test2', groups_config)
예제 #5
0
 def test_parse_invalid_lm(self):
     invalid_config = {
         'test': {
             'description': 'a test group',
             'alm': {
                 'host': 'test',
                 'secure': True
             }
         }
     }
     with self.assertRaises(ConfigError) as context:
         EnvironmentGroupsParser.from_dict(invalid_config)
     self.assertEqual(
         str(context.exception),
         'Secure LM environment cannot be configured without property: username. If the LM environment is not secure then set \'secure\' to False'
     )
예제 #6
0
 def test_parse_arm_deprecated_properties(self):
     valid_config = {
         'test': {
             'description': 'a test group',
             'arm': {
                 'default': {
                     'ip_address': 'test',
                     'secure_port': False
                 }
             }
         }
     }
     groups_config = EnvironmentGroupsParser.from_dict(valid_config)
     self.assertIn('test', groups_config)
     test_group_config = groups_config['test']
     arms_config = test_group_config.arms
     self.assertEqual(len(arms_config), 1)
     self.assertIn('default', arms_config)
     default_arm_config = arms_config['default']
     self.assertIsInstance(default_arm_config, ArmEnvironment)
     self.assertEqual(default_arm_config.name, 'default')
     self.assertEqual(default_arm_config.host, 'test')
     self.assertEqual(default_arm_config.port, None)
     self.assertEqual(default_arm_config.protocol, 'http')
     self.assertEqual(default_arm_config.onboarding_addr, None)
예제 #7
0
 def test_parse_lm_deprecated_properties(self):
     valid_config = {
         'test': {
             'description': 'a test group',
             'alm': {
                 'ip_address': 'test',
                 'username': '******',
                 'auth_address': 'auth',
                 'secure_port': False
             }
         }
     }
     groups_config = EnvironmentGroupsParser.from_dict(valid_config)
     self.assertIn('test', groups_config)
     test_group_config = groups_config['test']
     lm_config = test_group_config.lm
     self.assertIsInstance(lm_config, LmEnvironment)
     self.assertEqual(lm_config.name, 'alm')
     self.assertEqual(lm_config.host, 'test')
     self.assertEqual(lm_config.port, None)
     self.assertEqual(lm_config.protocol, 'http')
     self.assertEqual(lm_config.secure, False)
     self.assertEqual(lm_config.username, 'user')
     self.assertEqual(lm_config.password, None)
     self.assertEqual(lm_config.auth_host, 'auth')
     self.assertEqual(lm_config.auth_port, None)
     self.assertEqual(lm_config.auth_protocol, 'http')
예제 #8
0
 def test_parse_lm_auth_defaults(self):
     valid_config = {
         'test': {
             'description': 'a test group',
             'alm': {
                 'host': 'test',
                 'secure': True,
                 'username': '******'
             }
         }
     }
     groups_config = EnvironmentGroupsParser.from_dict(valid_config)
     self.assertIn('test', groups_config)
     test_group_config = groups_config['test']
     lm_config = test_group_config.lm
     self.assertIsInstance(lm_config, LmEnvironment)
     self.assertEqual(lm_config.name, 'alm')
     self.assertEqual(lm_config.host, 'test')
     self.assertEqual(lm_config.port, None)
     self.assertEqual(lm_config.protocol, 'https')
     self.assertEqual(lm_config.secure, True)
     self.assertEqual(lm_config.username, 'user')
     self.assertEqual(lm_config.password, None)
     self.assertEqual(lm_config.auth_host, 'test')
     self.assertEqual(lm_config.auth_port, None)
     self.assertEqual(lm_config.auth_protocol, 'https')
예제 #9
0
 def test_parse_arm(self):
     valid_config = {
         'test': {
             'description': 'a test group',
             'arm': {
                 'first': {
                     'host': 'test',
                     'port': 1,
                     'protocol': 'http',
                     'onboarding_addr': 'http://onboard'
                 },
                 'second': {
                     'host': 'test2',
                     'port': 2,
                     'protocol': 'https',
                     'onboarding_addr': 'http://onboard2'
                 }
             }
         }
     }
     groups_config = EnvironmentGroupsParser.from_dict(valid_config)
     self.assertIn('test', groups_config)
     test_group_config = groups_config['test']
     arms_config = test_group_config.arms
     self.assertEqual(len(arms_config), 2)
     self.assertIn('first', arms_config)
     first_arm_config = arms_config['first']
     self.assertIsInstance(first_arm_config, ArmEnvironment)
     self.assertEqual(first_arm_config.name, 'first')
     self.assertEqual(first_arm_config.host, 'test')
     self.assertEqual(first_arm_config.port, 1)
     self.assertEqual(first_arm_config.protocol, 'http')
     self.assertEqual(first_arm_config.onboarding_addr, 'http://onboard')
     self.assertIn('second', arms_config)
     second_arm_config = arms_config['second']
     self.assertIsInstance(second_arm_config, ArmEnvironment)
     self.assertEqual(second_arm_config.name, 'second')
     self.assertEqual(second_arm_config.host, 'test2')
     self.assertEqual(second_arm_config.port, 2)
     self.assertEqual(second_arm_config.protocol, 'https')
     self.assertEqual(second_arm_config.onboarding_addr, 'http://onboard2')
예제 #10
0
 def test_parse_group(self):
     valid_config = {'test': {'description': 'a test group'}}
     groups_config = EnvironmentGroupsParser.from_dict(valid_config)
     self.assertIn('test', groups_config)
     test_group_config = groups_config['test']
     self.assertEqual(test_group_config.description, 'a test group')