75 lines
2.2 KiB
Python
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, '')
|