def test_terminate_all_session_call_terminate_on_all_sessions(self): """Tests sl4a_manager.Sl4aManager.terminate_all_sessions(). Tests to see that the manager has called terminate on all sessions. """ called_terminate_on = list() def called_on(session): called_terminate_on.append(session) adb = mock.Mock() manager = sl4a_manager.Sl4aManager(adb) session_1 = mock.Mock() session_1.terminate = lambda *args, **kwargs: called_on(session_1) manager.sessions[1] = session_1 session_4 = mock.Mock() session_4.terminate = lambda *args, **kwargs: called_on(session_4) manager.sessions[4] = session_4 session_5 = mock.Mock() session_5.terminate = lambda *args, **kwargs: called_on(session_5) manager.sessions[5] = session_5 manager._get_all_ports = lambda: [] manager.terminate_all_sessions() # No duplicates calls to terminate. self.assertEqual(len(called_terminate_on), len(set(called_terminate_on))) # One call for each session self.assertSetEqual(set(called_terminate_on), {session_1, session_4, session_5})
def test_terminate_all_session_close_each_server(self): """Tests sl4a_manager.Sl4aManager.terminate_all_sessions(). Tests to see that the manager has called terminate on all sessions. """ closed_ports = list() def close(command): if str.isdigit(command): closed_ports.append(command) return '' adb = mock.Mock() adb.shell = close sl4a_manager._SL4A_CLOSE_SERVER_CMD = '%s' ports_to_close = {'12345', '67890', '24680', '13579'} manager = sl4a_manager.Sl4aManager(adb) manager._sl4a_ports = set(ports_to_close) manager._get_all_ports = lambda: [] manager.terminate_all_sessions() # No duplicate calls to close port self.assertEqual(len(closed_ports), len(set(closed_ports))) # One call for each port self.assertSetEqual(ports_to_close, set(closed_ports))
def test_sl4a_ports_in_use(self): """Tests sl4a_manager.Sl4aManager.sl4a_ports_in_use Tests to make sure all server ports are returned with no duplicates. """ adb = mock.Mock() manager = sl4a_manager.Sl4aManager(adb) session_1 = mock.Mock() session_1.server_port = 12345 manager.sessions[1] = session_1 session_2 = mock.Mock() session_2.server_port = 15973 manager.sessions[2] = session_2 session_3 = mock.Mock() session_3.server_port = 12345 manager.sessions[3] = session_3 session_4 = mock.Mock() session_4.server_port = 67890 manager.sessions[4] = session_4 session_5 = mock.Mock() session_5.server_port = 75638 manager.sessions[5] = session_5 returned_ports = manager.sl4a_ports_in_use # No duplicated ports. self.assertEqual(len(returned_ports), len(set(returned_ports))) # One call for each session self.assertSetEqual(set(returned_ports), {12345, 15973, 67890, 75638})
def test_obtain_sl4a_server_starts_new_server(self): """Tests sl4a_manager.Sl4aManager.obtain_sl4a_server(). Tests that a new server can be returned if the server does not exist. """ adb = mock.Mock() manager = sl4a_manager.Sl4aManager(adb) manager.start_sl4a_server = mock.Mock() manager.obtain_sl4a_server(0) self.assertTrue(manager.start_sl4a_server.called)
def test_obtain_sl4a_server_returns_existing_server( self, sl4a_ports_in_use): """Tests sl4a_manager.Sl4aManager.obtain_sl4a_server(). Tests that an existing server is returned if it is already opened. """ adb = mock.Mock() manager = sl4a_manager.Sl4aManager(adb) manager.start_sl4a_server = mock.Mock() sl4a_ports_in_use.return_value = [12345] ret = manager.obtain_sl4a_server(12345) self.assertFalse(manager.start_sl4a_server.called) self.assertEqual(12345, ret)