Skip to content

Commit 7396428

Browse files
committed
!squash more server
1 parent 2e78d49 commit 7396428

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
@@ -389,7 +387,6 @@ def has_session(self, target_session: str, exact: bool = True) -> bool:
389387
390388
Examples
391389
--------
392-
>>> server = Server()
393390
>>> # Clean up any existing test session
394391
>>> if server.has_session("test_session"):
395392
... server.kill_session("test_session")
@@ -401,10 +398,11 @@ def has_session(self, target_session: str, exact: bool = True) -> bool:
401398
False
402399
>>> server.has_session("test_session", exact=True) # Exact match
403400
True
404-
>>> server.has_session("test*", exact=False) # Pattern match
401+
>>> # Pattern matching (using tmux's pattern matching)
402+
>>> server.has_session("test_sess*", exact=False) # Pattern match
405403
True
406404
>>> server.kill_session("test_session") # Clean up
407-
Server(socket_path=/tmp/tmux-.../default)
405+
Server(socket_name=libtmux_test...)
408406
"""
409407
session_check_name(target_session)
410408

@@ -421,16 +419,14 @@ def kill(self) -> None:
421419
422420
Examples
423421
--------
424-
>>> svr = Server(socket_name="testing")
425-
>>> svr.new_session()
422+
>>> # Create a new server for testing kill()
423+
>>> test_server = Server(socket_name="testing")
424+
>>> test_server.new_session()
426425
Session(...)
427-
428-
>>> svr.is_alive()
426+
>>> test_server.is_alive()
429427
True
430-
431-
>>> svr.kill()
432-
433-
>>> svr.is_alive()
428+
>>> test_server.kill()
429+
>>> test_server.is_alive()
434430
False
435431
"""
436432
self.cmd("kill-server")
@@ -445,15 +441,14 @@ def kill_session(self, target_session: str | int) -> Server:
445441
446442
Examples
447443
--------
448-
>>> server = Server()
449444
>>> # Clean up any existing session first
450445
>>> if server.has_session("temp"):
451446
... server.kill_session("temp")
452447
>>> session = server.new_session(session_name="temp")
453448
>>> server.has_session("temp")
454449
True
455450
>>> server.kill_session("temp")
456-
Server(socket_path=/tmp/tmux-.../default)
451+
Server(socket_name=libtmux_test...)
457452
>>> server.has_session("temp")
458453
False
459454
"""
@@ -470,6 +465,22 @@ def switch_client(self, target_session: str) -> None:
470465
target_session
471466
The name or pattern of the target session.
472467
468+
Examples
469+
--------
470+
>>> # Create two test sessions
471+
>>> for name in ["session1", "session2"]:
472+
... if server.has_session(name):
473+
... server.kill_session(name)
474+
>>> session1 = server.new_session(session_name="session1")
475+
>>> session2 = server.new_session(session_name="session2")
476+
>>> # Note: switch_client() requires an interactive terminal
477+
>>> # so we can't demonstrate it in doctests
478+
>>> # Clean up
479+
>>> server.kill_session("session1")
480+
Server(socket_name=libtmux_test...)
481+
>>> server.kill_session("session2")
482+
Server(socket_name=libtmux_test...)
483+
473484
Raises
474485
------
475486
exc.BadSessionName
@@ -491,6 +502,18 @@ def attach_session(self, target_session: str | None = None) -> None:
491502
The name or pattern of the target session. If None, attaches to
492503
the most recently used session.
493504
505+
Examples
506+
--------
507+
>>> # Create a test session
508+
>>> if server.has_session("test_attach"):
509+
... server.kill_session("test_attach")
510+
>>> session = server.new_session(session_name="test_attach")
511+
>>> # Note: attach_session() requires an interactive terminal
512+
>>> # so we can't demonstrate it in doctests
513+
>>> # Clean up
514+
>>> server.kill_session("test_attach")
515+
Server(socket_name=libtmux_test...)
516+
494517
Raises
495518
------
496519
exc.BadSessionName
@@ -542,7 +565,6 @@ def new_session(
542565
543566
Examples
544567
--------
545-
>>> server = Server()
546568
>>> # Clean up any existing sessions first
547569
>>> for name in ["basic", "custom", "env_test"]:
548570
... if server.has_session(name):
@@ -571,9 +593,9 @@ def new_session(
571593
>>> # Clean up
572594
>>> for name in ["basic", "custom", "env_test"]:
573595
... server.kill_session(name)
574-
Server(socket_path=/tmp/tmux-.../default)
575-
Server(socket_path=/tmp/tmux-.../default)
576-
Server(socket_path=/tmp/tmux-.../default)
596+
Server(socket_name=libtmux_test...)
597+
Server(socket_name=libtmux_test...)
598+
Server(socket_name=libtmux_test...)
577599
"""
578600
if session_name is not None:
579601
session_check_name(session_name)
@@ -637,7 +659,6 @@ def sessions(self) -> QueryList[Session]:
637659
638660
Examples
639661
--------
640-
>>> server = Server()
641662
>>> # Clean up any existing test sessions first
642663
>>> for name in ["test1", "test2"]:
643664
... if server.has_session(name):
@@ -651,9 +672,9 @@ def sessions(self) -> QueryList[Session]:
651672
['test1', 'test2']
652673
>>> # Clean up
653674
>>> server.kill_session("test1")
654-
Server(socket_path=/tmp/tmux-.../default)
675+
Server(socket_name=libtmux_test...)
655676
>>> server.kill_session("test2")
656-
Server(socket_path=/tmp/tmux-.../default)
677+
Server(socket_name=libtmux_test...)
657678
"""
658679
sessions: list[Session] = []
659680
with contextlib.suppress(Exception):
@@ -672,6 +693,36 @@ def windows(self) -> QueryList[Window]:
672693
673694
This includes windows in all sessions.
674695
696+
Examples
697+
--------
698+
>>> # Clean up any existing test sessions
699+
>>> for name in ["test_windows1", "test_windows2"]:
700+
... if server.has_session(name):
701+
... server.kill_session(name)
702+
>>> # Create sessions with windows
703+
>>> session1 = server.new_session(session_name="test_windows1")
704+
>>> session2 = server.new_session(session_name="test_windows2")
705+
>>> # Create additional windows
706+
>>> _ = session1.new_window(window_name="win1") # Create window
707+
>>> _ = session2.new_window(window_name="win2") # Create window
708+
>>> # Each session should have 2 windows (default + new)
709+
>>> len([w for w in server.windows if w.session.name == "test_windows1"])
710+
2
711+
>>> len([w for w in server.windows if w.session.name == "test_windows2"])
712+
2
713+
>>> # Verify window names
714+
>>> wins1 = [w for w in server.windows if w.session.name == "test_windows1"]
715+
>>> wins2 = [w for w in server.windows if w.session.name == "test_windows2"]
716+
>>> sorted(w.name for w in wins1)
717+
['win1', ...]
718+
>>> sorted(w.name for w in wins2)
719+
['win2', ...]
720+
>>> # Clean up
721+
>>> server.kill_session("test_windows1")
722+
Server(socket_name=libtmux_test...)
723+
>>> server.kill_session("test_windows2")
724+
Server(socket_name=libtmux_test...)
725+
675726
Access advanced filtering and retrieval with:
676727
:meth:`.windows.get() <libtmux._internal.query_list.QueryList.get()>` and
677728
:meth:`.windows.filter() <libtmux._internal.query_list.QueryList.filter()>`
@@ -692,6 +743,24 @@ def panes(self) -> QueryList[Pane]:
692743
693744
This includes panes from all windows in all sessions.
694745
746+
Examples
747+
--------
748+
>>> # Clean up any existing test session
749+
>>> if server.has_session("test_panes"):
750+
... server.kill_session("test_panes")
751+
>>> # Create a session and split some panes
752+
>>> session = server.new_session(session_name="test_panes")
753+
>>> window = session.attached_window
754+
>>> # Split into two panes
755+
>>> window.split_window()
756+
Pane(%... Window(@... 1:..., Session($... test_panes)))
757+
>>> # Each window starts with 1 pane, split creates another
758+
>>> len([p for p in server.panes if p.window.session.name == "test_panes"])
759+
2
760+
>>> # Clean up
761+
>>> server.kill_session("test_panes")
762+
Server(socket_name=libtmux_test...)
763+
695764
Access advanced filtering and retrieval with:
696765
:meth:`.panes.get() <libtmux._internal.query_list.QueryList.get()>` and
697766
:meth:`.panes.filter() <libtmux._internal.query_list.QueryList.filter()>`

0 commit comments

Comments
 (0)