Пример #1
0
 def test_gen_uuid_matches_regex(self):
     pg = ParamGen(**self.class_kwargs)
     generated_uuid = pg._gen_uuid()
     self.assertRegex(
         generated_uuid,
         re.compile(
             '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}')
     )
Пример #2
0
 def test_get_available_azs(self):
     pg = ParamGen(**self.class_kwargs)
     acceptable_azs = ['us-east-1a','us-east-1b','us-east-1c','us-east-1d','us-east-1e','us-east-1f']
     pg._boto_client = MockClientFactory()
     returned_azs = pg.get_available_azs(2)
     returned_az_list = returned_azs.split(',')
     test_criteria = [
         # tuple (first_param, second_param, test_description)
         (len(returned_az_list), 2, "Verifying we return 2 AZs"),
         (len(set(returned_az_list)), 2, "Verifying we return 2 *unique* AZs")
     ]
     for first_param, second_param, test_desc in test_criteria:
         with self.subTest(test_desc):
             self.assertEqual(first_param, second_param)
Пример #3
0
 def test_genpassword_type(self):
     pg = ParamGen(**self.class_kwargs)
     genpassword_criteria = [
         # A tuple of (func_call, length, flags, re.Pattern, description)
         (pg.genpassword, 15, None, re.compile('[0-9A-Za-z]'), 'Testing a 15 character password. Default PW type'),
         (pg.genpassword, 15, 'S', re.compile("[!#\$&{\*:\[=,\]-_%\+a-zA-Z0-9]+"), 'Testing a 15 character password, Special Characters Type'),
         (pg.genpassword, 15, 'A', re.compile('[0-9A-Za-z]'), 'Testing a 15 character password, Alphanumeric Character Type')
     ]
     for func_call, pwlen, pwflags, re_pattern, test_desc in genpassword_criteria:
         with self.subTest(test_desc):
             self.assertRegex(func_call(pwlen, pwflags), re_pattern)
Пример #4
0
 def test_regex_replace_param_value(self):
     pg = ParamGen(**self.class_kwargs)
     pg.param_name = 'test_param'
     pg.param_value = 'example-foo-value'
     re_pattern = re.compile('foo')
     pg._regex_replace_param_value(re_pattern, 'bar')
     self.assertEqual(pg.param_value, 'example-bar-value')
Пример #5
0
 def test_param_transform(self):
     input_params = [
         {
             "ParameterKey": "AvailabilityZones",
             "ParameterValue": "$[taskcat_genaz_3]"
         },
         {
             "ParameterKey":"SingleAZ",
             "ParameterValue": "$[taskcat_getsingleaz_2]"
         },
         {
             "ParameterKey": "StackName",
             "ParameterValue": "TestStack"
         },
         {
             "ParameterKey": "ByteValue",
             "ParameterValue": '1'
         },
         {
             "ParameterKey": "UUID",
             "ParameterValue": "$[taskcat_genuuid]"
         },
         {
             "ParameterKey": "RandomNumber",
             "ParameterValue": "$[taskcat_random-numbers]"
         },
         {
             "ParameterKey": "RandomString",
             "ParameterValue": "$[taskcat_random-string]"
         },
         {
             "ParameterKey": "UUID",
             "ParameterValue": "$[taskcat_genuuid]"
         },
         {
             "ParameterKey": "PasswordA",
             "ParameterValue": "$[taskcat_genpass_8A]"
         },
         {
             "ParameterKey": "PasswordAConfirm",
             "ParameterValue": "$[taskcat_getval_PasswordA]"
         },
         {
             "ParameterKey": "PasswordB",
             "ParameterValue": "$[taskcat_genpass_32S]"
         },
         {
             "ParameterKey":"LocalOverrideTest",
             "ParameterValue":"override"
         },
         {
             "ParameterKey":"GlobalOverrideTest",
             "ParameterValue":"override"
         }
     ]
     bclient = MockClientFactory()
     bclient.logger = logger
     class_kwargs = self.class_kwargs
     class_kwargs['param_list'] = input_params
     class_kwargs['boto_client'] =  bclient
     pg = ParamGen(**class_kwargs)
     pg.transform_parameter()
     transformed_params = [x['ParameterValue'] for x in pg.results]
     original_params = [x['ParameterValue'] for x in input_params]
     ignore_patterns = ['RE_COUNT']
     missed_regex_patterns = []
     regex_pattern_text = set()
     _found = False
     for rp in self.regex_patterns:
         regex_pattern_text.add(rp.test_pattern_attribute)
         for tp in transformed_params:
             if rp.test_pattern_attribute in ignore_patterns:
                 continue
             with self.subTest("Transformed Value: {} must not match Regex: {}".format(tp, rp.test_pattern_attribute)):
                 self.assertNotRegex(tp, getattr(pg,rp.test_pattern_attribute))
     regex_pattern_text = list(regex_pattern_text)
     for rp in self.regex_patterns:
         regex_test = re.compile(getattr(pg, rp.test_pattern_attribute))
         for tp in original_params:
             if regex_test.search(tp):
                 _found = True
         if not _found:
             missed_regex_patterns.append(rp.test_pattern_attribute)
     self.assertEqual(missed_regex_patterns, [])
     with self.subTest("SingleAZ transformed value must be us-east-1b"):
         for r in pg.results:
             if r['ParameterKey'] == 'SingleAZ':
                 self.assertEqual(r['ParameterValue'], 'us-east-1b')
