Skip to content

Commit e0cfc84

Browse files
committed
!squash more server
1 parent edfe3b9 commit e0cfc84

File tree

1 file changed

+92
-23
lines changed

1 file changed

+92
-23
lines changed

Diff for: src/libtmux/server.py

+92-23
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@
1010
1111
Examples
1212
--------
13-
>>> from libtmux import Server
14-
>>> server = Server() # Create a new server instance
1513
>>> server.is_alive() # Check if tmux server is running
1614
True
1715
>>> # Clean up any existing test session first
@@ -23,7 +21,7 @@
2321
>>> server.has_session("test_session")
2422
True
2523
>>> server.kill_session("test_session") # Clean up
26-
Server(socket_path=/tmp/tmux-.../default)
24+
Server(socket_name=libtmux_test...)
2725
"""
2826

2927
from __future__ import annotations
@@ -387,7 +385,6 @@ def has_session(self, target_session: str, exact: bool = True) -> bool:
387385
388386
Examples
389387
--------
390-
>>> server = Server()
391388
>>> # Clean up any existing test session
392389
>>> if server.has_session("test_session"):
393390
... server.kill_session("test_session")
@@ -399,10 +396,11 @@ def has_session(self, target_session: str, exact: bool = True) -> bool:
399396
False
400397
>>> server.has_session("test_session", exact=True) # Exact match
401398
True
402-
>>> server.has_session("test*", exact=False) # Pattern match
399+
>>> # Pattern matching (using tmux's pattern matching)
400+
>>> server.has_session("test_sess*", exact=False) # Pattern match
403401
True
404402
>>> server.kill_session("test_session") # Clean up
405-
Server(socket_path=/tmp/tmux-.../default)
403+
Server(socket_name=libtmux_test...)
406404
"""
407405
session_check_name(target_session)
408406

