Beispiel #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("%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)
Beispiel #2
0
    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)
Beispiel #3
0
    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
Beispiel #5
0
    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)
Beispiel #7
0
 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)
Beispiel #9
0
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,
    }
Beispiel #10
0
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)})
Beispiel #11
0
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)})
Beispiel #12
0
    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)
Beispiel #14
0
    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)
Beispiel #15
0
    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)
Beispiel #16
0
    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)
Beispiel #17
0
    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)