def test_validation_via_regular_expression(): pattern = r'SP-\d+' valid_todo = Todo('some path', 23, 'content containing valid issue reference SP-4711') invalid_todo = Todo('some path', 23, 'content containing invalid issue reference PS-4711') validator = RegExpValidator(pattern) assert validator.validate(valid_todo) assert not validator.validate(invalid_todo)
def _store_if_todo_and_reset(self, file_iterator, file_path, is_annotation=False): if is_annotation or self._comment_contains_todo(self.comment_content): self.todos.append( Todo(file_path, file_iterator.line_number, self.comment_content)) self.comment_content = '' self.context = Context.code
def test_print_xml(): valid_todo_1 = Todo('some/path', 1, 'todoish') valid_todo_2 = Todo('some/path', 2, 'todoish') invalid_todo_1 = Todo('another/path', 47, 'todoish') invalid_todo_1.mark_as_invalid('this is an invalid todo') invalid_todo_2 = Todo('another/path/again', 47, 'Needs escaping: <!--') invalid_todo_2.mark_as_invalid('this is another invalid todo') todos = [valid_todo_1, valid_todo_2, invalid_todo_1, invalid_todo_2] xml_file = io.StringIO() print_xml(xml_file, todos) xml_file.seek(0) xml_content = xml_file.read() assert XML_CONTENT == xml_content root = ElementTree.fromstring(xml_content) assert root is not None
def test_invalid_status(): issue_id = 'SP-4711' issue = _initialize_issue_with_status(INVALID_STATUS, None) todo = Todo( 'some path', 23, 'TODO ' + issue_id + ': content containing valid issue reference') validator = JiraValidatorForTesting(PATTERN, [VALID_STATUS]) validator.issues[issue_id] = issue validator.validate(todo) assert todo.is_valid is False
def test_valid_status(): issue_id = 'SP-4711' pattern = r'SP-\d+' status = 'In Progress' todo = Todo( 'some path', 23, 'TODO ' + issue_id + ': content containing valid issue reference') issue = _initialize_issue_with_status(status) validator = JiraValidatorForTesting(pattern, [status]) validator.issues[issue_id] = issue validator.validate(todo) assert todo.is_valid is True
def test_filter_key_present_in_issue_but_value_none_then_todo_not_ignored(): issue_id = 'SP-4711' issue = _initialize_issue_with_status(INVALID_STATUS, None, filter_key=FILTER_FIELD, filter_value=None) todo = Todo( 'some path', 23, 'TODO ' + issue_id + ': content containing valid issue reference') validator = JiraValidatorForTesting( PATTERN, [VALID_STATUS], issue_filter_field=FILTER_FIELD, issue_filter_values=[FITTING_FILTER_VALUE]) validator.issues[issue_id] = issue validator.validate(todo) assert todo.is_ignored is False
def test_print_xml(): valid_todo_1 = Todo('some/path', 1, 'todoish') valid_todo_2 = Todo('some/path', 2, 'todoish') invalid_todo = Todo('another/path', 47, 'todoish') invalid_todo.mark_as_invalid('this is an invalid todo') todos = [valid_todo_1, valid_todo_2, invalid_todo] xml_file = io.StringIO() print_xml(xml_file, todos) xml_file.seek(0) xml_content = xml_file.read() assert XML_CONTENT == xml_content
def test_valid_status_unfitting_filter_then_todo_valid_and_ignored(): issue_id = 'SP-4711' issue = _initialize_issue_with_status(VALID_STATUS, None, filter_key=FILTER_FIELD, filter_value=UNFITTING_FILTER_VALUE) todo = Todo( 'some path', 23, 'TODO ' + issue_id + ': content containing valid issue reference') validator = JiraValidatorForTesting( PATTERN, [VALID_STATUS], issue_filter_field=FILTER_FIELD, issue_filter_values=[FITTING_FILTER_VALUE]) validator.issues[issue_id] = issue validator.validate(todo) assert todo.is_valid is True assert todo.is_ignored is True
def test_dependent_validator_does_not_change_the_validity_of_the_validator(): validator = ValidatorForTesting(True) dependent_validator = ValidatorForTesting(False) validator.set_dependent_validator(dependent_validator) assert validator.validate(Todo('', 0, ''))
def test_dependent_validator_is_not_evaluated_when_first_validator_not_valid(): validator = ValidatorForTesting(False) dependent_validator = RaisingValidator() validator.set_dependent_validator(dependent_validator) assert not validator.validate(Todo('', 0, ''))
def test_dependent_validator_is_evaluated(): validator = ValidatorForTesting(True) dependent_validator = RaisingValidator() validator.set_dependent_validator(dependent_validator) with pytest.raises(RaisingValidatorException): validator.validate(Todo('', 0, ''))