def test_reopen(self, mock_os, mock_sql): t = MockTunnel('host', 8080) t.start() mock_conn = Mock() mock_cursor = Mock() mock_sql.connect.return_value = mock_conn mock_conn.cursor.return_value = mock_cursor mock_cursor.fetchall.return_value = \ [('host', 8080, 8080, t.name, t.pid)] mock_os.path.exists.return_value = False mock_os.path.expanduser('/home/ubuntu') d = Database() d.create_tunnel(t) db_tunnels = d.list() assert len(db_tunnels) == 1 assert db_tunnels[0].pid == t.pid original_pid = t.pid print(original_pid) t.stop() t.start() print(t.pid) d.reopen(t) mock_cursor.fetchall.return_value = \ [('host', 8080, 8080, t.name, t.pid)] db_tunnels = d.list() assert len(db_tunnels) == 1 assert db_tunnels[0].pid != original_pid assert db_tunnels[0].pid == t.pid
def test_create_reopen(self, mock_db, mock_tunnel): mock_db.return_value = MockDatabase() t = MockTunnel('host', 8080) mock_tunnel.return_value = t manager = TunnelManager() manager.create('host', 8080) t.stop() with capture_output() as (out, err): manager.create('host', 8080) output = out.getvalue().strip() assert 'reopening tunnel' in output
def test_list(self, mock_db, mock_tunnel): mock_db.return_value = MockDatabase() t = MockTunnel('host', 8080) mock_tunnel.return_value = t manager = TunnelManager() manager.create('host', 8080) with capture_output() as (out, err): manager.list() output = out.getvalue().strip() assert '1: host 8080:8080' in output assert '1: host 8080:8080 (dead)' not in output t.stop() with capture_output() as (out, err): manager.list() output = out.getvalue().strip() assert '1: host 8080:8080 (dead)' in output