Files
ServerSync/lib/jeepney/tests/test_wrappers.py

75 lines
2.2 KiB
Python

import pytest
from jeepney.wrappers import *
def test_bad_bus_name():
obj = '/com/example/foo'
DBusAddress(obj, 'com.example.a') # Valid (well known name)
DBusAddress(obj, 'com.example.a-b') # Valid but discouraged
DBusAddress(obj, ':1.13') # Valid (unique name)
with pytest.raises(ValueError, match='too long'):
DBusAddress(obj, 'com.example.' + ('a' * 256))
with pytest.raises(ValueError):
DBusAddress(obj, '.com.example.a')
with pytest.raises(ValueError):
DBusAddress(obj, 'com..example.a')
with pytest.raises(ValueError):
DBusAddress(obj, 'com.2example.a')
with pytest.raises(ValueError):
DBusAddress(obj, 'cöm.example.a') # Non-ASCII character
with pytest.raises(ValueError):
DBusAddress(obj, 'com')
def test_bad_interface():
obj = '/com/example/foo'
busname = 'com.example.foo'
DBusAddress(obj, 'com.example.a', 'com.example.a_b') # Valid
with pytest.raises(ValueError, match='too long'):
DBusAddress(obj, 'com.example.a', 'com.example.' + ('a' * 256))
with pytest.raises(ValueError):
DBusAddress(obj, 'com.example.a', 'com.example.a-b') # No hyphens
with pytest.raises(ValueError):
DBusAddress(obj, busname, '.com.example.a')
with pytest.raises(ValueError):
DBusAddress(obj, busname, 'com..example.a')
with pytest.raises(ValueError):
DBusAddress(obj, busname, 'com.2example.a')
with pytest.raises(ValueError):
DBusAddress(obj, busname, 'cöm.example.a') # Non-ASCII character
with pytest.raises(ValueError):
DBusAddress(obj, busname, 'com')
def test_bad_member_name():
addr = DBusAddress(
'/org/freedesktop/DBus',
bus_name='org.freedesktop.DBus',
interface='org.freedesktop.DBus',
)
new_method_call(addr, 'Hello')
with pytest.raises(ValueError, match='too long'):
new_method_call(addr, 'Hell' + ('o' * 256))
with pytest.raises(ValueError):
new_method_call(addr, 'org.Hello')
with pytest.raises(ValueError):
new_method_call(addr, '9Hello')
with pytest.raises(ValueError):
new_method_call(addr, '')