def test_get_limits_no_ta(self): limits = sample_limits() self.mock_svc1.get_limits.return_value = limits['SvcFoo'] self.mock_svc2.get_limits.return_value = limits['SvcBar'] res = self.cls.get_limits(use_ta=False) assert res == limits assert self.mock_ta.mock_calls == [] assert self.mock_svc1.mock_calls == [call.get_limits()] assert self.mock_svc2.mock_calls == [ call._update_limits_from_api(), call.get_limits() ]
def test_get_limits_no_ta(self): limits = sample_limits() self.mock_svc1.get_limits.return_value = limits['SvcFoo'] self.mock_svc2.get_limits.return_value = limits['SvcBar'] res = self.cls.get_limits(use_ta=False) assert res == limits assert self.mock_ta.mock_calls == [] assert self.mock_svc1.mock_calls == [ call.get_limits() ] assert self.mock_svc2.mock_calls == [ call._update_limits_from_api(), call.get_limits() ]
def test_get_limits(self): limits = sample_limits() self.mock_svc1.get_limits.return_value = limits['SvcFoo'] self.mock_svc2.get_limits.return_value = limits['SvcBar'] res = self.cls.get_limits() assert res == limits assert self.mock_ta.mock_calls == [call.update_limits()] assert self.mock_svc1.mock_calls == [ call._update_service_quotas(), call.get_limits() ] assert self.mock_svc2.mock_calls == [ call._update_limits_from_api(), call._update_service_quotas(), call.get_limits() ]
def test_show_usage(self, capsys): limits = sample_limits() limits['SvcFoo']['foo limit3']._add_current_usage(33) limits['SvcBar']['bar limit2']._add_current_usage(22) limits['SvcBar']['barlimit1']._add_current_usage(11) mock_checker = Mock(spec_set=AwsLimitChecker) mock_checker.get_limits.return_value = limits self.cls.checker = mock_checker with patch('awslimitchecker.runner.dict2cols') as mock_d2c: mock_d2c.return_value = 'd2cval' self.cls.show_usage() out, err = capsys.readouterr() assert out == 'd2cval\n' assert err == '' assert mock_checker.mock_calls == [ call.find_usage(service=None), call.get_limits(service=None) ] assert mock_d2c.mock_calls == [ call({ 'SvcBar/bar limit2': '22', 'SvcBar/barlimit1': '11', 'SvcFoo/foo limit3': '33', }) ]
def test_get_limits_service(self): limits = sample_limits() self.mock_svc1.get_limits.return_value = limits['SvcFoo'] self.mock_svc2.get_limits.return_value = limits['SvcBar'] res = self.cls.get_limits(service=['SvcFoo']) assert res == {'SvcFoo': limits['SvcFoo']} assert self.mock_ta.mock_calls == [call.update_limits()] assert self.mock_svc1.mock_calls == [call.get_limits()] assert self.mock_svc2.mock_calls == []
def test_get_limits(self): limits = sample_limits() self.mock_svc1.get_limits.return_value = limits['SvcFoo'] self.mock_svc2.get_limits.return_value = limits['SvcBar'] res = self.cls.get_limits() assert res == limits assert self.mock_ta.mock_calls == [ call.update_limits({ 'SvcFoo': self.mock_svc1, 'SvcBar': self.mock_svc2, }) ] assert self.mock_svc1.mock_calls == [ call.get_limits() ] assert self.mock_svc2.mock_calls == [ call._update_limits_from_api(), call.get_limits() ]
def test_get_limits_service(self): limits = sample_limits() self.mock_svc1.get_limits.return_value = limits['SvcFoo'] self.mock_svc2.get_limits.return_value = limits['SvcBar'] res = self.cls.get_limits(service='SvcFoo') assert res == {'SvcFoo': limits['SvcFoo']} assert self.mock_ta.mock_calls == [ call.update_limits() ] assert self.mock_svc1.mock_calls == [ call.get_limits() ] assert self.mock_svc2.mock_calls == []
def test_get_limits_service_with_api(self): limits = sample_limits() self.mock_svc1.get_limits.return_value = limits['SvcFoo'] self.mock_svc2.get_limits.return_value = limits['SvcBar'] res = self.cls.get_limits(service='SvcBar') assert res == {'SvcBar': limits['SvcBar']} assert self.mock_ta.mock_calls == [ call.update_limits({ 'SvcBar': self.mock_svc2, }) ] assert self.mock_svc1.mock_calls == [] assert self.mock_svc2.mock_calls == [ call._update_limits_from_api(), call.get_limits() ]
def test_list_defaults_one_service(self, capsys): mock_checker = Mock(spec_set=AwsLimitChecker) mock_checker.get_limits.return_value = { 'SvcFoo': sample_limits()['SvcFoo'], } self.cls.checker = mock_checker self.cls.service_name = 'SvcFoo' with patch('awslimitchecker.runner.dict2cols', autospec=True) as mock_d2c: mock_d2c.return_value = 'd2cval' self.cls.list_defaults() out, err = capsys.readouterr() assert out == 'd2cval\n' assert mock_checker.mock_calls == [call.get_limits(service='SvcFoo')] assert mock_d2c.mock_calls == [call({ 'SvcFoo/foo limit3': '3', })]
def test_list_defaults(self, capsys): mock_checker = Mock(spec_set=AwsLimitChecker) mock_checker.get_limits.return_value = sample_limits() self.cls.checker = mock_checker with patch('awslimitchecker.runner.dict2cols', autospec=True) as mock_d2c: mock_d2c.return_value = 'd2cval' self.cls.list_defaults() out, err = capsys.readouterr() assert out == 'd2cval\n' assert mock_checker.mock_calls == [call.get_limits(service=None)] assert mock_d2c.mock_calls == [ call({ 'SvcBar/bar limit2': '2', 'SvcBar/barlimit1': '1', 'SvcFoo/foo limit3': '3', }) ]
def test_list_limits(self, capsys): mock_checker = Mock(spec_set=AwsLimitChecker) mock_checker.get_limits.return_value = sample_limits() self.cls.checker = mock_checker with patch('awslimitchecker.runner.dict2cols') as mock_d2c: mock_d2c.return_value = 'd2cval' self.cls.list_limits() out, err = capsys.readouterr() assert out == 'd2cval\n' assert mock_checker.mock_calls == [ call.get_limits(use_ta=True, service=None) ] assert mock_d2c.mock_calls == [ call({ 'SvcBar/bar limit2': '99', 'SvcBar/barlimit1': '1', 'SvcFoo/foo limit3': '10 (TA)', }) ]
def test_list_limits(self, capsys): mock_checker = Mock(spec_set=AwsLimitChecker) mock_checker.get_limits.return_value = sample_limits_api() self.cls.checker = mock_checker with patch('awslimitchecker.runner.dict2cols') as mock_d2c: mock_d2c.return_value = 'd2cval' self.cls.list_limits() out, err = capsys.readouterr() assert out == 'd2cval\n' assert mock_checker.mock_calls == [ call.get_limits(use_ta=True, service=None) ] assert mock_d2c.mock_calls == [ call({ 'SvcBar/bar limit2': '99', 'SvcBar/barlimit1': '1', 'SvcFoo/foo limit3': '10 (TA)', 'SvcFoo/zzz limit4': '34 (API)', }) ]
def test_list_limits_one_service(self, capsys): mock_checker = Mock(spec_set=AwsLimitChecker) mock_checker.get_limits.return_value = { 'SvcFoo': sample_limits()['SvcFoo'], } self.cls.checker = mock_checker self.cls.service_name = 'SvcFoo' with patch('awslimitchecker.runner.dict2cols') as mock_d2c: mock_d2c.return_value = 'd2cval' self.cls.list_limits() out, err = capsys.readouterr() assert out == 'd2cval\n' assert mock_checker.mock_calls == [ call.get_limits(use_ta=True, service='SvcFoo') ] assert mock_d2c.mock_calls == [ call({ 'SvcFoo/foo limit3': '10 (TA)', }) ]
def test_show_usage_one_service(self, capsys): limits = { 'SvcFoo': sample_limits()['SvcFoo'], } limits['SvcFoo']['foo limit3']._add_current_usage(33) mock_checker = Mock(spec_set=AwsLimitChecker) mock_checker.get_limits.return_value = limits self.cls.checker = mock_checker self.cls.service_name = 'SvcFoo' with patch('awslimitchecker.runner.dict2cols') as mock_d2c: mock_d2c.return_value = 'd2cval' self.cls.show_usage() out, err = capsys.readouterr() assert out == 'd2cval\n' assert mock_checker.mock_calls == [ call.find_usage(service='SvcFoo'), call.get_limits(service='SvcFoo') ] assert mock_d2c.mock_calls == [call({ 'SvcFoo/foo limit3': '33', })]
def test_show_usage_one_service(self, capsys): limits = { 'SvcFoo': sample_limits()['SvcFoo'], } limits['SvcFoo']['foo limit3']._add_current_usage(33) mock_checker = Mock(spec_set=AwsLimitChecker) mock_checker.get_limits.return_value = limits self.cls.checker = mock_checker self.cls.service_name = 'SvcFoo' with patch('awslimitchecker.runner.dict2cols') as mock_d2c: mock_d2c.return_value = 'd2cval' self.cls.show_usage() out, err = capsys.readouterr() assert out == 'd2cval\n' assert mock_checker.mock_calls == [ call.find_usage(service='SvcFoo'), call.get_limits(service='SvcFoo') ] assert mock_d2c.mock_calls == [ call({ 'SvcFoo/foo limit3': '33', }) ]
def test_show_usage(self, capsys): limits = sample_limits() limits['SvcFoo']['foo limit3']._add_current_usage(33) limits['SvcBar']['bar limit2']._add_current_usage(22) limits['SvcBar']['barlimit1']._add_current_usage(11) mock_checker = Mock(spec_set=AwsLimitChecker) mock_checker.get_limits.return_value = limits self.cls.checker = mock_checker with patch('awslimitchecker.runner.dict2cols') as mock_d2c: mock_d2c.return_value = 'd2cval' self.cls.show_usage() out, err = capsys.readouterr() assert out == 'd2cval\n' assert mock_checker.mock_calls == [ call.find_usage(service=None), call.get_limits(service=None) ] assert mock_d2c.mock_calls == [ call({ 'SvcBar/bar limit2': '22', 'SvcBar/barlimit1': '11', 'SvcFoo/foo limit3': '33', }) ]