Example #1
0
 def test_validate_status(self):
     for status in ['OK', 'ERROR', 'WARN']:
         result = server_plugins.Result()
         result.result = copy.deepcopy(self.result_to_validate)
         result.result['status'] = status
         result.validate()
         assert result.validated
Example #2
0
 def test_validate_component_result_should_be_dict(self):
     expected = 'Component result must be dictionary'
     result = server_plugins.Result()
     result.result = copy.deepcopy(self.result_to_validate)
     result.result['componentResults'] = list()
     with pytest.raises(smoker_exceptions.ValidationError) as exc_info:
         result.validate()
     assert expected in exc_info.value
Example #3
0
 def test_validate_message_should_be_dict(self):
     result = server_plugins.Result()
     result.result = copy.deepcopy(self.result_to_validate)
     result.result['messages'] = str()
     with pytest.raises(smoker_exceptions.ValidationError) as exc_info:
         result.validate()
     expected = 'Result message has to be a dictionary or None, not str'
     assert expected in repr(exc_info.value)
Example #4
0
 def test_validate_action_result_should_be_dict(self):
     expected = 'Action result must be dictionary'
     result = server_plugins.Result()
     result.result = copy.deepcopy(self.result_to_validate)
     result.result['action'] = str()
     with pytest.raises(smoker_exceptions.ValidationError) as exc_info:
         result.validate()
     assert expected in repr(exc_info.value)
Example #5
0
 def test_add_msg_with_multiline_is_false(self):
     for level in ['info', 'warn', 'error']:
         result = server_plugins.Result()
         result.add_msg(level, 'Gooddata\nSmoker')
         result.add_msg(level, level)
         expected_info = ['Gooddata', 'Smoker', level]
         assert 'status' in result.result and not result.result['status']
         assert level in result.result['messages']
         assert expected_info == result.result['messages'][level]
Example #6
0
 def test_validate_action_result_should_have_status(self):
     action_result = {'messages': {'info': [], 'warn': [], 'error': []}}
     expected = 'Action doesn\'t have status'
     result = server_plugins.Result()
     result.result = copy.deepcopy(self.result_to_validate)
     result.result['action'] = action_result
     with pytest.raises(smoker_exceptions.ValidationError) as exc_info:
         result.validate()
     assert expected in repr(exc_info.value)
Example #7
0
 def test_validate_invalid_status(self):
     expected = 'Result status has to be OK, ERROR or WARN, ' \
                'not InvalidStatus'
     result = server_plugins.Result()
     result.result = copy.deepcopy(self.result_to_validate)
     result.result['status'] = 'InvalidStatus'
     with pytest.raises(smoker_exceptions.ValidationError) as exc_info:
         result.validate()
     assert expected in repr(exc_info.value)
Example #8
0
 def test_validate_level_message_should_be_list(self):
     for level in ['info', 'error', 'warn']:
         result = server_plugins.Result()
         result.result = copy.deepcopy(self.result_to_validate)
         result.result['messages'][level] = str()
         with pytest.raises(smoker_exceptions.ValidationError) as exc_info:
             result.validate()
         expected = 'Can\'t validate message: Result message type %s has ' \
                    'to be a list, not str' % level
         assert expected in exc_info.value
Example #9
0
 def test_validate_level_message_output_should_be_string(self):
     for level in ['info', 'error', 'warn']:
         result = server_plugins.Result()
         result.result = copy.deepcopy(self.result_to_validate)
         result.result['messages'][level] = ['Gooddata', ['Invalid_Data']]
         with pytest.raises(smoker_exceptions.ValidationError) as exc_info:
             result.validate()
         expected = 'Can\'t validate message: Result message type %s has ' \
                    'to be a string, not list' % level
         assert expected in repr(exc_info.value)
Example #10
0
 def test_validate_action_result_should_have_message(self):
     action_result = {
         'status': 'OK',
     }
     expected = 'Action doesn\'t have message'
     result = server_plugins.Result()
     result.result = copy.deepcopy(self.result_to_validate)
     result.result['action'] = action_result
     with pytest.raises(smoker_exceptions.ValidationError) as exc_info:
         result.validate()
     assert expected in exc_info.value
Example #11
0
    def test_set_invalid_status(self):
        result = server_plugins.Result()
        expected = 'Can\'t generate overall status without component results'
        with pytest.raises(Exception) as exc_info:
            result.set_status()
        assert expected in repr(exc_info.value)

        expected = 'Status has to be OK, ERROR or WARN'
        with pytest.raises(smoker_exceptions.InvalidArgument) as exc_info:
            result.set_status('InvalidStatus')
        assert expected in repr(exc_info.value)
Example #12
0
 def test_validate_component_result_should_have_message(self):
     component_results = {
         'Unit tests': {
             'status': 'OK',
         }
     }
     expected = 'Component Unit tests doesn\'t have message'
     result = server_plugins.Result()
     result.result = copy.deepcopy(self.result_to_validate)
     result.result['componentResults'] = component_results
     with pytest.raises(smoker_exceptions.ValidationError) as exc_info:
         result.validate()
     assert expected in repr(exc_info.value)
Example #13
0
    def test_set_status(self):
        result = server_plugins.Result()
        result.set_status('OK')
        assert result.result['status'] == 'OK'
        result.set_status('ERROR')
        assert result.result['status'] == 'ERROR'
        result.set_status('WARN')
        assert result.result['status'] == 'WARN'

        for status in ['OK', 'WARN', 'ERROR']:
            component_results = {
                'Unit tests': {
                    'status': status,
                    'messages': {
                        'info': ['GoodData'],
                        'warn': [],
                        'error': []
                    }
                }
            }
            result = server_plugins.Result()
            result.result['componentResults'] = component_results
            result.set_status()
            assert status == result.result['status']
Example #14
0
 def test_validate_component_result_should_have_status(self):
     component_results = {
         'Unit tests': {
             'messages': {
                 'info': ['GoodData'],
                 'warn': [],
                 'error': []
             }
         }
     }
     expected = 'Component Unit tests doesn\'t have status'
     result = server_plugins.Result()
     result.result = copy.deepcopy(self.result_to_validate)
     result.result['componentResults'] = component_results
     with pytest.raises(smoker_exceptions.ValidationError) as exc_info:
         result.validate()
     assert expected in repr(exc_info.value)
Example #15
0
 def test_get_result(self):
     result = server_plugins.Result()
     result.result = copy.deepcopy(self.result_to_validate)
     assert not result.validated
     result.get_result()
     assert result.validated
Example #16
0
 def test_set_result(self):
     result_to_validate = copy.deepcopy(self.result_to_validate)
     result = server_plugins.Result()
     result.set_result(result_to_validate, validate=True)
     assert result.validated
Example #17
0
 def test_add_msg_with_invalid_level(self):
     result = server_plugins.Result()
     with pytest.raises(smoker_exceptions.InvalidArgument) as exc_info:
         result.add_msg('InvalidLevel', 'Gooddata')
     assert 'Level has to be info, error or warn' in repr(exc_info.value)