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) ]
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)]
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) ]