@@ -419,16 +417,14 @@ def kill(self) -> None:
419417
420418
Examples
421419
--------
422-
>>> svr = Server(socket_name="testing")
423-
>>> svr.new_session()
420+
>>> # Create a new server for testing kill()
421+
>>> test_server = Server(socket_name="testing")
422+
>>> test_server.new_session()
424423
Session(...)
425-
426-
>>> svr.is_alive()
424+
>>> test_server.is_alive()
427425
True
428-
429-
>>> svr.kill()
430-
431-
>>> svr.is_alive()
426+
>>> test_server.kill()
427+
>>> test_server.is_alive()
432428
False
433429
"""
434430
self.cmd("kill-server")
@@ -443,15 +439,14 @@ def kill_session(self, target_session: str | int) -> Server:
443439
444440
Examples
445441
--------
446-
>>> server = Server()
447442
>>> # Clean up any existing session first
448443
>>> if server.has_session("temp"):
449444
... server.kill_session("temp")
450445
>>> session = server.new_session(session_name="temp")
451446
>>> server.has_session("temp")
452447
True
453448
>>> server.kill_session("temp")
454-
Server(socket_path=/tmp/tmux-.../default)
449+
Server(socket_name=libtmux_test...)
455450
>>> server.has_session("temp")
456451
False
457452
"""
@@ -468,6 +463,22 @@ def switch_client(self, target_session: str) -> None:
468463
target_session
469464
The name or pattern of the target session.
470465
466+
Examples
467+
--------
468+
>>> # Create two test sessions
469+
>>> for name in ["session1", "session2"]:
470+
... if server.has_session(name):
471+
... server.kill_session(name)
472+
>>> session1 = server.new_session(session_name="session1")
473+
>>> session2 = server.new_session(session_name="session2")
474+
>>> # Note: switch_client() requires an interactive terminal
475+
>>> # so we can't demonstrate it in doctests
476+
>>> # Clean up
477+
>>> server.kill_session("session1")
478+
Server(socket_name=libtmux_test...)
479+
>>> server.kill_session("session2")
480+
Server(socket_name=libtmux_test...)
481+
471482
Raises
472483
------
473484
exc.BadSessionName
@@ -489,6 +500,18 @@ def attach_session(self, target_session: str | None = None) -> None:
489500
The name or pattern of the target session. If None, attaches to
490501
the most recently used session.
491502
503+
Examples
504+
--------
505+
>>> # Create a test session
506+
>>> if server.has_session("test_attach"):
507+
... server.kill_session("test_attach")
508+
>>> session = server.new_session(session_name="test_attach")
509+
>>> # Note: attach_session() requires an interactive terminal
510+
>>> # so we can't demonstrate it in doctests
511+
>>> # Clean up
512+
>>> server.kill_session("test_attach")
513+
Server(socket_name=libtmux_test...)
514+
492515
Raises
493516
------
494517
exc.BadSessionName
@@ -540,7 +563,6 @@ def new_session(
540563
541564
Examples
542565
--------
543-
>>> server = Server()
544566
>>> # Clean up any existing sessions first
545567
>>> for name in ["basic", "custom", "env_test"]:
546568
... if server.has_session(name):
@@ -569,9 +591,9 @@ def new_session(
569591
>>> # Clean up
570592
>>> for name in ["basic", "custom", "env_test"]:
571593
... server.kill_session(name)
572-
Server(socket_path=/tmp/tmux-.../default)
573-
Server(socket_path=/tmp/tmux-.../default)
574-
Server(socket_path=/tmp/tmux-.../default)
594+
Server(socket_name=libtmux_test...)
595+
Server(socket_name=libtmux_test...)
596+
Server(socket_name=libtmux_test...)
575597
"""
576598
if session_name is not None:
577599
session_check_name(session_name)
@@ -635,7 +657,6 @@ def sessions(self) -> QueryList[Session]:
635657
636658
Examples
637659
--------
638-
>>> server = Server()
639660
>>> # Clean up any existing test sessions first
640661
>>> for name in ["test1", "test2"]:
641662
... if server.has_session(name):
@@ -649,9 +670,9 @@ def sessions(self) -> QueryList[Session]:
649670
['test1', 'test2']
650671
>>> # Clean up
651672
>>> server.kill_session("test1")
652-
Server(socket_path=/tmp/tmux-.../default)
673+
Server(socket_name=libtmux_test...)
653674
>>> server.kill_session("test2")
654-
Server(socket_path=/tmp/tmux-.../default)
675+
Server(socket_name=libtmux_test...)
655676
"""
656677
sessions: list[Session] = []
657678
with contextlib.suppress(Exception):
@@ -670,6 +691,36 @@ def windows(self) -> QueryList[Window]:
670691
671692
This includes windows in all sessions.
672693
694+
Examples
695+
--------
696+
>>> # Clean up any existing test sessions
697+
>>> for name in ["test_windows1", "test_windows2"]:
698+
... if server.has_session(name):
699+
... server.kill_session(name)
700+
>>> # Create sessions with windows
701+
>>> session1 = server.new_session(session_name="test_windows1")
702+
>>> session2 = server.new_session(session_name="test_windows2")
703+
>>> # Create additional windows
704+
>>> _ = session1.new_window(window_name="win1") # Create window
705+
>>> _ = session2.new_window(window_name="win2") # Create window
706+
>>> # Each session should have 2 windows (default + new)
707+
>>> len([w for w in server.windows if w.session.name == "test_windows1"])
708+
2
709+
>>> len([w for w in server.windows if w.session.name == "test_windows2"])
710+
2
711+
>>> # Verify window names
712+
>>> wins1 = [w for w in server.windows if w.session.name == "test_windows1"]
713+
>>> wins2 = [w for w in server.windows if w.session.name == "test_windows2"]
714+
>>> sorted(w.name for w in wins1)
715+
['win1', ...]
716+
>>> sorted(w.name for w in wins2)
717+
['win2', ...]
718+
>>> # Clean up
719+
>>> server.kill_session("test_windows1")
720+
Server(socket_name=libtmux_test...)
721+
>>> server.kill_session("test_windows2")
722+
Server(socket_name=libtmux_test...)
723+
673724
Access advanced filtering and retrieval with:
674725
:meth:`.windows.get() <libtmux._internal.query_list.QueryList.get()>` and
675726
:meth:`.windows.filter() <libtmux._internal.query_list.QueryList.filter()>`
@@ -690,6 +741,24 @@ def panes(self) -> QueryList[Pane]:
690741
691742
This includes panes from all windows in all sessions.
692743
744+
Examples
745+
--------
746+
>>> # Clean up any existing test session
747+
>>> if server.has_session("test_panes"):
748+
... server.kill_session("test_panes")
749+
>>> # Create a session and split some panes
750+
>>> session = server.new_session(session_name="test_panes")
751+
>>> window = session.attached_window
752+
>>> # Split into two panes
753+
>>> window.split_window()
754+
Pane(%... Window(@... 1:..., Session($... test_panes)))
755+
>>> # Each window starts with 1 pane, split creates another
756+
>>> len([p for p in server.panes if p.window.session.name == "test_panes"])
757+
2
758+
>>> # Clean up
759+
>>> server.kill_session("test_panes")
760+
Server(socket_name=libtmux_test...)
761+
693762
Access advanced filtering and retrieval with:
694763
:meth:`.panes.get() <libtmux._internal.query_list.QueryList.get()>` and
695764
:meth:`.panes.filter() <libtmux._internal.query_list.QueryList.filter()>`

0 commit comments

Comments
 (0)