Exemplo n.º 1
0
class AmazonWebServicesTest(TestCase):
    regions = amazon_web_services.Provider._regions
    azs = amazon_web_services.Provider._availability_zones
    volume_types = amazon_web_services.Provider._volume_types
    instance_type_series = amazon_web_services.Provider._instance_type_series
    instance_types = amazon_web_services.Provider._instance_types

    def setUp(self):
        self.factory = Faker()
        self.factory.add_provider(amazon_web_services.Provider)

    def test_region(self):
        for i in range(1000):
            region = self.factory.region()
            self.assertIn(region, self.regions)
            self.assertIsInstance(region, tuple)

    def test_region_name(self):
        for i in range(1000):
            region = self.factory.region_name()
            self.assertIsInstance(region, str)

    def test_region_code(self):
        for i in range(1000):
            region = self.factory.region_code()
            self.assertIsInstance(region, str)

    def test_availability_zone(self):
        for i in range(1000):
            az = self.factory.availability_zone()
            self.assertIsInstance(az, str)

        for i in range(1000):
            region_code = self.factory.region_code()
            az = self.factory.availability_zone(region_code)
            self.assertIsInstance(az, str)
            self.assertTrue(az.startswith(region_code))
            self.assertIn(az, self.azs)

    def test_instance_id(self):
        reg_instance_id = re.compile('^i-[0-9a-f]{17}$')
        for i in range(1000):
            instance_id = self.factory.instance_id()
            self.assertTrue(reg_instance_id.match(instance_id))

    def test_kernel_id(self):
        reg_kernel_id = re.compile('^aki-[0-9a-f]{8}$')
        for i in range(1000):
            kernel_id = self.factory.kernel_id()
            self.assertTrue(reg_kernel_id.match(kernel_id))

    def test_ami_id(self):
        reg_ami_id = re.compile('^ami-[0-9a-f]{8}$')
        for i in range(1000):
            ami_id = self.factory.ami_id()
            self.assertTrue(reg_ami_id.match(ami_id))

    def test_security_group_id(self):
        reg_sg_id = re.compile('^sg-[0-9a-f]{8}$')
        for i in range(1000):
            sg_id = self.factory.security_group_id()
            self.assertTrue(reg_sg_id.match(sg_id))

    def test_vpc_id(self):
        reg_vpc_id = re.compile('^vpc-[0-9a-f]{8}$')
        for i in range(1000):
            vpc_id = self.factory.vpc_id()
            self.assertTrue(reg_vpc_id.match(vpc_id))

    def test_volume_id(self):
        reg_vol_id = re.compile('^vol-[0-9a-f]{17}$')
        for i in range(1000):
            vol_id = self.factory.volume_id()
            self.assertTrue(reg_vol_id.match(vol_id))

    def test_volume_type(self):
        for i in range(1000):
            vt = self.factory.volume_type()
            self.assertIn(vt, self.volume_types)

    def test_volume_type_name(self):
        names = [i for i, j in self.volume_types]
        for i in range(1000):
            name = self.factory.volume_type_name()
            self.assertIn(name, names)

    def test_volume_type_code(self):
        codes = [j for i, j in self.volume_types]
        for i in range(1000):
            code = self.factory.volume_type_code()
            self.assertIn(code, codes)

    def test_instance_type_serie(self):
        for i in range(1000):
            its = self.factory.instance_type_serie()
            self.assertIn(its, self.instance_type_series)

    def test_instance_type_serie_name(self):
        names = [i for i, j in self.instance_type_series]
        for i in range(1000):
            name = self.factory.instance_type_serie_name()
            self.assertIn(name, names)

    def test_instance_type_serie_verbose_name(self):
        names = [j for i, j in self.instance_type_series]
        for i in range(1000):
            name = self.factory.instance_type_serie_verbose_name()
            self.assertIn(name, names)

    def test_instance_type(self):
        for i in range(1000):
            it = self.factory.instance_type()
            self.assertIn(it, self.instance_types)

        for i in range(1000):
            serie = self.factory.instance_type_serie_name()
            it = self.factory.instance_type(serie=serie)
            self.assertIn(it, self.instance_types)
            self.assertTrue(it.startswith(serie))

    def test_flavor_name(self):
        for i in range(1000):
            it = self.factory.flavor_name()
            self.assertIn(it, self.instance_types)

    def test_snapshot_id(self):
        reg_snap_id = re.compile('^snap-[0-9a-f]{8}$')
        for i in range(1000):
            snap_id = self.factory.snapshot_id()
            self.assertTrue(reg_snap_id.match(snap_id))

    def test_ipv4_public(self):
        for i in range(1000):
            ip = self.factory.ipv4_public()
            self.assertTrue(str(ip).startswith('54.1'))

    def test_ec2_public_dns(self):
        for i in range(1000):
            dns = self.factory.ec2_public_dns()
            self.assertTrue(dns.startswith('ec2-'))
            self.assertTrue(dns.endswith('.compute-1.amazonaws.com'))

    def test_s3_object_url(self):
        for i in range(1000):
            url = self.factory.s3_object_url()
            self.assertTrue(url.startswith('https://s3.amazonaws.com/'))