1## [0.25.0] - 2021-12-25
2- bluez template: Implement adapter discovery, connect, disconnect, and removal
3  (thanks Bastien Nocera)
4- Fix changing array properties (thanks Jonas Ådahl)
5- Fix CLI upower tests (thanks Marco Trevisan)
6- Add testing and Fedora updating through packit
7
8## [0.24.1] - 2021-10-27
9- Do not register standard D-Bus service directories (Thanks Benjamin Berg)
10- templates: Add IIO Sensors Proxy support (Thanks Marco Trevisan)
11- Fix importlib module import (Thanks Marco Trevisan)
12- Clean up code for most recent pylint version
13
14## [0.24.0] - 2021-08-28
15- Add Add power-profiles-daemon template (Thanks Bastien Nocera)
16- logind: Implement Inhibit and ListInhibitors (Thanks to Benjamin Berg)
17- Fix new complaints from pylint 2.9
18
19## [0.23.1] - 2021-06-15
20- Fix tests for Python 3.10
21
22## [0.23.0] - 2021-03-24
23- DBusMockObject: Add UpdateProperties() method (Thanks to Jonas Ådahl)
24- DBusTestCase: Add bus override argument to spawn_server_template, to use
25  templates on either system or session bus; add corresponding --session CLI
26  option
27- bluez template: Implement Pair() method on the Device interface and the
28  AgentManager1 interface (Thanks to Bastien Nocera)
29- polkit template: Implement RegisterAuthenticationAgent() (Thanks to Jonas Ådahl)
30- Add accountsservice template (Thanks to Marco Trevisan)
31
32## [0.22.0] - 2021-01-02
33- NetworkManager template: Fix connecting to wifi
34- NetworkManager template: Add Reload() method
35- tests: Replace nose test runner with standard unittest
36- setup.py: Drop deprecated `test_suite`, run tests through
37  `python3 -m unittest` directly
38
39## [0.21.0] - 2021-01-01
40- Add type annotations to the whole API
41- Drop obsolete ConsoleKit and bluez4 templates/tests
42- upower template: Drop support for 0.9 API
43
44## [0.20.0] - 2020-12-19
45- NetworkManager template: Handle NetworkingEnable
46- NetworkManager template: AddConnectionUnsaved
47- Drop support for Python 2
48
49## [0.19] - 2020-01-09
50- NetworkManager template: Add "StateReason" property and active connection ID
51- Add low-memory-monitor template
52
53## [0.18.3] - 2019-09-08
54- Fix timeouts for loaded machines and parallel tests
55- Fix tests for Python 3.8
56
57## [0.18.2] - 2019-02-23
58- test: Adjust for changed version output format in systemd 241
59
60## [0.18.1] - 2018-11-11
61- test: Fix failures with systemd 239 in chroots
62
63## [0.18] - 2018-07-01
64- logind template: Add support for suspend-then-hibernate
65- NetworkManager template: Add GetConnectionByUuid method
66- bluez template: Add PairDevice() 'class_' parameter
67- Fix logging of unicode strings in Python 2
68- Adjust logind and timedated tests to systemd 239 (Debian #902602)
69
70## [0.17.2] - 2018-03-01
71- NetworkManager template: Add GetDeviceByIpIface().
72- Move release tarballs from Launchpad to
73  <https://github.com/martinpitt/python-dbusmock/releases>.
74  <https://pypi.python.org/pypi/python-dbusmock> remains as usual.
75
76## [0.17.1] - 2018-02-22
77- Fix NetworkManager tests due to name changes from 802-11-wireless to wifi.
78
79## [0.17] - 2017-11-07
80- Call dbus-daemon directly instead of dbus-launch. (Debian #836053)
81- Fix DBusTestCase.stop_dbus() to actually enforce a timeout. Thanks to Renat
82  Galimov!
83- Fix test_timedated for changed timedatectl output format in systemd 235.
84
85## [0.16.9] - 2017-06-19
86- NetworkManager template: Fix type of 'State' property in AddActiveConnection()
87- Fix BlueZ tests to work with Python 2 again.
88
89## [0.16.8] - 2017-06-12
90- bluez5 template tests: Fix failure of test_no_adapters with BlueZ 5.45.
91  (LP: #1696480)
92- tests: Move from pep8 to pycodestyle for static code tests.
93- NetworkManager: Add ObjectManager, to work with NM ≥ 1.6.
94
95## [0.16.7] - 2016-09-12
96- bluez5 template tests: Fix failure on "Waiting to connect to bluetoothd"
97  messages.
98
99## [0.16.6] - 2016-06-19
100- upower template tests: Fix version comparison.
101
102## [0.16.5] - 2016-06-19
103- Ofono template: generate unique ICCIDs (CardIdentifier).
104
105## [0.16.4] - 2016-06-07
106- Ofono template: Add missing properties to SimManager interface.
107
108## [0.16.3] - 2015-12-14
109- NetworkManager template test: Make the test run standalone. Thanks Pete
110  Woods.
111
112## [0.16.2] - 2015-12-09
113- NetworkManager template: Fix connection settings Updated signal emitted by
114  wrong object.
115- NetworkManager template: Handle empty device at connection activation.
116- NetworkManager template: Implement secrets management in settings.
117
118## [0.16.1] - 2015-10-22
119- NetworkManager template: Fix indexing bug in SettingsAddConnection. Thanks
120  Pete Woods.
121
122## [0.16] - 2015-10-08
123- NetworkManager template: Generate a new unused name in connection activation
124  instead of just using the access point name. Thanks Pete Woods for the
125  original patch!
126- Allow the passing of template parameters via the command-line as JSON
127  strings. Thanks Pete Woods.
128
129## [0.15.3] - 2015-09-16
130- NetworkManager template: Add missing properties to ethernet device and
131  active connection. Thanks Pete Woods.
132- Quiesce irrelevant PEP-8 errors with pep8 1.6.
133
134## [0.15.2] - 2015-06-11
135- test_ofono: Test fields which don't get obfuscated with Ubuntu's latest
136  ofono (See LP #1459983). Thanks Iain Lane.
137- timedated template: Add NTPSynchronized property and set it in SetNTP(), to
138  also work with systemd 220.
139
140## [0.15.1] - 2015-05-12
141- SECURITY FIX: When loading a template from an arbitrary file through the
142  AddTemplate() D-Bus method call or DBusTestCase.spawn_server_template()
143  Python method, don't create or use Python's *.pyc cached files. By tricking
144  a user into loading a template from a world-writable directory like /tmp, an
145  attacker could run arbitrary code with the user's privileges by putting a
146  crafted .pyc file into that directory. Note that this is highly unlikely to
147  actually appear in practice as custom dbusmock templates are usually shipped
148  in project directories, not directly in world-writable directories.
149  Thanks to Simon McVittie for discovering this!
150  (LP: #1453815, CVE-2015-1326)
151
152## [0.15] - 2015-05-08
153- NetworkManager template: Restore nm-specific PropertiesChanged signal
154- NetworkManager template: Add DeactivateConnection(),
155  Settings.AddConnection(), Settings.Connection.Update(), and
156  Settings.Connection.Delete() methods. Also allow Connections with
157  autoconnect, added using AddConnection, to be automatically connected by the
158  first found device, roughly like NetworkManager itself does. Thanks Jonas
159  Grønås Drange!
160- NetworkManager template: Fix broken exception in AddWiFiConnection.
161- NetworkManager template: Set RsnFlags to have the same value as WpaFlags.
162  Thanks Pete Woods!
163
164## [0.14] - 2015-03-30
165- Move project hosting to github, update README.rst.
166- urfkill template: Return boolean from block() method, as the original
167  urfkill does. Thanks Jonas Grønås Drange!
168- Correctly instantiate DBusExceptions so that they get a proper name and
169  message (issue #3)
170- ofono template: Fix SubscriberIdentity property type
171- Emit PropertiesChanged signal when Set()ing properties.
172- urfkill template: Return boolean from Block() and FlightMode() methods
173- ofono template: Add ConnectionManager interface.
174- NetworkManager template: Much more complete support for mocking access
175  points and connections.
176
177## [0.13] - 2015-02-27
178- Add urfkill template. Thanks Jussi Pakkanen!
179
180## [0.12] - 2015-01-17
181- upower template: Add SetDeviceProperties() convenience method for changing
182  upower device properties. Thanks Charles Kerr!
183
184## [0.11.4] - 2014-09-22
185- upower template: Go back to using type 's' for Device* signal arguments for
186  upower 0.9. The older library does not get along with 'o'. (Regression in
187  0.11.2)
188
189## [0.11.3] - 2014-09-19
190- Fix test suite crash if loginctl is not installed.
191
192## [0.11.2] - 2014-09-19
193- upower template: Fix type of Device* signal arguments to be 'o', not 's'.
194  Thanks Iain Lane.
195- ofono template: Add org.ofono.SimManager interface. Thanks Jonas Grønås
196  Drange.
197- bluez5 template: Fix the type of the 'Transferred' property. Thanks Philip
198  Withnall.
199- networkmanager template: Fix the "FAILED" state value to be 120, not 12.
200  Thanks Jonas Grønås Drange.
201- bluez5 tests: Accept devices in state "not available" (or other states) as
202  well.
203- timedated and logind tests: Adjust to also accept output format of
204  systemd 215.
205
206## [0.11.1] - 2014-08-08
207- Rename bluez test classes to TestBlueZ4 and TestBlueZ5, to tell them apart
208  in the output.
209- logind template: Fix type of IdleSinceHint property, and add
210  IdleSinceHintMonotonic and IdleActionUSec properties. (LP: #1348437)
211- bluez4 template: Fix settings properties in StartDiscovery/StopDiscovery.
212  Thanks to Mathieu Trudel-Lapierre.
213- NetworkManager template: Add "Devices" and "AccessPoints" properties of
214  NetworkManager 0.9.10. (LP: #1328579)
215- NetworkManager template: Fix the types of the AccessPoint properties, and
216  add some more properties.
217- Adjust NetworkManager template tests for changed strings in NM 0.9.10.
218
219## [0.11] - 2014-07-24
220- ofono: Fix GetOperators() to only apply to its own modem, not all modems.
221  Thanks to Jonas Grønås Drange.
222- Add template for BlueZ 4. Thanks to Mathieu Trudel-Lapierre!
223
224## [0.10.3] - 2014-07-16
225- Fix upower tests to work for upower 0.99 in environments without a system
226  D-Bus.
227
228## [0.10.2] - 2014-07-16
229- ofono: Make Scan() do the same as GetOperators(). Thanks Iain Lane.
230- README.rst: Clarify that the "True" argument to get_dbus() means the system
231  bus.
232- Fix code to be compliant with pep8 1.5.
233- Fix TestCLI.test_template_system test with upower 0.99. (LP: #1330037)
234- ofono template: Support adding a second modem with AddModem().
235  (LP: #1340590)
236
237## [0.10.1] - 2014-01-30
238- Move code from bzr to git, adjust README.rst, do-release, and other files
239  accordingly.
240- timedated template: Emit PropertiesChanged when setting properties. Thanks
241  Iain Lane.
242
243## [0.10] - 2013-12-18
244- Add dynamic properties to introspection XML, to make mocked properties work
245  with Qt's property support, d-feet, and other tools. Thanks Iain Lane!
246- Fix frequent KeyError() when calling static methods from a template.
247  Regression from 0.9.
248- Support having the same method name on different D-Bus interfaces.
249- Add ofono template with support for the Manager, VoiceCallManager, and
250  NetworkRegistration/NetworkOperator interfaces.
251- Add template for systemd's timedated. Thanks Iain Lane!
252
253## [0.9.2] - 2013-12-13
254- upower template: Emit DeviceAdded when adding new a new AC adapter or
255  battery. Thanks Iain Lane!
256- Fix ResourceWarnings in test suite.
257
258## [0.9.1] - 2013-12-10
259- Fix UnicodeDecodeError in NEWS parsing when trying to build with a C locale.
260  Thanks Dmitry Shachnev.
261
262## [0.9] - 2013-11-29
263- Make static template methods appear in introspection. Thanks Philip
264  Whitnall! (LP: #1250096)
265- Add support for the D-Bus ObjectManager interface. This can now be enabled
266  in templates (IS_OBJECT_MANAGER = True) or the CLI (--is-object-manager/-m).
267  Thanks Philip Whitnall!
268- Add Reset() mock interface method to reset that object’s state (including
269  removing all its sub-objects) as if the object or template had been
270  destroyed and re-created. This is intended for use at the end of test cases
271  to reset state before the next test case is run, as an alternative to
272  killing python-dbusmock and re-starting it. Thanks Philip Whitnall!
273- logind template: Fix return value of CanSuspend() and related methods,
274  calling them previously caused a crash.
275- Don't close the log file multiple times if it is shared between objects.
276  Thanks Philip Whitnall!
277- Log calls to Get(), GetAll(), and Set().
278- Add templates for BlueZ 5 and BlueZ-OBEX. These templates are moderately
279  well featured, though currently targeted exclusively at testing OBEX vCard
280  transfers from phones to computers. Thanks Philip Whitnall!
281
282## [0.8.1] - 2013-11-11
283- Fix test failure if the "upower" tool is not installed.
284- Fix bad upower test which assumed a locale with a comma decimal separator.
285
286## [0.8] - 2013-11-08
287- upower template: Change default daemon version to "0.9", and fix tests to
288  work with both upower 0.9 and 1.0 client tool.
289- upower template: Provide 1.0 API if DaemonVersion property/template
290  parameter gets set to >= "0.99". (LP: #1245955)
291- upower template: Add SetupDisplayDevice() method on the mock interface to
292  conveniently configure all defined properties of the DisplayDevice. Only
293  available when using the 1.0 API. (LP: #1245955)
294
295## [0.7.2] - 2013-08-30
296- Add optional "timeout" argument to DBusTestCase.wait_for_bus_object().
297  (LP: #1218318)
298- DBusTestCase.start_system_bus(): Make the fake bus look more like a real
299  system bus by specifying a configuration file with type "system".
300
301## [0.7.1] - 2013-08-02
302- Handle the "Disconnected" signal only if it comes from the D-Bus object, to
303  avoid accidentally reacting to other signals (like from BlueZ). Thanks
304  Lucas De Marchi.
305
306## [0.7] - 2013-07-30
307- Accept *.py files for the--template command line option, similar to
308  AddTemplate(). Thanks Emanuele Aina.
309- Pass log file to objects created with AddObject(). Thanks Emanuele Aina.
310- NetworkManager template: Add new method AddWiFiConnection(), to simulate a
311  connection associated to a previously added device (with AddWiFiDevice()).
312  Thanks Pete Woods.
313
314## [0.6.3] - 2013-06-13
315- Drop "can-suspend" and "can-hibernate" checks from upower template test.
316  upower 1.0 deprecates this functionality, and defaults to not building it.
317
318## [0.6.2] - 2013-06-13
319- Fix test_api.TestSubclass test to work without an existing session D-Bus.
320
321## [0.6.1] - 2013-06-13
322- Add dbusmock.__version__ attribute, as per PEP-0396.
323- Fix not being able to inherit from DBusMockObject. Thanks Lucas De Marchi!
324- Allow subclassed DBusMockObject constructors to specify props arguments as
325  None.
326- Fix failing notification-daemon tests for too old libnotify. (LP: #1190208)
327- notification_daemon template: Generate new IDs for Notify() calls with an
328  input ID of 0. (LP: #1190209 part 1)
329- notification_daemon template: Send NotificationClosed signal in
330  CloseNotification() method for valid IDs. (LP: #1190209 part 2)
331
332## [0.6] - 2013-03-20
333- Emit MethodCalled() signal on the DBusMock interface, as an alternative way
334  of verifying method calls. Thanks Lars Uebernickel.
335- DBusMockObject.AddTemplate() and DBusTestCase.spawn_server_template() can
336  now load local templates by specifying a path to a *.py file as template
337  name. Thanks Lucas De Marchi.
338- Quit mock process if the D-Bus it connected to goes down. (LP: #1156561)
339- Support Get() and GetAll() with empty interface names, default to main
340  interface in this case.
341- Add template for systemd's logind.
342
343## [0.5] - 2013-02-03
344- upower template: Change LidIsClosed property default value to False.
345- Add polkitd template. (LP: #1112551)
346
347## [0.4.0] - 2013-01-21
348- Add GetCalls(), GetMethodCalls() and ClearCalls() methods on the mock D-Bus
349  interface to query the call log, for cases where parsing stdout is
350  inconvenient. Thanks to Robert Bruce Park for the patch! (LP: #1099483)
351- Document how to keep internal state in AddMethod().
352- Add template for gnome-screensaver. Thanks to Bastien Nocera!
353- Fix logging of signal arguments to have the same format as method call
354  arguments.
355
356## [0.3.1] - 2013-01-07
357- upower template: Set Energy and EnergyFull properties.
358
359## [0.3] - 2012-12-19
360- In the logging of mock method calls, log the arguments as well.
361- Fix race condition in waiting for mock to get online on the bus, by avoiding
362  triggering D-Bus service activation with system-installed services.
363- Add "notification_daemon" mock template.
364
365## [0.2.2] - 2012-11-27
366- tests: Suppress "nmcli and NetworkManager versions don't match" warning.
367- networkmanager template: Add DeviceState enum for easier specification of
368  states. Thanks Alberto Ruiz.
369- Fix deprecation warnings with PyGObject 3.7.x.
370
371## [0.2.1] - 2012-11-15
372- Fix tests to skip instead of fail if NetworkManager or upower are not
373  installed.
374
375## [0.2.0] - 2012-11-15
376- Turn dbusmock from a module into a package. This is transparent for API
377  users, but necessary for adding future subpackages and also makes the code
378  more maintainable.
379- Run pyflakes and pep8 during test suite, if available.
380- Add support for templates: You can now call AddTemplate() on the
381  org.freedesktop.DBus.Mock interface to load a template into the mock, or in
382  Python, start a server process with loading a template with
383  DBusTestCase.spawn_server_template(). Templates set up the common structure
384  of these services (their main objects, properties, and methods) so that you
385  do not need to carry around this common code, and only need to set up the
386  particular properties and specific D-Bus objects that you need. These
387  templates can be parameterized for common customizations, and they can
388  provide additional convenience methods on the org.freedesktop.DBus.Mock
389  interface to provide more abstract functionality like "add a battery".
390- Add a first simple "upower" template with convenience methods to add AC and
391  battery objects, and change tests/test_upower.py to use it.
392- Add a first "networkmanager" template with convenience methods to add
393  Ethernet/WiFi devices and access points. Thanks Iftikhar Ahmad!
394- Add symbol dbusmock.MOCK_IFACE for 'org.freedesktop.DBus.Mock'.
395- Add test cases for command line invocation (python3-m dbusmock ...).
396
397## [0.1.3] - 2012-11-03
398- Ship NEWS in release tarballs.
399
400## [0.1.2] - 2012-10-10
401- dbusmock.py, EmitSignal(): Convert arguments to the right data types
402  according to the signature.
403- dbusmock.py, method calls: Convert arguments to the right data types
404  according to the signature.
405- tests/test_api.py: Check proper handling of signature vs. argument list
406  length and/or type mismatch. (LP: #1064836)
407- tests/test_upower.py: Add test for handling "DeviceChanged" signal.
408- setup.py: Get version from NEWS file.
409
410## [0.1.1] - 2012-10-04
411- setup.py: Use README.rst as long description.
412- setup.py: Add download URL.
413- tests/test_consolekit.py: Skip test if ck-list-sessions is not installed.
414- setup.py: Import "multiprocessing" to work around "'NoneType' object
415  is not callable" error when running "setup.py test" with python 2.7.
416
417## [0.1] - 2012-10-04
418- tests/test_api.py: Add tests for adding existing objects.
419- dbusmock.py: Also put first (main) object into the global objects map.
420- dbusmock.py: Document global objects map in AddMethod().
421- tests/test_upower.py: Silence "No ... property" warnings; the test does not
422  create them all.
423- dbusmock.py: Fix stopping of local D-Bus daemons for test subclasses.
424- dbusmock.py, stop_dbus(): Wait for local D-Bus to be killed, and avoid
425  getting SIGTERMed ourselves.
426- dbusmock.py: Add AddProperties() method to conveniently add several
427  properties to one interface at once. Update upower test case to use this.
428- dbusmock.py: Add EmitSignal() method to emit an arbitrary signal on any
429  interface.
430- Make code compatible with Python 2.7 as well. (LP: #1060278)
431
432## [0.0.3] - 2012-10-01
433- tests/test_api.py: Add tests for GetAll()
434- wait_for_bus_object(): Poll for Introspect() instead of GetAll(), as some
435  services such as gnome-session don't implement GetAll() properly.
436- Rename "dbus_mock" module to "dbusmock", to be more consistent with the
437  project name and Python module name conventions.
438- Support adding properties to different interfaces.
439- Support adding methods to different interfaces.
440
441## [0.0.2] - 2012-10-01
442- setup.py: Add categories.
443
444## [0.0.1] - 2012-09-28
445Initial release.
446