def test_data_type_schema(self) -> None: """ We really only test this to get test coverage. The code covered here is really only used in testing tools. """ test_schema = DictType([ ("type", Equals("realm")), ("maybe_n", OptionalType(int)), ("s", str), ("timestamp", NumberType()), ("flag", bool), ("tup", TupleType([int, str])), ("level", EnumType([1, 2, 3])), ("lst", ListType(int)), ("config", StringDictType(str)), ("value", UnionType([int, str])), ("url", UrlType()), ]) expected = """ test (dict): config (string_dict): value: str flag: bool level in [1, 2, 3] lst (list): type: int maybe_n: int s: str timestamp: number tup (tuple): 0: int 1: str type in ['realm'] url: str value (union): type: int type: str """ self.assertEqual(schema("test", test_schema).strip(), expected.strip())
("stream_post_policy", int), ("date_created", int), ] subscription_fields: Sequence[Tuple[str, object]] = [ *basic_stream_fields, ("audible_notifications", OptionalType(bool)), ("color", str), ("desktop_notifications", OptionalType(bool)), ("email_address", str), ("email_notifications", OptionalType(bool)), ("in_home_view", bool), ("is_muted", bool), ("pin_to_top", bool), ("push_notifications", OptionalType(bool)), ("role", EnumType(Subscription.ROLE_TYPES)), ("stream_weekly_traffic", OptionalType(int)), # We may try to remove subscribers from some events in # the future for clients that don't want subscriber # info. ("subscribers", ListType(int)), ("wildcard_mentions_notify", OptionalType(bool)), ] equals_add_or_remove = UnionType([ # force vertical Equals("add"), Equals("remove"), ]) value_type = UnionType([