Skip to content

Commit ab8aae5

Browse files
committed
!squash more server
1 parent 077933b commit ab8aae5

File tree

1 file changed

+92
-23
lines changed

1 file changed

+92
-23
lines changed

src/libtmux/server.py

Lines changed: 92 additions & 23 deletions
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
@@ -337,7 +335,6 @@ def has_session(self, target_session: str, exact: bool = True) -> bool:
337335
338336
Examples
339337
--------
340-
>>> server = Server()
341338
>>> # Clean up any existing test session
342339
>>> if server.has_session("test_session"):
343340
... server.kill_session("test_session")
@@ -349,10 +346,11 @@ def has_session(self, target_session: str, exact: bool = True) -> bool:
349346
False
350347
>>> server.has_session("test_session", exact=True) # Exact match
351348
True
352-
>>> server.has_session("test*", exact=False) # Pattern match
349+
>>> # Pattern matching (using tmux's pattern matching)
350+
>>> server.has_session("test_sess*", exact=False) # Pattern match
353351
True
354352
>>> server.kill_session("test_session") # Clean up
355-
Server(socket_path=/tmp/tmux-.../default)
353+
Server(socket_name=libtmux_test...)
356354
"""
357355
session_check_name(target_session)
358356

@@ -369,16 +367,14 @@ def kill(self) -> None:
369367
370368
Examples
371369
--------
372-
>>> svr = Server(socket_name="testing")
373-
>>> svr.new_session()
370+
>>> # Create a new server for testing kill()
371+
>>> test_server = Server(socket_name="testing")
372+
>>> test_server.new_session()
374373
Session(...)
375-
376-
>>> svr.is_alive()
374+
>>> test_server.is_alive()
377375
True
378-
379-
>>> svr.kill()
380-
381-
>>> svr.is_alive()
376+
>>> test_server.kill()
377+
>>> test_server.is_alive()
382378
False
383379
"""
384380
self.cmd("kill-server")
@@ -393,15 +389,14 @@ def kill_session(self, target_session: str | int) -> Server:
393389
394390
Examples
395391
--------
396-
>>> server = Server()
397392
>>> # Clean up any existing session first
398393
>>> if server.has_session("temp"):
399394
... server.kill_session("temp")
400395
>>> session = server.new_session(session_name="temp")
401396
>>> server.has_session("temp")
402397
True
403398
>>> server.kill_session("temp")
404-
Server(socket_path=/tmp/tmux-.../default)
399+
Server(socket_name=libtmux_test...)
405400
>>> server.has_session("temp")
406401
False
407402
"""
@@ -418,6 +413,22 @@ def switch_client(self, target_session: str) -> None:
418413
target_session
419414
The name or pattern of the target session.
420415
416+
Examples
417+
--------
418+
>>> # Create two test sessions
419+
>>> for name in ["session1", "session2"]:
420+
... if server.has_session(name):
421+
... server.kill_session(name)
422+
>>> session1 = server.new_session(session_name="session1")
423+
>>> session2 = server.new_session(session_name="session2")
424+
>>> # Note: switch_client() requires an interactive terminal
425+
>>> # so we can't demonstrate it in doctests
426+
>>> # Clean up
427+
>>> server.kill_session("session1")
428+
Server(socket_name=libtmux_test...)
429+
>>> server.kill_session("session2")
430+
Server(socket_name=libtmux_test...)
431+
421432
Raises
422433
------
423434
exc.BadSessionName
@@ -439,6 +450,18 @@ def attach_session(self, target_session: str | None = None) -> None:
439450
The name or pattern of the target session. If None, attaches to
440451
the most recently used session.
441452
453+
Examples
454+
--------
455+
>>> # Create a test session
456+
>>> if server.has_session("test_attach"):
457+
... server.kill_session("test_attach")
458+
>>> session = server.new_session(session_name="test_attach")
459+
>>> # Note: attach_session() requires an interactive terminal
460+
>>> # so we can't demonstrate it in doctests
461+
>>> # Clean up
462+
>>> server.kill_session("test_attach")
463+
Server(socket_name=libtmux_test...)
464+
442465
Raises
443466
------
444467
exc.BadSessionName
@@ -490,7 +513,6 @@ def new_session(
490513
491514
Examples
492515
--------
493-
>>> server = Server()
494516
>>> # Clean up any existing sessions first
495517
>>> for name in ["basic", "custom", "env_test"]:
496518
... if server.has_session(name):
@@ -519,9 +541,9 @@ def new_session(
519541
>>> # Clean up
520542
>>> for name in ["basic", "custom", "env_test"]:
521543
... server.kill_session(name)
522-
Server(socket_path=/tmp/tmux-.../default)
523-
Server(socket_path=/tmp/tmux-.../default)
524-
Server(socket_path=/tmp/tmux-.../default)
544+
Server(socket_name=libtmux_test...)
545+
Server(socket_name=libtmux_test...)
546+
Server(socket_name=libtmux_test...)
525547
"""
526548
if session_name is not None:
527549
session_check_name(session_name)
@@ -585,7 +607,6 @@ def sessions(self) -> QueryList[Session]:
585607
586608
Examples
587609
--------
588-
>>> server = Server()
589610
>>> # Clean up any existing test sessions first
590611
>>> for name in ["test1", "test2"]:
591612
... if server.has_session(name):
@@ -599,9 +620,9 @@ def sessions(self) -> QueryList[Session]:
599620
['test1', 'test2']
600621
>>> # Clean up
601622
>>> server.kill_session("test1")
602-
Server(socket_path=/tmp/tmux-.../default)
623+
Server(socket_name=libtmux_test...)
603624
>>> server.kill_session("test2")
604-
Server(socket_path=/tmp/tmux-.../default)
625+
Server(socket_name=libtmux_test...)
605626
"""
606627
sessions: list[Session] = []
607628
with contextlib.suppress(Exception):
@@ -620,6 +641,36 @@ def windows(self) -> QueryList[Window]:
620641
621642
This includes windows in all sessions.
622643
644+
Examples
645+
--------
646+
>>> # Clean up any existing test sessions
647+
>>> for name in ["test_windows1", "test_windows2"]:
648+
... if server.has_session(name):
649+
... server.kill_session(name)
650+
>>> # Create sessions with windows
651+
>>> session1 = server.new_session(session_name="test_windows1")
652+
>>> session2 = server.new_session(session_name="test_windows2")
653+
>>> # Create additional windows
654+
>>> _ = session1.new_window(window_name="win1") # Create window
655+
>>> _ = session2.new_window(window_name="win2") # Create window
656+
>>> # Each session should have 2 windows (default + new)
657+
>>> len([w for w in server.windows if w.session.name == "test_windows1"])
658+
2
659+
>>> len([w for w in server.windows if w.session.name == "test_windows2"])
660+
2
661+
>>> # Verify window names
662+
>>> wins1 = [w for w in server.windows if w.session.name == "test_windows1"]
663+
>>> wins2 = [w for w in server.windows if w.session.name == "test_windows2"]
664+
>>> sorted(w.name for w in wins1)
665+
['win1', ...]
666+
>>> sorted(w.name for w in wins2)
667+
['win2', ...]
668+
>>> # Clean up
669+
>>> server.kill_session("test_windows1")
670+
Server(socket_name=libtmux_test...)
671+
>>> server.kill_session("test_windows2")
672+
Server(socket_name=libtmux_test...)
673+
623674
Access advanced filtering and retrieval with:
624675
:meth:`.windows.get() <libtmux._internal.query_list.QueryList.get()>` and
625676
:meth:`.windows.filter() <libtmux._internal.query_list.QueryList.filter()>`
@@ -640,6 +691,24 @@ def panes(self) -> QueryList[Pane]:
640691
641692
This includes panes from all windows in all sessions.
642693
694+
Examples
695+
--------
696+
>>> # Clean up any existing test session
697+
>>> if server.has_session("test_panes"):
698+
... server.kill_session("test_panes")
699+
>>> # Create a session and split some panes
700+
>>> session = server.new_session(session_name="test_panes")
701+
>>> window = session.attached_window
702+
>>> # Split into two panes
703+
>>> window.split_window()
704+
Pane(%... Window(@... 1:..., Session($... test_panes)))
705+
>>> # Each window starts with 1 pane, split creates another
706+
>>> len([p for p in server.panes if p.window.session.name == "test_panes"])
707+
2
708+
>>> # Clean up
709+
>>> server.kill_session("test_panes")
710+
Server(socket_name=libtmux_test...)
711+
643712
Access advanced filtering and retrieval with:
644713
:meth:`.panes.get() <libtmux._internal.query_list.QueryList.get()>` and
645714
:meth:`.panes.filter() <libtmux._internal.query_list.QueryList.filter()>`

0 commit comments

Comments
 (0)