File: test_validators.py

package info (click to toggle)
dbus-fast 3.1.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,804 kB
  • sloc: python: 9,997; xml: 39; makefile: 29; sh: 5
file content (87 lines) | stat: -rw-r--r-- 2,324 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
from dbus_fast import (
    is_bus_name_valid,
    is_interface_name_valid,
    is_member_name_valid,
    is_object_path_valid,
)


def test_object_path_validator():
    valid_paths = ["/", "/foo", "/foo/bar", "/foo/bar/bat"]
    invalid_paths = [
        None,
        "",
        "foo",
        "foo/bar",
        "/foo/bar/",
        "/$/foo/bar",
        "/foo//bar",
        "/foo$bar/baz",
    ]

    for path in valid_paths:
        assert is_object_path_valid(path), f'path should be valid: "{path}"'
    for path in invalid_paths:
        assert not is_object_path_valid(path), f'path should be invalid: "{path}"'


def test_bus_name_validator():
    valid_names = [
        "foo.bar",
        "foo.bar.bat",
        "_foo._bar",
        "foo.bar69",
        "foo.bar-69",
        "org.mpris.MediaPlayer2.google-play-desktop-player",
    ]
    invalid_names = [
        None,
        "",
        "5foo.bar",
        "foo.6bar",
        ".foo.bar",
        "bar..baz",
        "$foo.bar",
        "foo$.ba$r",
    ]

    for name in valid_names:
        assert is_bus_name_valid(name), f'bus name should be valid: "{name}"'
    for name in invalid_names:
        assert not is_bus_name_valid(name), f'bus name should be invalid: "{name}"'


def test_interface_name_validator():
    valid_names = ["foo.bar", "foo.bar.bat", "_foo._bar", "foo.bar69"]
    invalid_names = [
        None,
        "",
        "5foo.bar",
        "foo.6bar",
        ".foo.bar",
        "bar..baz",
        "$foo.bar",
        "foo$.ba$r",
        "org.mpris.MediaPlayer2.google-play-desktop-player",
    ]

    for name in valid_names:
        assert is_interface_name_valid(name), (
            f'interface name should be valid: "{name}"'
        )
    for name in invalid_names:
        assert not is_interface_name_valid(name), (
            f'interface name should be invalid: "{name}"'
        )


def test_member_name_validator():
    valid_members = ["foo", "FooBar", "Bat_Baz69", "foo-bar"]
    invalid_members = [None, "", "foo.bar", "5foo", "foo$bar"]

    for member in valid_members:
        assert is_member_name_valid(member), f'member name should be valid: "{member}"'
    for member in invalid_members:
        assert not is_member_name_valid(member), (
            f'member name should be invalid: "{member}"'
        )