class TestNMConnectionListener(unittest.TestCase): def setUp(self): self._oldDBUSInterface = dbus.Interface dbus.Interface = MockNetworkManager.Interface self.mockNM = MockNetworkManager() self.nmListener = NMListener(self.mockNM) def tearDown(self): dbus.Interface = self._oldDBUSInterface def test_connected(self): self.mockNM.setConnected() self.assertTrue(self.nmListener.connected()) def test_unconnected(self): self.mockNM.setDisconnected() self.assertFalse(self.nmListener.connected()) def test_noNetworkManager(self): self.nmListener.nmIface = MockFailNetworkManager() self.assertFalse(self.nmListener.has_networkmanager()) def test_hasNetworkManager(self): self.assertTrue(self.nmListener.has_networkmanager()) def test_cachesNetworkStatus(self): """ The listener should cache the connection status, and should not use DBUS each call to connected() """ self.mockNM.setConnected() #Ensure the status is cached self.nmListener.connected() #Now, ensure we can't get status from DBUS self.nmListener.nmIface = None self.assertTrue(self.nmListener.connected()) def test_callbackOnStateChange(self): """ All the callbacks should be run on change of state from disconnected -> connected """ self.mockNM.setDisconnected() cb = LogingCallback() self.nmListener.add_callback(cb) self.mockNM.setConnected() self.assertEqual([(tuple(), dict())], cb.log)
def setUp(self): self._oldDBUSInterface = dbus.Interface dbus.Interface = MockNetworkManager.Interface self.mockNM = MockNetworkManager() self.nmListener = NMListener(self.mockNM)