0.10.1 (2014-01-30)
-------------------
 - Move code from bzr to git, adjust README.rst, do-release, and other files
   accordingly.
 - timedated template: Emit PropertiesChanged when setting properties. Thanks
   Iain Lane.

0.10 (2013-12-18)
-----------------
 - Add dynamic properties to introspection XML, to make mocked properties work
   with Qt's property support, d-feet, and other tools. Thanks Iain Lane!
 - Fix frequent KeyError() when calling static methods from a template.
   Regression from 0.9.
 - Support having the same method name on different D-BUS interfaces.
 - Add ofono template with support for the Manager, VoiceCallManager, and
   NetworkRegistration/NetworkOperator interfaces.
 - Add template for systemd's timedated. Thanks Iain Lane!

0.9.2 (2013-12-13)
------------------
 - upower template: Emit DeviceAdded when adding new a new AC adapter or
   battery. Thanks Iain Lane!
 - Fix ResourceWarnings in test suite.

0.9.1 (2013-12-10)
------------------
 - Fix UnicodeDecodeError in NEWS parsing when trying to build with a C locale.
   Thanks Dmitry Shachnev.

0.9 (2013-11-29)
----------------
 - Make static template methods appear in introspection. Thanks Philip
   Whitnall! (LP: #1250096)
 - Add support for the D-Bus ObjectManager interface. This can now be enabled
   in templates (IS_OBJECT_MANAGER = True) or the CLI (--is-object-manager/-m).
   Thanks Philip Whitnall!
 - Add Reset() mock interface method to reset that object’s state (including
   removing all its sub-objects) as if the object or template had been
   destroyed and re-created. This is intended for use at the end of test cases
   to reset state before the next test case is run, as an alternative to
   killing python-dbusmock and re-starting it. Thanks Philip Whitnall!  
 - logind template: Fix return value of CanSuspend() and related methods,
   calling them previously caused a crash.
 - Don't close the log file multiple times if it is shared between objects.
   Thanks Philip Whitnall!
 - Log calls to Get(), GetAll(), and Set().
 - Add templates for BlueZ 5 and BlueZ-OBEX. These templates are moderately
   well featured, though currently targeted exclusively at testing OBEX vCard
   transfers from phones to computers. Thanks Philip Whitnall!

0.8.1 (2013-11-11)
------------------
 - Fix test failure if the "upower" tool is not installed.
 - Fix bad upower test which assumed a locale with a comma decimal separator.

0.8 (2013-11-08)
----------------
 - upower template: Change default daemon version to "0.9", and fix tests to
   work with both upower 0.9 and 1.0 client tool.
 - upower template: Provide 1.0 API if DaemonVersion property/template
   parameter gets set to >= "0.99". (LP: #1245955)
 - upower template: Add SetupDisplayDevice() method on the mock interface to
   conveniently configure all defined properties of the DisplayDevice. Only
   available when using the 1.0 API. (LP: #1245955)

0.7.2 (2013-08-30)
------------------
 - Add optional "timeout" argument to DBusTestCase.wait_for_bus_object().
   (LP: #1218318)
 - DBusTestCase.start_system_bus(): Make the fake bus look more like a real
   system bus by specifying a configuration file with type "system".

0.7.1 (2013-08-02)
------------------
 - Handle the "Disconnected" signal only if it comes from the D-BUS object, to
   avoid accidentally reacting to other signals (like from BlueZ). Thanks
   Lucas De Marchi.

0.7 (2013-07-30)
----------------
 - Accept *.py files for the --template command line option, similar to
   AddTemplate(). Thanks Emanuele Aina.
 - Pass log file to objects created with AddObject(). Thanks Emanuele Aina.
 - NetworkManager template: Add new method AddWiFiConnection(), to simulate a
   connection associated to a previously added device (with AddWiFiDevice()).
   Thanks Pete Woods.

0.6.3 (2013-06-13)
------------------
 - Drop "can-suspend" and "can-hibernate" checks from upower template test.
   upower 1.0 deprecates this functionality, and defaults to not building it.

0.6.2 (2013-06-13)
------------------
 - Fix test_api.TestSubclass test to work without an existing session D-BUS.

0.6.1 (2013-06-13)
------------------
 - Add dbusmock.__version__ attribute, as per PEP-0396.
 - Fix not being able to inherit from DBusMockObject. Thanks Lucas De Marchi!
 - Allow subclassed DBusMockObject constructors to specify props arguments as
   None.
 - Fix failing notification-daemon tests for too old libnotify. (LP: #1190208)
 - notification_daemon template: Generate new IDs for Notify() calls with an
   input ID of 0. (LP: #1190209 part 1)
 - notification_daemon template: Send NotificationClosed signal in
   CloseNotification() method for valid IDs. (LP: #1190209 part 2)

0.6 (2013-03-20)
----------------
 - Emit MethodCalled() signal on the DBusMock interface, as an alternative way
   of verifying method calls. Thanks Lars Uebernickel.
 - DBusMockObject.AddTemplate() and DBusTestCase.spawn_server_template() can
   now load local templates by specifying a path to a *.py file as template
   name. Thanks Lucas De Marchi.
 - Quit mock process if the D-BUS it connected to goes down. (LP: #1156561)
 - Support Get() and GetAll() with empty interface names, default to main
   interface in this case.
 - Add template for systemd's logind.

0.5 (2013-02-03)
----------------
 - upower template: Change LidIsClosed property default value to False.
 - Add polkitd template. (LP: #1112551)

0.4.0 (2013-01-21)
------------------
 - Add GetCalls(), GetMethodCalls() and ClearCalls() methods on the mock D-BUS
   interface to query the call log, for cases where parsing stdout is
   inconvenient. Thanks to Robert Bruce Park for the patch! (LP: #1099483)
 - Document how to keep internal state in AddMethod().
 - Add template for gnome-screensaver. Thanks to Bastien Nocera!
 - Fix logging of signal arguments to have the same format as method call
   arguments.

0.3.1 (2013-01-07)
------------------
 - upower template: Set Energy and EnergyFull properties.

0.3 (2012-12-19)
----------------
 - In the logging of mock method calls, log the arguments as well.
 - Fix race condition in waiting for mock to get online on the bus, by avoiding
   triggering D-BUS service activation with system-installed services.
 - Add "notification_daemon" mock template.

0.2.2 (2012-11-27)
------------------
 - tests: Suppress "nmcli and NetworkManager versions don't match" warning.
 - networkmanager template: Add DeviceState enum for easier specification of
   states. Thanks Alberto Ruiz.
 - Fix deprecation warnings with PyGObject 3.7.x.

0.2.1 (2012-11-15)
------------------
 - Fix tests to skip instead of fail if NetworkManager or upower are not
   installed.

0.2.0 (2012-11-15)
------------------
 - Turn dbusmock from a module into a package. This is transparent for API
   users, but necessary for adding future subpackages and also makes the code
   more maintainable.
 - Run pyflakes and pep8 during test suite, if available.
 - Add support for templates: You can now call AddTemplate() on the
   org.freedesktop.DBus.Mock interface to load a template into the mock, or in
   Python, start a server process with loading a template with
   DBusTestCase.spawn_server_template(). Templates set up the common structure
   of these services (their main objects, properties, and methods) so that you
   do not need to carry around this common code, and only need to set up the
   particular properties and specific D-BUS objects that you need. These
   templates can be parameterized for common customizations, and they can
   provide additional convenience methods on the org.freedesktop.DBus.Mock
   interface to provide more abstract functionality like "add a battery".
 - Add a first simple "upower" template with convenience methods to add AC and
   battery objects, and change tests/test_upower.py to use it.
 - Add a first "networkmanager" template with convenience methods to add
   Ethernet/WiFi devices and access points. Thanks Iftikhar Ahmad!
 - Add symbol dbusmock.MOCK_IFACE for 'org.freedesktop.DBus.Mock'.
 - Add test cases for command line invocation (python3 -m dbusmock ...).

0.1.3 (2012-11-03)
------------------
 - Ship NEWS in release tarballs.

0.1.2 (2012-10-10)
------------------
 - dbusmock.py, EmitSignal(): Convert arguments to the right data types
   according to the signature.
 - dbusmock.py, method calls: Convert arguments to the right data types
   according to the signature.
 - tests/test_api.py: Check proper handling of signature vs. argument list
   length and/or type mismatch. (LP: #1064836)
 - tests/test_upower.py: Add test for handling "DeviceChanged" signal.
 - setup.py: Get version from NEWS file.

0.1.1 (2012-10-04)
------------------
 - setup.py: Use README.rst as long description.
 - setup.py: Add download URL.
 - tests/test_consolekit.py: Skip test if ck-list-sessions is not installed.
 - setup.py: Import "multiprocessing" to work around "'NoneType' object
   is not callable" error when running "setup.py test" with python 2.7.

0.1 (2012-10-04)
----------------
 - tests/test_api.py: Add tests for adding existing objects.
 - dbusmock.py: Also put first (main) object into the global objects map.
 - dbusmock.py: Document global objects map in AddMethod().
 - tests/test_upower.py: Silence "No ... property" warnings; the test does not
   create them all.
 - dbusmock.py: Fix stopping of local D-Bus daemons for test subclasses.
 - dbusmock.py, stop_dbus(): Wait for local D-Bus to be killed, and avoid
   getting SIGTERMed ourselves.
 - dbusmock.py: Add AddProperties() method to conveniently add several
   properties to one interface at once. Update upower test case to use this.
 - dbusmock.py: Add EmitSignal() method to emit an arbitrary signal on any
   interface.
 - Make code compatible with Python 2.7 as well. (LP: #1060278)

0.0.3 (2012-10-01)
------------------
 - tests/test_api.py: Add tests for GetAll()
 - wait_for_bus_object(): Poll for Introspect() instead of GetAll(), as some
   services such as gnome-session don't implement GetAll() properly.
 - Rename "dbus_mock" module to "dbusmock", to be more consistent with the
   project name and Python module name conventions.
 - Support adding properties to different interfaces.
 - Support adding methods to different interfaces.

0.0.2 (2012-10-01)
------------------
 - setup.py: Add categories.

0.0.1 (2012-09-28)
------------------
Initial release.
