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
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, }
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)
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)})
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)