From 3def3e5abdabd531474f0b78dc3bc89bbfa77645 Mon Sep 17 00:00:00 2001 From: wenlong ding Date: Fri, 25 Jun 2021 18:19:07 +0800 Subject: [PATCH] Init package. --- bluez-agent-template.patch | 189 ++++++++++++++++++++++++++++++++++ python-dbusmock-0.22.0.tar.gz | Bin 0 -> 68626 bytes python-dbusmock.spec | 59 +++++++++++ python-dbusmock.yaml | 4 + 4 files changed, 252 insertions(+) create mode 100644 bluez-agent-template.patch create mode 100644 python-dbusmock-0.22.0.tar.gz create mode 100644 python-dbusmock.spec create mode 100644 python-dbusmock.yaml diff --git a/bluez-agent-template.patch b/bluez-agent-template.patch new file mode 100644 index 0000000..789c9a7 --- /dev/null +++ b/bluez-agent-template.patch @@ -0,0 +1,189 @@ +From 9bf4215782517c21ac40e7bfca9e3a43b1b31c5e Mon Sep 17 00:00:00 2001 +From: Bastien Nocera +Date: Tue, 16 Feb 2021 14:39:47 +0100 +Subject: [PATCH 1/3] bluez: Implement Pair() method on the Device interface + +Tested successfully against gnome-bluetooth. Note that pairing does not +currently use agents at all, and always succeeds. +--- + dbusmock/templates/bluez5.py | 18 +++++++++++++++++- + 1 file changed, 17 insertions(+), 1 deletion(-) + +diff --git a/dbusmock/templates/bluez5.py b/dbusmock/templates/bluez5.py +index 75e8dcf..5d9676b 100644 +--- a/dbusmock/templates/bluez5.py ++++ b/dbusmock/templates/bluez5.py +@@ -18,6 +18,7 @@ This supports BlueZ 5 only. + __author__ = 'Philip Withnall' + __copyright__ = '(c) 2013 Collabora Ltd.' + ++import os + import dbus + + from dbusmock import OBJECT_MANAGER_IFACE, mockobject +@@ -123,6 +124,18 @@ def AddAdapter(self, device_name, system_name): + return path + + ++@dbus.service.method(DEVICE_IFACE, ++ in_signature='', out_signature='') ++def Pair(device): ++ if device.paired: ++ raise dbus.exceptions.DBusException( ++ 'Device already paired', ++ name='org.bluez.Error.AlreadyExists') ++ device_address = device.props[DEVICE_IFACE]['Address'] ++ adapter_device_name = os.path.basename(device.props[DEVICE_IFACE]['Adapter']) ++ device.PairDevice(adapter_device_name, device_address) ++ ++ + @dbus.service.method(BLUEZ_MOCK_IFACE, + in_signature='sss', out_signature='s') + def AddDevice(self, adapter_device_name, device_address, alias): +@@ -171,8 +184,10 @@ def AddDevice(self, adapter_device_name, device_address, alias): + ('ConnectProfile', 's', '', ''), + ('Disconnect', '', '', ''), + ('DisconnectProfile', 's', '', ''), +- ('Pair', '', '', ''), ++ ('Pair', '', '', Pair), + ]) ++ device = mockobject.objects[path] ++ device.paired = False + + manager = mockobject.objects['/'] + manager.EmitSignal(OBJECT_MANAGER_IFACE, 'InterfacesAdded', +@@ -214,6 +229,7 @@ def PairDevice(_self, adapter_device_name, device_address, class_=5898764): + name=BLUEZ_MOCK_IFACE + '.NoSuchDevice') + + device = mockobject.objects[device_path] ++ device.paired = True + + # Based off pairing with an Android phone. + uuids = [ +-- +2.30.2 + + +From 2454e9fbfa9d0da3042c51d1a3241b9940a6f1c0 Mon Sep 17 00:00:00 2001 +From: Bastien Nocera +Date: Wed, 17 Feb 2021 16:11:17 +0100 +Subject: [PATCH 2/3] tests: Fix bluez server never being closed down + +The same variable was used to store the obex server's process +information so it was closed, and the bluez server's information was +lost. +--- + tests/test_bluez5.py | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/tests/test_bluez5.py b/tests/test_bluez5.py +index b40950f..cbbc0f7 100644 +--- a/tests/test_bluez5.py ++++ b/tests/test_bluez5.py +@@ -205,7 +205,7 @@ class TestBlueZObex(dbusmock.DBusTestCase): + self.dbusmock_bluez = dbus.Interface(self.obj_bluez, 'org.bluez.Mock') + + # obexd +- (self.p_mock, self.obj_obex) = self.spawn_server_template( ++ (self.p_mock_obex, self.obj_obex) = self.spawn_server_template( + 'bluez5-obex', {}, stdout=subprocess.PIPE) + self.dbusmock = dbus.Interface(self.obj_obex, dbusmock.MOCK_IFACE) + self.dbusmock_obex = dbus.Interface(self.obj_obex, +@@ -216,6 +216,10 @@ class TestBlueZObex(dbusmock.DBusTestCase): + self.p_mock.terminate() + self.p_mock.wait() + ++ self.p_mock_obex.stdout.close() ++ self.p_mock_obex.terminate() ++ self.p_mock_obex.wait() ++ + def test_everything(self): + # Set up an adapter and device. + adapter_name = 'hci0' +-- +2.30.2 + + +From 49f493784cf288c95bb90870c8e3a603c64865d3 Mon Sep 17 00:00:00 2001 +From: Bastien Nocera +Date: Wed, 17 Feb 2021 16:10:08 +0100 +Subject: [PATCH 3/3] bluez: Implement the AgentManager1 interface methods + +The pairing agent still doesn't call into those, but this is good enough +to register and unregister a pairing agent in gnome-bluetooth's test +suite. +--- + dbusmock/templates/bluez5.py | 55 ++++++++++++++++++++++++++++++++++-- + 1 file changed, 52 insertions(+), 3 deletions(-) + +diff --git a/dbusmock/templates/bluez5.py b/dbusmock/templates/bluez5.py +index 5d9676b..6a2f85a 100644 +--- a/dbusmock/templates/bluez5.py ++++ b/dbusmock/templates/bluez5.py +@@ -37,11 +37,60 @@ NETWORK_SERVER_IFACE = 'org.bluez.Network1' + DEVICE_IFACE = 'org.bluez.Device1' + + ++@dbus.service.method(AGENT_MANAGER_IFACE, ++ in_signature='os', out_signature='') ++def RegisterAgent(manager, agent_path, capability): ++ all_caps = ['DisplayOnly', 'DisplayYesNo', 'KeyboardOnly', ++ 'NoInputNoOutput', 'KeyboardDisplay'] ++ ++ if agent_path in manager.agent_paths: ++ raise dbus.exceptions.DBusException( ++ 'Another agent is already registered ' + manager.agent_path, ++ name='org.bluez.Error.AlreadyExists') ++ ++ if capability not in all_caps: ++ raise dbus.exceptions.DBusException( ++ 'Unsupported capability ' + capability, ++ name='org.bluez.Error.InvalidArguments') ++ ++ if not manager.default_agent: ++ manager.default_agent = agent_path ++ manager.agent_paths += [agent_path] ++ manager.capabilities[agent_path] = capability ++ ++ ++@dbus.service.method(AGENT_MANAGER_IFACE, ++ in_signature='o', out_signature='') ++def UnregisterAgent(manager, agent_path): ++ if agent_path not in manager.agent_paths: ++ raise dbus.exceptions.DBusException( ++ 'Agent not registered ' + agent_path, ++ name='org.bluez.Error.DoesNotExist') ++ ++ manager.agent_paths.remove(agent_path) ++ del manager.capabilities[agent_path] ++ if manager.default_agent == agent_path: ++ if len(manager.agent_paths) > 0: ++ manager.default_agent = manager.agent_paths[-1] ++ else: ++ manager.default_agent = None ++ ++ ++@dbus.service.method(AGENT_MANAGER_IFACE, ++ in_signature='o', out_signature='') ++def RequestDefaultAgent(manager, agent_path): ++ if agent_path not in manager.agent_paths: ++ raise dbus.exceptions.DBusException( ++ 'Agent not registered ' + agent_path, ++ name='org.bluez.Error.DoesNotExist') ++ manager.default_agent = agent_path ++ ++ + def load(mock, _parameters): + mock.AddObject('/org/bluez', AGENT_MANAGER_IFACE, {}, [ +- ('RegisterAgent', 'os', '', ''), +- ('RequestDefaultAgent', 'o', '', ''), +- ('UnregisterAgent', 'o', '', ''), ++ ('RegisterAgent', 'os', '', RegisterAgent), ++ ('RequestDefaultAgent', 'o', '', RequestDefaultAgent), ++ ('UnregisterAgent', 'o', '', UnregisterAgent), + ]) + + bluez = mockobject.objects['/org/bluez'] +-- +2.30.2 + diff --git a/python-dbusmock-0.22.0.tar.gz b/python-dbusmock-0.22.0.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..af8dd4c3b97876d5c40d97502d02c2513f0f18b0 GIT binary patch literal 68626 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 Wv-(;6tbQK(&;JL|u#Wiv$OQnYhe?_M literal 0 HcmV?d00001 diff --git a/python-dbusmock.spec b/python-dbusmock.spec new file mode 100644 index 0000000..1bc77c8 --- /dev/null +++ b/python-dbusmock.spec @@ -0,0 +1,59 @@ +%global modname dbusmock + +Name: python-%{modname} +Version: 0.22.0 +Release: 1 +Summary: Mock D-Bus objects + +License: LGPLv3+ +URL: https://pypi.python.org/pypi/python-dbusmock +#Source0: https://files.pythonhosted.org/packages/source/p/%{name}/%{name}-%{version}.tar.gz +Source0: https://github.com/martinpitt/%{name}/releases/download/%{version}/%{name}-%{version}.tar.gz + +BuildArch: noarch +BuildRequires: git +BuildRequires: python3-dbus +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-gobject +BuildRequires: dbus-x11 +BuildRequires: upower + +# https://github.com/martinpitt/python-dbusmock/pull/66 +Patch0: bluez-agent-template.patch + +%global _description\ +With this program/Python library you can easily create mock objects on\ +D-Bus. This is useful for writing tests for software which talks to\ +D-Bus services such as upower, systemd, ConsoleKit, gnome-session or\ +others, and it is hard (or impossible without root privileges) to set\ +the state of the real services to what you expect in your tests. + +%description %_description + +%package -n python3-dbusmock +Summary: %summary (Python3) +Requires: python3-dbus, python3-gobject, dbus-x11 +%description -n python3-dbusmock %_description + +%prep +%autosetup -n %{name}-%{version} -S git +rm -rf python-%{modname}.egg-info + + +%build +%py3_build + +%install +%py3_install + +%check +%{__python3} -m unittest -v + +%files -n python3-dbusmock +%doc README.rst COPYING +%{python3_sitelib}/*%{modname}* + +%changelog +* Fri Jun 25 2021 Wenlong Ding - 0.22.0-1 +- initial package diff --git a/python-dbusmock.yaml b/python-dbusmock.yaml new file mode 100644 index 0000000..0ad2a3f --- /dev/null +++ b/python-dbusmock.yaml @@ -0,0 +1,4 @@ +version_control: git +src_repo: https://github.com/martinpitt/python-dbusmock.git +tag_prefix: "python-dbusmock" +seperator: "."