# TODO: These tests are now broken and need fixing...
# from unittest import TestCase
# from mock import patch, DEFAULT
# from rattail.db.sync import linux
# class SyncDaemonTests(TestCase):
# @patch.multiple('rattail.db.sync.linux',
# edbob=DEFAULT,
# get_default_engine=DEFAULT,
# get_sync_engines=DEFAULT,
# synchronize_changes=DEFAULT)
# def test_run(self, edbob, get_default_engine, get_sync_engines, synchronize_changes):
# daemon = linux.SyncDaemon('/tmp/rattail_dbsync.pid')
# # no remote engines configured
# get_sync_engines.return_value = None
# daemon.run()
# get_sync_engines.assert_called_once_with(edbob.config)
# self.assertFalse(get_default_engine.called)
# self.assertFalse(synchronize_changes.called)
# # with remote engines configured
# get_sync_engines.return_value = 'fake_remotes'
# get_default_engine.return_value = 'fake_local'
# daemon.run()
# synchronize_changes.assert_called_once_with('fake_local', 'fake_remotes')
# class ModuleTests(TestCase):
# @patch.multiple('rattail.db.sync.linux', edbob=DEFAULT, SyncDaemon=DEFAULT)
# def test_get_daemon(self, edbob, SyncDaemon):
# # pid file provided
# linux.get_daemon('some_pidfile')
# self.assertFalse(edbob.config.get.called)
# SyncDaemon.assert_called_once_with('some_pidfile')
# # no pid file; fall back to config
# SyncDaemon.reset_mock()
# edbob.config.get.return_value = 'configured_pidfile'
# linux.get_daemon()
# edbob.config.get.assert_called_once_with('rattail.db', 'sync.pid_path',
# default='/var/run/rattail/dbsync.pid')
# SyncDaemon.assert_called_once_with('configured_pidfile')
# @patch('rattail.db.sync.linux.get_daemon')
# def test_start_daemon(self, get_daemon):
# linux.start_daemon(pidfile='some_pidfile', daemonize='maybe')
# get_daemon.assert_called_once_with('some_pidfile')
# get_daemon.return_value.start.assert_called_once_with('maybe')
# @patch('rattail.db.sync.linux.get_daemon')
# def test_stop_daemon(self, get_daemon):
# linux.stop_daemon(pidfile='some_pidfile')
# get_daemon.assert_called_once_with('some_pidfile')
# get_daemon.return_value.stop.assert_called_once_with()