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