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_tunnel(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_os.path.exists.return_value = False mock_os.path.expanduser('/home/ubuntu') d = Database() d.create_tunnel(t) sql = ("INSERT INTO tunnel VALUES('host', 8080, " "8080, 'localhost', {})".format(t.pid)) mock_cursor.execute.assert_called_with(sql)
def test_remove(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_os.path.exists.return_value = False mock_os.path.expanduser('/home/ubuntu') d = Database() d.create_tunnel(t) d.remove(t) expected_sql = "DELETE FROM tunnel WHERE pid=?" expected_params = (t.pid,) mock_cursor.execute.assert_called_with(expected_sql, expected_params)
def test_in_use(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.fetchone.return_value = t mock_os.path.exists.return_value = False mock_os.path.expanduser('/home/ubuntu') d = Database() d.create_tunnel(t) params = (t.server, t.remote, t.local, t.name) in_use = d.in_use(*params) sql = ("SELECT * FROM tunnel WHERE server=? AND " "remote=? AND local=? AND name=?") mock_cursor.execute.assert_called_with(sql, params) mock_cursor.fetchone.assert_called_once() assert in_use