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("%s: %s" % (realm.string_id, all_realm_filters().get(realm.id, []))) sys.exit(0) pattern = options['pattern'] if not pattern: self.print_help("./manage.py", "realm_filters") sys.exit(1) if options["op"] == "add": url_format_string = options['url_format_string'] if not url_format_string: self.print_help("./manage.py", "realm_filters") sys.exit(1) do_add_realm_filter(realm, pattern, url_format_string) sys.exit(0) elif options["op"] == "remove": do_remove_realm_filter(realm, pattern=pattern) sys.exit(0) else: self.print_help("./manage.py", "realm_filters") sys.exit(1)
def handle(self, *args, **options): # type: (*Any, **str) -> None realm = self.get_realm(options) assert realm is not None # Should be ensured by parser if options["op"] == "show": print("%s: %s" % (realm.string_id, all_realm_filters().get(realm.id, []))) sys.exit(0) pattern = options['pattern'] if not pattern: self.print_help("./manage.py", "realm_filters") sys.exit(1) if options["op"] == "add": url_format_string = options['url_format_string'] if not url_format_string: self.print_help("./manage.py", "realm_filters") sys.exit(1) do_add_realm_filter(realm, pattern, url_format_string) sys.exit(0) elif options["op"] == "remove": do_remove_realm_filter(realm, pattern=pattern) sys.exit(0) else: self.print_help("./manage.py", "realm_filters") sys.exit(1)
def handle(self, *args, **options): # type: (*Any, **str) -> None realm = get_realm(options["domain"]) if options["op"] == "show": print("%s: %s" % (realm.domain, all_realm_filters().get(realm.domain, []))) sys.exit(0) pattern = options['pattern'] if not pattern: self.print_help("python manage.py", "realm_filters") sys.exit(1) if options["op"] == "add": url_format_string = options['url_format_string'] if not url_format_string: self.print_help("python manage.py", "realm_filters") sys.exit(1) do_add_realm_filter(realm, pattern, url_format_string) sys.exit(0) elif options["op"] == "remove": do_remove_realm_filter(realm, pattern) sys.exit(0) else: self.print_help("python manage.py", "realm_filters") sys.exit(1)
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}: {all_realm_filters().get(realm.id, [])}") sys.exit(0) pattern = options['pattern'] if not pattern: self.print_help("./manage.py", "realm_filters") raise CommandError if options["op"] == "add": url_format_string = options['url_format_string'] if not url_format_string: self.print_help("./manage.py", "realm_filters") raise CommandError do_add_realm_filter(realm, pattern, url_format_string) sys.exit(0) elif options["op"] == "remove": do_remove_realm_filter(realm, pattern=pattern) sys.exit(0) else: self.print_help("./manage.py", "realm_filters") raise CommandError
def handle(self, *args, **options): realm = Realm.objects.get(domain=options["domain"]) if options["op"] == "show": print "%s: %s" % (realm.domain, all_realm_filters().get( realm.domain, "")) sys.exit(0) pattern = options['pattern'] if not pattern: self.print_help("python2.7 manage.py", "realm_filters") sys.exit(1) if options["op"] == "add": url_format_string = options['url_format_string'] if not url_format_string: self.print_help("python2.7 manage.py", "realm_filters") sys.exit(1) do_add_realm_filter(realm, pattern, url_format_string) sys.exit(0) elif options["op"] == "remove": do_remove_realm_filter(realm, pattern) sys.exit(0) else: self.print_help("python2.7 manage.py", "realm_filters") sys.exit(1)
def test_list(self) -> None: self.login("iago") realm = get_realm("zulip") do_add_realm_filter(realm, "#(?P<id>[123])", "https://realm.com/my_realm_filter/%(id)s") result = self.client_get("/json/realm/filters") self.assert_json_success(result) self.assertEqual(200, result.status_code) self.assertEqual(len(result.json()["filters"]), 1)
def test_list(self): # type: () -> None email = self.example_email('iago') self.login(email) realm = get_realm('zulip') do_add_realm_filter(realm, "#(?P<id>[123])", "https://realm.com/my_realm_filter/%(id)s") result = self.client_get("/json/realm/filters") self.assert_json_success(result) self.assertEqual(200, result.status_code) self.assertEqual(len(result.json()["filters"]), 1)
def test_list(self) -> None: email = self.example_email('iago') self.login(email) realm = get_realm('zulip') do_add_realm_filter( realm, "#(?P<id>[123])", "https://realm.com/my_realm_filter/%(id)s") result = self.client_get("/json/realm/filters") self.assert_json_success(result) self.assertEqual(200, result.status_code) self.assertEqual(len(result.json()["filters"]), 1)
def remove_realm_filters() -> Dict[str, object]: filter_id = do_add_realm_filter( get_realm("zulip"), "#(?P<id>[0-9]{2,8})", "https://github.com/zulip/zulip/pull/%(id)s") return { "filter_id": filter_id, }
def create_filter(request: HttpRequest, user_profile: UserProfile, pattern: str=REQ(), url_format_string: str=REQ()) -> HttpResponse: try: filter_id = do_add_realm_filter( realm=user_profile.realm, pattern=pattern, url_format_string=url_format_string, ) return json_success({'id': filter_id}) except ValidationError as e: return json_error(e.messages[0], data={"errors": dict(e)})
def create_filter(request: HttpRequest, user_profile: UserProfile, pattern: str=REQ(), url_format_string: str=REQ()) -> HttpResponse: try: filter_id = do_add_realm_filter( realm=user_profile.realm, pattern=pattern, url_format_string=url_format_string ) return json_success({'id': filter_id}) except ValidationError as e: return json_error(e.messages[0], data={"errors": dict(e)})
def test_realm_filter_events(self): schema_checker = check_dict([ ('type', equals('realm_filters')), ('realm_filters', check_list(None)), # TODO: validate tuples in the list ]) events = self.do_test(lambda: do_add_realm_filter(get_realm("zulip.com"), "#[123]", "https://realm.com/my_realm_filter/%(id)s")) error = schema_checker('events[0]', events[0]) self.assert_on_error(error) self.do_test(lambda: do_remove_realm_filter(get_realm("zulip.com"), "#[123]")) error = schema_checker('events[0]', events[0]) self.assert_on_error(error)
def test_delete(self) -> None: self.login("iago") realm = get_realm("zulip") filter_id = do_add_realm_filter( realm, "#(?P<id>[123])", "https://realm.com/my_realm_filter/%(id)s") filters_count = RealmFilter.objects.count() result = self.client_delete(f"/json/realm/filters/{filter_id + 1}") self.assert_json_error(result, "Filter not found") result = self.client_delete(f"/json/realm/filters/{filter_id}") self.assert_json_success(result) self.assertEqual(RealmFilter.objects.count(), filters_count - 1)
def test_delete(self) -> None: self.login('iago') realm = get_realm('zulip') filter_id = do_add_realm_filter( realm, "#(?P<id>[123])", "https://realm.com/my_realm_filter/%(id)s") filters_count = RealmFilter.objects.count() result = self.client_delete("/json/realm/filters/{}".format(filter_id + 1)) self.assert_json_error(result, 'Filter not found') result = self.client_delete("/json/realm/filters/{}".format(filter_id)) self.assert_json_success(result) self.assertEqual(RealmFilter.objects.count(), filters_count - 1)
def test_delete(self) -> None: email = self.example_email('iago') self.login(email) realm = get_realm('zulip') filter_id = do_add_realm_filter( realm, "#(?P<id>[123])", "https://realm.com/my_realm_filter/%(id)s") filters_count = RealmFilter.objects.count() result = self.client_delete("/json/realm/filters/{0}".format(filter_id + 1)) self.assert_json_error(result, 'Filter not found') result = self.client_delete("/json/realm/filters/{0}".format(filter_id)) self.assert_json_success(result) self.assertEqual(RealmFilter.objects.count(), filters_count - 1)
def handle(self, *args, **options): realm = Realm.objects.get(domain=options["domain"]) if options["op"] == "show": print "%s: %s" % (realm.domain, all_realm_filters().get(realm.domain, "")) sys.exit(0) pattern = options['pattern'] if not pattern: self.print_help("python manage.py", "realm_filters") sys.exit(1) if options["op"] == "add": url_format_string = options['url_format_string'] if not url_format_string: self.print_help("python manage.py", "realm_filters") sys.exit(1) do_add_realm_filter(realm, pattern, url_format_string) sys.exit(0) elif options["op"] == "remove": do_remove_realm_filter(realm, pattern) sys.exit(0) else: self.print_help("python manage.py", "realm_filters") sys.exit(1)