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
|
import os
from unittest.mock import patch
import pytest
from dbus_fast._private.address import (
get_bus_address,
get_session_bus_address,
get_system_bus_address,
parse_address,
)
from dbus_fast.constants import BusType
from dbus_fast.errors import InvalidAddressError
def test_valid_addresses():
valid_addresses = {
"unix:path=/run/user/1000/bus": [("unix", {"path": "/run/user/1000/bus"})],
"unix:abstract=/tmp/dbus-ft9sODWpZk,guid=a7b1d5912379c2d471165e9b5cb74a03": [
(
"unix",
{
"abstract": "/tmp/dbus-ft9sODWpZk",
"guid": "a7b1d5912379c2d471165e9b5cb74a03",
},
)
],
"unix1:key1=val1;unix2:key2=val2": [
("unix1", {"key1": "val1"}),
("unix2", {"key2": "val2"}),
],
"unix:escaped=hello%20world": [("unix", {"escaped": "hello world"})],
"tcp:host=127.0.0.1,port=55556": [
("tcp", {"host": "127.0.0.1", "port": "55556"})
],
"unix:tmpdir=/tmp,;": [("unix", {"tmpdir": "/tmp"})],
}
for address, parsed in valid_addresses.items():
assert parse_address(address) == parsed
def test_invalid_addresses():
with pytest.raises(InvalidAddressError):
assert parse_address("")
with pytest.raises(InvalidAddressError):
assert parse_address("unix")
with pytest.raises(InvalidAddressError):
assert parse_address("unix:tmpdir")
with pytest.raises(InvalidAddressError):
assert parse_address("unix:tmpdir=😁")
def test_get_system_bus_address():
with patch.dict(os.environ, DBUS_SYSTEM_BUS_ADDRESS="unix:path=/dog"):
assert get_system_bus_address() == "unix:path=/dog"
assert get_bus_address(BusType.SYSTEM) == "unix:path=/dog"
with patch.dict(os.environ, DBUS_SYSTEM_BUS_ADDRESS=""):
assert get_system_bus_address() == "unix:path=/var/run/dbus/system_bus_socket"
def test_get_session_bus_address():
with patch.dict(os.environ, DBUS_SESSION_BUS_ADDRESS="unix:path=/dog"):
assert get_session_bus_address() == "unix:path=/dog"
assert get_bus_address(BusType.SESSION) == "unix:path=/dog"
with (
patch.dict(os.environ, DBUS_SESSION_BUS_ADDRESS="", DISPLAY=""),
pytest.raises(InvalidAddressError),
):
assert get_session_bus_address()
def test_invalid_bus_address():
with pytest.raises(Exception):
assert get_bus_address(-1)
|