"""Tests for session.* commands.""" import pytest from browser_cli.client import send_command SESSION_NAME = "_pytest_session" def test_session_save_and_list(browser): browser("session.save", {"name": SESSION_NAME}) sessions = browser("session.list") assert isinstance(sessions, list) names = [s["name"] for s in sessions] assert SESSION_NAME in names def test_session_list_has_tab_count(browser): sessions = browser("session.list") for s in sessions: assert "name" in s assert "tabs" in s assert isinstance(s["tabs"], int) def test_session_diff(browser): browser("session.save", {"name": SESSION_NAME + "_a"}) browser("session.save", {"name": SESSION_NAME + "_b"}) diff = browser("session.diff", {"nameA": SESSION_NAME + "_a", "nameB": SESSION_NAME + "_b"}) assert "added" in diff assert "removed" in diff def test_session_remove(browser): browser("session.save", {"name": SESSION_NAME + "_remove"}) browser("session.remove", {"name": SESSION_NAME + "_remove"}) sessions = browser("session.list") names = [s["name"] for s in sessions] assert SESSION_NAME + "_remove" not in names def teardown_module(module): """Clean up test sessions after all tests run.""" for name in [SESSION_NAME, SESSION_NAME + "_a", SESSION_NAME + "_b"]: try: send_command("session.remove", {"name": name}) except Exception: pass