Esempio n. 1
0
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)
Esempio n. 2
0
 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
Esempio n. 3
0
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
Esempio n. 7
0
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, ''))