Skip to content

Commit 4316aa0

Browse files
committed
convert window test to functional, add server/session test fixtures
1 parent 9f8adcb commit 4316aa0

File tree

4 files changed

+233
-191
lines changed

4 files changed

+233
-191
lines changed

tests/conftest.py

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,67 @@
1+
# -*- coding: utf-8 -*-
2+
13
import pytest
24

5+
import logging
6+
from tmuxp import exc
7+
from tmuxp.server import Server
8+
9+
from .helpers import get_test_session_name, TEST_SESSION_PREFIX
10+
11+
logger = logging.getLogger(__name__)
12+
13+
14+
@pytest.fixture(scope='session')
15+
def t():
16+
t = Server()
17+
t.socket_name = 'tmuxp_test'
18+
19+
return t
20+
21+
22+
@pytest.fixture(scope='function')
23+
def session(t):
24+
session_name = 'tmuxp'
25+
if not t.has_session(session_name):
26+
t.cmd('new-session', '-d', '-s', session_name)
27+
28+
# find current sessions prefixed with tmuxp
29+
old_test_sessions = [
30+
s.get('session_name') for s in t._sessions
31+
if s.get('session_name').startswith(TEST_SESSION_PREFIX)
32+
]
33+
34+
TEST_SESSION_NAME = get_test_session_name(server=t)
35+
36+
try:
37+
session = t.new_session(
38+
session_name=TEST_SESSION_NAME,
39+
)
40+
except exc.TmuxpException as e:
41+
raise e
42+
43+
"""
44+
Make sure that tmuxp can :ref:`test_builder_visually` and switches to
45+
the newly created session for that testcase.
46+
"""
47+
try:
48+
t.switch_client(session.get('session_id'))
49+
pass
50+
except exc.TmuxpException as e:
51+
# t.attach_session(session.get('session_id'))
52+
pass
53+
54+
for old_test_session in old_test_sessions:
55+
logger.debug(
56+
'Old test test session %s found. Killing it.' %
57+
old_test_session
58+
)
59+
t.kill_session(old_test_session)
60+
assert TEST_SESSION_NAME == session.get('session_name')
61+
assert TEST_SESSION_NAME != 'tmuxp'
62+
63+
return session
64+
365

466
@pytest.fixture()
567
def tmpdir(tmpdir_factory):

tests/helpers.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@
1818
import tempfile
1919
from contextlib import contextmanager
2020

21-
import pytest
22-
2321
from tmuxp import exc
2422
from tmuxp.server import Server
2523

@@ -148,7 +146,6 @@ class TmuxTestCase(TestCase):
148146
def temp_session(self, session_name=None):
149147
return temp_session(self.server, session_name)
150148

151-
@pytest.fixture(autouse=True)
152149
def setUp(self):
153150
"""Run bootstrap if :attr:`~.session` is not set."""
154151

tests/test_pane.py

Lines changed: 31 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -6,50 +6,48 @@
66

77
import logging
88

9-
from .helpers import TmuxTestCase
10-
119
logger = logging.getLogger(__name__)
1210

1311

14-
class ResizeTest(TmuxTestCase):
12+
def test_resize_pane(session):
13+
""" Test Pane.resize_pane(). """
14+
15+
window = session.attached_window()
16+
window.rename_window('test_resize_pane')
1517

16-
def test_resize_pane(self):
17-
""" Test Pane.resize_pane(). """
18+
pane1 = window.attached_pane()
19+
pane1_height = pane1['pane_height']
20+
window.split_window()
1821

19-
window = self.session.attached_window()
20-
window.rename_window('test_resize_pane')
22+
pane1.resize_pane(height=4)
23+
assert pane1['pane_height'] != pane1_height
24+
assert int(pane1['pane_height']) == 4
2125

22-
pane1 = window.attached_pane()
23-
pane1_height = pane1['pane_height']
24-
window.split_window()
26+
pane1.resize_pane(height=3)
27+
assert int(pane1['pane_height']) == 3
2528

26-
pane1.resize_pane(height=4)
27-
assert pane1['pane_height'] != pane1_height
28-
assert int(pane1['pane_height']) == 4
2929

30-
pane1.resize_pane(height=3)
31-
assert int(pane1['pane_height']) == 3
30+
def test_set_height(session):
31+
window = session.new_window(window_name='test_set_height')
32+
window.split_window()
33+
pane1 = window.attached_pane()
34+
pane1_height = pane1['pane_height']
3235

33-
def test_set_height(self):
34-
window = self.session.new_window(window_name='test_set_height')
35-
window.split_window()
36-
pane1 = window.attached_pane()
37-
pane1_height = pane1['pane_height']
36+
pane1.set_height(2)
37+
assert pane1['pane_height'] != pane1_height
38+
assert int(pane1['pane_height']) == 2
3839

39-
pane1.set_height(2)
40-
assert pane1['pane_height'] != pane1_height
41-
assert int(pane1['pane_height']) == 2
4240

43-
def test_set_width(self):
44-
window = self.session.new_window(window_name='test_set_width')
45-
window.split_window()
41+
def test_set_width(session):
42+
window = session.new_window(window_name='test_set_width')
43+
window.split_window()
4644

47-
window.select_layout('main-vertical')
48-
pane1 = window.attached_pane()
49-
pane1_width = pane1['pane_width']
45+
window.select_layout('main-vertical')
46+
pane1 = window.attached_pane()
47+
pane1_width = pane1['pane_width']
5048

51-
pane1.set_width(10)
52-
assert pane1['pane_width'] != pane1_width
53-
assert int(pane1['pane_width']) == 10
49+
pane1.set_width(10)
50+
assert pane1['pane_width'] != pane1_width
51+
assert int(pane1['pane_width']) == 10
5452

55-
pane1.reset()
53+
pane1.reset()

0 commit comments

Comments
 (0)