예제 #1
0
 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()
     ]
예제 #2
0
 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()
     ]
예제 #3
0
 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()
     ]
예제 #4
0
 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',
         })
     ]
예제 #5
0
 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 == []
예제 #6
0
 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()
     ]
예제 #7
0
 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 == []
예제 #8
0
 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()
     ]
예제 #9
0
 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',
     })]
예제 #10
0
 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',
         })
     ]
예제 #11
0
 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)',
         })
     ]
예제 #12
0
 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)',
         })
     ]
예제 #13
0
 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)',
         })
     ]
예제 #14
0
 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',
     })]
예제 #15
0
 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',
         })
     ]
예제 #16
0
 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',
         })
     ]