Пример #6
0
 def test_convert_to_str(self):
     pg = ParamGen(**self.class_kwargs)
     pg.param_name = 'test_param'
     pg.param_value = 1234
     pg.convert_to_str()
     self.assertEqual(pg.param_value, '1234')
Пример #7
0
 def test_gen_uuid_is_string(self):
     pg = ParamGen(**self.class_kwargs)
     generated_uuid = pg._gen_uuid()
     self.assertEqual(type(generated_uuid), type(str()))
Пример #8
0
 def test_gen_rand_num_len(self):
     genstr = ParamGen._gen_rand_num(78)
     self.assertEqual(len(genstr), 78)
Пример #9
0
 def test_gen_rand_num(self):
     genstr = ParamGen._gen_rand_num(24)
     self.assertRegex(genstr, re.compile('[0-9]'))
Пример #10
0
 def test_gen_rand_str_len(self):
     genstr = ParamGen._gen_rand_str(33)
     self.assertEqual(len(genstr), 33)
Пример #11
0
 def test_gen_rand_str_regex(self):
     genstr = ParamGen._gen_rand_str(24)
     self.assertRegex(genstr, re.compile('[a-z]'))
Пример #12
0
 def test_genpassword_length(self):
     pg = ParamGen(**self.class_kwargs)
     self.assertEqual(len(pg.genpassword(15)), 15)
Пример #13
0
 def test_get_content(self):
     pg = ParamGen(**self.class_kwargs)
     pg._boto_client = MockClientFactory()
     self.assertEqual(pg.get_content(bucket='unit-test-bucket', object_key='unit-test-key'), 'unicorns')
Пример #14
0
 def test_genaz_raises_taskcat_exception(self):
     pg = ParamGen(**self.class_kwargs)
     pg._boto_client = MockClientFactory(ec2_single_az=True)
     with self.assertRaises(TaskCatException):
         pg.get_available_azs(2)
Пример #15
0
 def test_special_regular_expression(self):
     pg = ParamGen(**self.class_kwargs)
     self.assertEqual(pg.regxfind(ParamGen.RE_COUNT, '$[taskcat_getaz_2]'), '2')
     self.assertEqual(pg.regxfind(ParamGen.RE_COUNT, '$[taskcat_genpass_8]'), '8')
Пример #16
0
 def test_regxfind(self):
     pg = ParamGen(**self.class_kwargs)
     re_object = re.compile('foo')
     self.assertEqual(pg.regxfind(re_object, 'aslkjfafoo'), 'foo')