def test_update_services_no_ec2(self):

        mock_autoscale = Mock(spec_set=_AwsService)
        mock_vpc = Mock(spec_set=_AwsService)
        services = {
            'AutoScaling': mock_autoscale,
            'VPC': mock_vpc,
        }
        ta_results = {
            'AutoScaling': {
                'foo': 20,
                'bar': 40,
            },
            'EC2': {
                'baz': 5,
            },
            'VPC': {
                'VPC Elastic IP addresses (EIPs)': 11,
            }
        }
        with patch('awslimitchecker.trustedadvisor'
                   '.logger', autospec=True) as mock_logger:
            self.cls._update_services(ta_results, services)
        assert mock_logger.mock_calls == [
            call.debug("Updating TA limits on all services"),
            call.info(
                "TrustedAdvisor returned check results for unknown "
                "service '%s'", 'EC2'),
            call.info("Done updating TA limits on all services"),
        ]
        assert mock_autoscale.mock_calls == [
            call._set_ta_limit('bar', 40),
            call._set_ta_limit('foo', 20),
        ]
        assert mock_vpc.mock_calls == []
 def test_update_services(self):
     mock_as_foo = Mock(spec_set=AwsLimit)
     mock_as_bar = Mock(spec_set=AwsLimit)
     mock_ec2_baz = Mock(spec_set=AwsLimit)
     mock_vpc = Mock(spec_set=AwsLimit)
     ta_services = {
         'AutoScaling': {
             'foo': mock_as_foo,
             'bar': mock_as_bar
         },
         'EC2': {
             'baz': mock_ec2_baz
         },
         'VPC': {
             'VPC Elastic IP addresses (EIPs)': mock_vpc
         },
     }
     ta_results = {
         'AutoScaling': {
             'foo': 20,
             'bar': 40,
         },
         'EC2': {
             'baz': 5,
             'blam': 10,
         },
         'OtherService': {
             'blarg': 1,
         },
         'VPC': {
             'VPC Elastic IP addresses (EIPs)': 11,
         }
     }
     with patch('awslimitchecker.trustedadvisor'
                '.logger', autospec=True) as mock_logger:
         self.cls.ta_services = ta_services
         self.cls._update_services(ta_results)
     assert mock_logger.mock_calls == [
         call.debug("Updating TA limits on all services"),
         call.info("TrustedAdvisor returned check results for unknown "
                   "limit '%s' (service %s)", 'blam', 'EC2'),
         call.info("TrustedAdvisor returned check results for unknown "
                   "service '%s'", 'OtherService'),
         call.info("Done updating TA limits on all services"),
     ]
     assert mock_as_foo.mock_calls == [
         call._set_ta_limit(20)
     ]
     assert mock_as_bar.mock_calls == [
         call._set_ta_limit(40)
     ]
     assert mock_ec2_baz.mock_calls == [
         call._set_ta_limit(5)
     ]
     assert mock_vpc.mock_calls == [
         call._set_ta_limit(11)
     ]
 def test_update_services(self):
     mock_as_foo = Mock(spec_set=AwsLimit)
     mock_as_bar = Mock(spec_set=AwsLimit)
     mock_ec2_baz = Mock(spec_set=AwsLimit)
     mock_ec2_blarg = Mock(spec_set=AwsLimit)
     mock_vpc = Mock(spec_set=AwsLimit)
     ta_services = {
         'AutoScaling': {
             'foo': mock_as_foo,
             'bar': mock_as_bar
         },
         'EC2': {
             'baz': mock_ec2_baz,
             'blarg': mock_ec2_blarg
         },
         'VPC': {
             'VPC Elastic IP addresses (EIPs)': mock_vpc
         },
     }
     ta_results = {
         'AutoScaling': {
             'foo': 20,
             'bar': 40,
         },
         'EC2': {
             'baz': 5,
             'blam': 10,
             'blarg': 'Unlimited',
         },
         'OtherService': {
             'blarg': 1,
         },
         'VPC': {
             'VPC Elastic IP addresses (EIPs)': 11,
         }
     }
     with patch('awslimitchecker.trustedadvisor'
                '.logger', autospec=True) as mock_logger:
         self.cls.ta_services = ta_services
         self.cls._update_services(ta_results)
     assert mock_logger.mock_calls == [
         call.debug("Updating TA limits on all services"),
         call.info(
             "TrustedAdvisor returned check results for unknown "
             "limit '%s' (service %s)", 'blam', 'EC2'),
         call.info(
             "TrustedAdvisor returned check results for unknown "
             "service '%s'", 'OtherService'),
         call.info("Done updating TA limits on all services"),
     ]
     assert mock_as_foo.mock_calls == [call._set_ta_limit(20)]
     assert mock_as_bar.mock_calls == [call._set_ta_limit(40)]
     assert mock_ec2_baz.mock_calls == [call._set_ta_limit(5)]
     assert mock_ec2_blarg.mock_calls == [call._set_ta_unlimited()]
     assert mock_vpc.mock_calls == [call._set_ta_limit(11)]
    def test_update_services(self):
        def se_set(lname, val):
            if lname == 'blam':
                raise ValueError("foo")

        mock_autoscale = Mock(spec_set=_AwsService)
        mock_ec2 = Mock(spec_set=_AwsService)
        mock_ec2._set_ta_limit.side_effect = se_set
        mock_vpc = Mock(spec_set=_AwsService)
        services = {
            'AutoScaling': mock_autoscale,
            'EC2': mock_ec2,
            'VPC': mock_vpc,
        }
        ta_results = {
            'AutoScaling': {
                'foo': 20,
                'bar': 40,
            },
            'EC2': {
                'baz': 5,
                'blam': 10,
            },
            'OtherService': {
                'blarg': 1,
            },
            'VPC': {
                'VPC Elastic IP addresses (EIPs)': 11,
            }
        }
        with patch('awslimitchecker.trustedadvisor'
                   '.logger', autospec=True) as mock_logger:
            self.cls._update_services(ta_results, services)
        assert mock_logger.mock_calls == [
            call.debug("Updating TA limits on all services"),
            call.info(
                "TrustedAdvisor returned check results for unknown "
                "limit '%s' (service %s)", 'blam', 'EC2'),
            call.info(
                "TrustedAdvisor returned check results for unknown "
                "service '%s'", 'OtherService'),
            call.info("Done updating TA limits on all services"),
        ]
        assert mock_autoscale.mock_calls == [
            call._set_ta_limit('bar', 40),
            call._set_ta_limit('foo', 20),
        ]
        assert mock_ec2.mock_calls == [
            call._set_ta_limit('baz', 5),
            call._set_ta_limit('blam', 10),
            call._set_ta_limit('VPC Elastic IP addresses (EIPs)', 11)
        ]
    def test_update_services(self):

        def se_set(lname, val):
            if lname == 'blam':
                raise ValueError("foo")

        mock_autoscale = Mock(spec_set=_AwsService)
        mock_ec2 = Mock(spec_set=_AwsService)
        mock_ec2._set_ta_limit.side_effect = se_set
        mock_vpc = Mock(spec_set=_AwsService)
        services = {
            'AutoScaling': mock_autoscale,
            'EC2': mock_ec2,
            'VPC': mock_vpc,
        }
        ta_results = {
            'AutoScaling': {
                'foo': 20,
                'bar': 40,
            },
            'EC2': {
                'baz': 5,
                'blam': 10,
            },
            'OtherService': {
                'blarg': 1,
            },
            'VPC': {
                'VPC Elastic IP addresses (EIPs)': 11,
            }
        }
        with patch('awslimitchecker.trustedadvisor'
                   '.logger', autospec=True) as mock_logger:
            self.cls._update_services(ta_results, services)
        assert mock_logger.mock_calls == [
            call.debug("Updating TA limits on all services"),
            call.info("TrustedAdvisor returned check results for unknown "
                      "limit '%s' (service %s)", 'blam', 'EC2'),
            call.info("TrustedAdvisor returned check results for unknown "
                      "service '%s'", 'OtherService'),
            call.info("Done updating TA limits on all services"),
        ]
        assert mock_autoscale.mock_calls == [
            call._set_ta_limit('bar', 40),
            call._set_ta_limit('foo', 20),
        ]
        assert mock_ec2.mock_calls == [
            call._set_ta_limit('baz', 5),
            call._set_ta_limit('blam', 10),
            call._set_ta_limit('VPC Elastic IP addresses (EIPs)', 11)
        ]
Example #6
0
 def test_set_ta_limit(self):
     mock_limit = Mock(spec_set=AwsLimit)
     type(mock_limit).default_limit = 5
     cls = AwsServiceTester(1, 2, {}, None)
     cls.limits['foo'] = mock_limit
     cls._set_ta_limit('foo', 10)
     assert mock_limit.mock_calls == [call._set_ta_limit(10)]
Example #7
0
 def test_set_ta_limit(self):
     mock_limit = Mock(spec_set=AwsLimit)
     type(mock_limit).default_limit = 5
     cls = AwsServiceTester(1, 2)
     cls.limits['foo'] = mock_limit
     cls._set_ta_limit('foo', 10)
     assert mock_limit.mock_calls == [
         call._set_ta_limit(10)
     ]