Ejemplo n.º 1
0
    def handle(self, *args: Any, **options: str) -> None:
        realm = self.get_realm(options)
        assert realm is not None  # Should be ensured by parser
        if options["op"] == "show":
            print(f"{realm.string_id}: {linkifiers_for_realm(realm.id)}")
            sys.exit(0)

        pattern = options["pattern"]
        if not pattern:
            self.print_help("./manage.py", "edit_linkifiers")
            raise CommandError

        if options["op"] == "add":
            url_format_string = options["url_format_string"]
            if not url_format_string:
                self.print_help("./manage.py", "edit_linkifiers")
                raise CommandError
            do_add_linkifier(realm, pattern, url_format_string)
            sys.exit(0)
        elif options["op"] == "remove":
            do_remove_linkifier(realm, pattern=pattern)
            sys.exit(0)
        else:
            self.print_help("./manage.py", "edit_linkifiers")
            raise CommandError
Ejemplo n.º 2
0
 def test_list(self) -> None:
     self.login("iago")
     realm = get_realm("zulip")
     do_add_linkifier(realm, "#(?P<id>[123])",
                      "https://realm.com/my_realm_filter/%(id)s")
     result = self.client_get("/json/realm/linkifiers")
     self.assert_json_success(result)
     self.assertEqual(200, result.status_code)
     self.assertEqual(len(result.json()["linkifiers"]), 1)
def remove_realm_filters() -> Dict[str, object]:
    filter_id = do_add_linkifier(
        get_realm("zulip"), "#(?P<id>[0-9]{2,8})", "https://github.com/zulip/zulip/pull/%(id)s"
    )
    return {
        "filter_id": filter_id,
    }
Ejemplo n.º 4
0
    def test_delete(self) -> None:
        self.login("iago")
        realm = get_realm("zulip")
        linkifier_id = do_add_linkifier(
            realm, "#(?P<id>[123])",
            "https://realm.com/my_realm_filter/%(id)s")
        linkifiers_count = RealmFilter.objects.count()
        result = self.client_delete(f"/json/realm/filters/{linkifier_id + 1}")
        self.assert_json_error(result, "Filter not found")

        result = self.client_delete(f"/json/realm/filters/{linkifier_id}")
        self.assert_json_success(result)
        self.assertEqual(RealmFilter.objects.count(), linkifiers_count - 1)
Ejemplo n.º 5
0
def create_linkifier(
        request: HttpRequest,
        user_profile: UserProfile,
        pattern: str = REQ(),
        url_format_string: str = REQ(),
) -> HttpResponse:
    try:
        linkifier_id = do_add_linkifier(
            realm=user_profile.realm,
            pattern=pattern,
            url_format_string=url_format_string,
        )
        return json_success({"id": linkifier_id})
    except ValidationError as e:
        return json_error(e.messages[0], data={"errors": dict(e)})
Ejemplo n.º 6
0
def create_linkifier(
        request: HttpRequest,
        user_profile: UserProfile,
        pattern: str = REQ(),
        url_format_string: str = REQ(),
) -> HttpResponse:
    try:
        linkifier_id = do_add_linkifier(
            realm=user_profile.realm,
            pattern=pattern,
            url_format_string=url_format_string,
        )
        return json_success({"id": linkifier_id})
    except ValidationError as e:
        raise ValidationFailureError(e)