Esempio n. 1
0
    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())
Esempio n. 2
0
# This legacy presence structure is intended to be replaced by a more
# sensible data structure.
presence_type = DictType(required_keys=[
    ("status", EnumType(["active", "idle"])),
    ("timestamp", int),
    ("client", str),
    ("pushable", bool),
])

presence_event = event_dict_type(
    required_keys=[
        ("type", Equals("presence")),
        ("user_id", int),
        ("server_timestamp", NumberType()),
        ("presence", StringDictType(presence_type)),
    ],
    optional_keys=[
        # force vertical
        ("email", str),
    ],
)
_check_presence = make_checker(presence_event)


def check_presence(
    var_name: str,
    event: Dict[str, object],
    has_email: bool,
    presence_key: str,
    status: str,
Esempio n. 3
0
# This legacy presence structure is intended to be replaced by a more
# sensible data structure.
presence_type = DictType(required_keys=[
    ("status", EnumType(["active", "idle"])),
    ("timestamp", int),
    ("client", str),
    ("pushable", bool),
])

presence_event = event_dict_type(
    required_keys=[
        ("type", Equals("presence")),
        ("user_id", int),
        ("server_timestamp", NumberType()),
        ("presence", StringDictType(presence_type)),
    ],
    optional_keys=[
        # force vertical
        ("email", str),
    ],
)
_check_presence = make_checker(presence_event)


def check_presence(
    var_name: str,
    event: Dict[str, object],
    has_email: bool,
    presence_key: str,
    status: str,