Beispiel #1
0
def analize_object_for_watchers(obj:object, comment:str, user:object):
    """
    Generic implementation for analize model objects and
    extract mentions from it and add it to watchers.
    """

    if not hasattr(obj, "get_project"):
        return

    if not hasattr(obj, "add_watcher"):
        return


    texts = (getattr(obj, "description", ""),
             getattr(obj, "content", ""),
             comment,)

    from taiga.mdrender.service import render_and_extract
    _, data = render_and_extract(obj.get_project(), "\n".join(texts))

    if data["mentions"]:
        for user in data["mentions"]:
            obj.add_watcher(user)

    # Adding the person who edited the object to the watchers
    if comment and not user.is_system:
        obj.add_watcher(user)
Beispiel #2
0
def test_render_and_extract_references():
    with patch("taiga.mdrender.extensions.references.get_instance_by_ref") as mock:
        instance = mock.return_value
        instance.content_type.model = "issue"
        instance.content_object.subject = "test"
        (_, extracted) = render_and_extract(dummy_project, "**#1**")
        assert extracted['references'] == [instance.content_object]
Beispiel #3
0
def analize_object_for_watchers(obj: object, comment: str, user: object):
    """
    Generic implementation for analize model objects and
    extract mentions from it and add it to watchers.
    """

    if not hasattr(obj, "get_project"):
        return

    if not hasattr(obj, "add_watcher"):
        return

    texts = (
        getattr(obj, "description", ""),
        getattr(obj, "content", ""),
        comment,
    )

    from taiga.mdrender.service import render_and_extract
    _, data = render_and_extract(obj.get_project(), "\n".join(texts))

    if data["mentions"]:
        for user in data["mentions"]:
            obj.add_watcher(user)

    # Adding the person who edited the object to the watchers
    if comment and not user.is_system:
        obj.add_watcher(user)
Beispiel #4
0
def test_render_and_extract_references():
    with patch("taiga.mdrender.extensions.references.get_instance_by_ref") as mock:
        instance = mock.return_value
        instance.content_type.model = "issue"
        instance.content_object.subject = "test"
        (_, extracted) = render_and_extract(dummy_project, "**#1**")
        assert extracted['references'] == [instance.content_object]
Beispiel #5
0
def test_render_and_extract_mentions_with_capitalized_username():
    user = factories.UserFactory(username="******", full_name="test")
    (_, extracted) = render_and_extract(dummy_project, "**@User1**")
    assert extracted['mentions'] == [user]
Beispiel #6
0
def get_mentions(project: object, text: str):
    from taiga.mdrender.service import render_and_extract
    _, data = render_and_extract(project, text)

    return data.get("mentions")
Beispiel #7
0
def test_render_and_extract_mentions():
    user = factories.UserFactory(username="******", full_name="test")
    (_, extracted) = render_and_extract(dummy_project, "**@user1**")
    assert extracted["mentions"] == [user]
def test_render_and_extract_mentions_with_capitalized_username():
    user = factories.UserFactory(username="******", full_name="test")
    (_, extracted) = render_and_extract(dummy_project, "**@User1**")
    assert extracted['mentions'] == [user]
def test_render_and_extract_mentions_with_capitalized_username():
    user=factories.UserFactory(username="******", full_name="test")
    project=factories.ProjectFactory(id=1, slug="test")
    factories.MembershipFactory(user=user, project=project)
    (_, extracted) = render_and_extract(dummy_project, "**@User1**")
    assert extracted['mentions'] == [user]
Beispiel #10
0
def test_render_and_extract_mentions():
    user=factories.UserFactory(username="******", full_name="test name")
    project=factories.ProjectFactory(id=1, slug="test")
    factories.MembershipFactory(user=user, project=project)
    (_, extracted) = render_and_extract(project, "**@user1**")
    assert extracted['mentions'] == [user]
Beispiel #11
0
def get_mentions(project: object, text: str):
    from taiga.mdrender.service import render_and_extract
    _, data = render_and_extract(project, text)

    return data.get("mentions")