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}"' )