File: test_validators.py

package info (click to toggle)
python-dbus-next 0.2.3-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 696 kB
  • sloc: python: 6,018; makefile: 45; xml: 29
file content (52 lines) | stat: -rw-r--r-- 2,057 bytes parent folder | download | duplicates (3)
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
from dbus_next import (is_bus_name_valid, is_object_path_valid, is_interface_name_valid,
                       is_member_name_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']
    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}"'