def test_match_arn_pattern_invalid_resource_valueerror(self): with self.assertRaises(ValueError): match_arn_pattern( "arn:aws:appsync:us-west-2:123123123:bucket_name", "a1:b2:c3:d4:e5:f6") with self.assertRaises(ValueError): match_arn_pattern( "arn:aws:appsync:us-west-2:123123123:bucket_name", "arn:")
def test_match_arn_pattern_literal_nonmatch(self): tests = [ ("arn:${Partition}:s3:${Region}:${Account}:${Bucket}/${Object}", "arn:aws:s3:us-east-1:123123123:bucket_name") ] for a, b in tests: match = match_arn_pattern(a, b) self.assertFalse(match)
def test_match_arn_pattern_full_wildcard_match(self): match = match_arn_pattern( "arn:${Partition}:s3:${Region}:${Account}:${Bucket}", "*") self.assertTrue(match) self.assertEqual(match.grouplist, [("${Partition}", "*"), ("${Region}", "*"), ("${Account}", "*"), ("${Bucket}", "*")])
def test_match_arn_pattern_partial_wildcard_match(self): match = match_arn_pattern( "arn:${Partition}:s3:${Region}:${Account}:${Bucket}", "arn:aws:s*:::bucket_name") self.assertTrue(match) self.assertEqual(match.grouplist, [("${Partition}", "aws"), ("${Region}", ""), ("${Account}", ""), ("${Bucket}", "bucket_name")])
def test_match_arn_pattern_literal_match(self): tests = [ ("arn:${Partition}:s3:${Region}:${Account}:${Bucket}/${Object}", "arn:aws:s3:us-east-1:123123123:bucket_name/resource_name", [ ("${Partition}", "aws"), ("${Region}", "us-east-1"), ("${Account}", "123123123"), ("${Bucket}", "bucket_name"), ("${Object}", "resource_name") ]), ("arn:*:kms:*:*:key/*", "arn:aws:kms:*:693621191777:key/*", [("*", "aws"), ("*", "*"), ("*", "693621191777"), ("*", "*")]), ("arn:${Partition}:kinesis:${Region}:${Account}:stream/${StreamName}", "arn:aws:kinesis:us-east-1:693621191777:*", [ ("${Partition}", "aws"), ("${Region}", "us-east-1"), ("${Account}", "693621191777"), ("${StreamName}", "*") ]) ] for a, b, c in tests: match = match_arn_pattern(a, b) self.assertTrue(match) self.assertEqual(match.grouplist, c)
def test_match_arn_pattern_partial_wildcard_nonmatch(self): match = match_arn_pattern( "arn:${Partition}:s3:${Region}:${Account}:${Bucket}/${Object}", "arn:aws:s3?:us-east-1:123123123:bucket_name") self.assertFalse(match)