Skip to content

Commit e7b0591

Browse files
committed
Clean out unused test helpers, fixture usage fixes
1 parent 8225be1 commit e7b0591

File tree

5 files changed

+10
-282
lines changed

5 files changed

+10
-282
lines changed

tests/__init__.py

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,3 @@
77
"""
88
from __future__ import (absolute_import, division, print_function,
99
unicode_literals, with_statement)
10-
11-
import sys
12-
13-
if sys.version_info < (2, 7):
14-
import unittest2 as unittest
15-
else:
16-
import unittest # NOQA

tests/helpers.py

Lines changed: 1 addition & 261 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# -*- coding: utf-8 -*-
2-
"""Helper methods for tmuxp unittests.
2+
"""Helper methods for tmuxp tests.
33
44
_CallableContext, WhateverIO, decorator and stdouts are from the case project,
55
https://github.com/celery/case, license BSD 3-clause.
@@ -9,22 +9,9 @@
99
unicode_literals, with_statement)
1010

1111
import contextlib
12-
import functools
13-
import inspect
14-
import io
1512
import logging
1613
import os
17-
import sys
1814
import tempfile
19-
from contextlib import contextmanager
20-
21-
from tmuxp import exc
22-
from tmuxp.server import Server
23-
24-
if sys.version_info < (2, 7):
25-
import unittest2 as unittest
26-
else:
27-
import unittest
2815

2916
logger = logging.getLogger(__name__)
3017

@@ -125,253 +112,6 @@ def temp_window(session, *args, **kwargs):
125112
return
126113

127114

128-
class TestCase(unittest.TestCase):
129-
130-
"""Base TestClass so we don't have to try: unittest2 every module. """
131-
132-
@classmethod
133-
def setUpClass(cls):
134-
super(TestCase, cls).setUpClass() # for python 2.6 unittest2
135-
136-
137-
class TmuxTestCase(TestCase):
138-
139-
"""TmuxTestCase class, wraps the TestCase in a :class:`Session`."""
140-
141-
#: :class:`Session` object.
142-
session = None
143-
#: Session name for the TestCase.
144-
TEST_SESSION_NAME = None
145-
146-
def temp_session(self, session_name=None):
147-
return temp_session(self.server, session_name)
148-
149-
def setUp(self):
150-
"""Run bootstrap if :attr:`~.session` is not set."""
151-
152-
if not self.TEST_SESSION_NAME or not self.session:
153-
self.bootstrap()
154-
155-
def bootstrap(self):
156-
"""Return tuple of the session_name (generated) and :class:`Session`.
157-
158-
Checks to verify if the user has a tmux client open.
159-
160-
It will clean up and delete other sessions starting with the
161-
:attr:`TEST_SESSION_PREFIX` ``tmuxp``.
162-
163-
Since tmux closes when all sessions are deleted, the bootstrap will see
164-
if there is no other client open aside from a tmuxp_ prefixed session
165-
a dumby session will be made to prevent tmux from closing.
166-
167-
"""
168-
self.t = t = Server()
169-
t.socket_name = 'tmuxp_test'
170-
171-
session_name = 'tmuxp'
172-
if not t.has_session(session_name):
173-
t.cmd('new-session', '-d', '-s', session_name)
174-
175-
# find current sessions prefixed with tmuxp
176-
old_test_sessions = [
177-
s.get('session_name') for s in t._sessions
178-
if s.get('session_name').startswith(TEST_SESSION_PREFIX)
179-
]
180-
181-
TEST_SESSION_NAME = get_test_session_name(server=t)
182-
183-
try:
184-
session = t.new_session(
185-
session_name=TEST_SESSION_NAME,
186-
)
187-
except exc.TmuxpException as e:
188-
raise e
189-
190-
"""
191-
Make sure that tmuxp can :ref:`test_builder_visually` and switches to
192-
the newly created session for that testcase.
193-
"""
194-
try:
195-
t.switch_client(session.get('session_id'))
196-
pass
197-
except exc.TmuxpException as e:
198-
# t.attach_session(session.get('session_id'))
199-
pass
200-
201-
for old_test_session in old_test_sessions:
202-
logger.debug(
203-
'Old test test session %s found. Killing it.' %
204-
old_test_session
205-
)
206-
t.kill_session(old_test_session)
207-
assert TEST_SESSION_NAME == session.get('session_name')
208-
assert TEST_SESSION_NAME != 'tmuxp'
209-
210-
self.TEST_SESSION_NAME = TEST_SESSION_NAME
211-
self.server = t
212-
self.session = session
213-
214-
215-
StringIO = io.StringIO
216-
_SIO_write = StringIO.write
217-
_SIO_init = StringIO.__init__
218-
219-
220-
def update_wrapper(wrapper, wrapped, *args, **kwargs):
221-
wrapper = functools.update_wrapper(wrapper, wrapped, *args, **kwargs)
222-
wrapper.__wrapped__ = wrapped
223-
return wrapper
224-
225-
226-
def wraps(wrapped,
227-
assigned=functools.WRAPPER_ASSIGNMENTS,
228-
updated=functools.WRAPPER_UPDATES):
229-
return functools.partial(update_wrapper, wrapped=wrapped,
230-
assigned=assigned, updated=updated)
231-
232-
233-
class _CallableContext(object):
234-
235-
def __init__(self, context, cargs, ckwargs, fun):
236-
self.context = context
237-
self.cargs = cargs
238-
self.ckwargs = ckwargs
239-
self.fun = fun
240-
241-
def __call__(self, *args, **kwargs):
242-
return self.fun(*args, **kwargs)
243-
244-
def __enter__(self):
245-
self.ctx = self.context(*self.cargs, **self.ckwargs)
246-
return self.ctx.__enter__()
247-
248-
def __exit__(self, *einfo):
249-
if self.ctx:
250-
return self.ctx.__exit__(*einfo)
251-
252-
253-
def decorator(predicate):
254-
context = contextmanager(predicate)
255-
256-
@wraps(predicate)
257-
def take_arguments(*pargs, **pkwargs):
258-
259-
@wraps(predicate)
260-
def decorator(cls):
261-
if inspect.isclass(cls):
262-
orig_setup = cls.setUp
263-
orig_teardown = cls.tearDown
264-
265-
@wraps(cls.setUp)
266-
def around_setup(*args, **kwargs):
267-
try:
268-
contexts = args[0].__rb3dc_contexts__
269-
except AttributeError:
270-
contexts = args[0].__rb3dc_contexts__ = []
271-
p = context(*pargs, **pkwargs)
272-
p.__enter__()
273-
contexts.append(p)
274-
return orig_setup(*args, **kwargs)
275-
around_setup.__wrapped__ = cls.setUp
276-
cls.setUp = around_setup
277-
278-
@wraps(cls.tearDown)
279-
def around_teardown(*args, **kwargs):
280-
try:
281-
contexts = args[0].__rb3dc_contexts__
282-
except AttributeError:
283-
pass
284-
else:
285-
for context in contexts:
286-
context.__exit__(*sys.exc_info())
287-
orig_teardown(*args, **kwargs)
288-
around_teardown.__wrapped__ = cls.tearDown
289-
cls.tearDown = around_teardown
290-
291-
return cls
292-
else:
293-
@wraps(cls)
294-
def around_case(self, *args, **kwargs):
295-
with context(*pargs, **pkwargs) as context_args:
296-
context_args = context_args or ()
297-
if not isinstance(context_args, tuple):
298-
context_args = (context_args,)
299-
return cls(*(self,) + args + context_args, **kwargs)
300-
return around_case
301-
302-
if len(pargs) == 1 and callable(pargs[0]):
303-
fun, pargs = pargs[0], ()
304-
return decorator(fun)
305-
return _CallableContext(context, pargs, pkwargs, decorator)
306-
assert take_arguments.__wrapped__
307-
return take_arguments
308-
309-
310-
class WhateverIO(StringIO):
311-
312-
def __init__(self, v=None, *a, **kw):
313-
_SIO_init(self, v.decode() if isinstance(v, bytes) else v, *a, **kw)
314-
315-
def write(self, data):
316-
_SIO_write(self, data.decode() if isinstance(data, bytes) else data)
317-
318-
319-
@decorator
320-
def stdouts():
321-
"""Override `sys.stdout` and `sys.stderr` with `StringIO`
322-
instances.
323-
Decorator example::
324-
@mock.stdouts
325-
def test_foo(self, stdout, stderr):
326-
something()
327-
self.assertIn('foo', stdout.getvalue())
328-
Context example::
329-
with mock.stdouts() as (stdout, stderr):
330-
something()
331-
self.assertIn('foo', stdout.getvalue())
332-
"""
333-
prev_out, prev_err = sys.stdout, sys.stderr
334-
prev_rout, prev_rerr = sys.__stdout__, sys.__stderr__
335-
mystdout, mystderr = WhateverIO(), WhateverIO()
336-
sys.stdout = sys.__stdout__ = mystdout
337-
sys.stderr = sys.__stderr__ = mystderr
338-
339-
try:
340-
yield mystdout, mystderr
341-
finally:
342-
sys.stdout = prev_out
343-
sys.stderr = prev_err
344-
sys.__stdout__ = prev_rout
345-
sys.__stderr__ = prev_rerr
346-
347-
348-
@decorator
349-
def mute():
350-
"""Redirect `sys.stdout` and `sys.stderr` to /dev/null, silencent them.
351-
Decorator example::
352-
@mute
353-
def test_foo(self):
354-
something()
355-
Context example::
356-
with mute():
357-
something()
358-
"""
359-
prev_out, prev_err = sys.stdout, sys.stderr
360-
prev_rout, prev_rerr = sys.__stdout__, sys.__stderr__
361-
devnull = open(os.devnull, 'w')
362-
mystdout, mystderr = devnull, devnull
363-
sys.stdout = sys.__stdout__ = mystdout
364-
sys.stderr = sys.__stderr__ = mystderr
365-
366-
try:
367-
yield
368-
finally:
369-
sys.stdout = prev_out
370-
sys.stderr = prev_err
371-
sys.__stdout__ = prev_rout
372-
sys.__stderr__ = prev_rerr
373-
374-
375115
class EnvironmentVarGuard(object):
376116

377117
"""Class to help protect the environment variable properly. Can be used as

tests/test_server.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ def test_has_session(server, session):
1616
assert not server.has_session('asdf2314324321')
1717

1818

19-
def test_socket_name():
19+
def test_socket_name(server):
2020
""" ``-L`` socket_name.
2121
2222
``-L`` socket_name file name of socket. which will be stored in
@@ -28,20 +28,20 @@ def test_socket_name():
2828
assert myserver.socket_name == 'test'
2929

3030

31-
def test_socket_path():
31+
def test_socket_path(server):
3232
""" ``-S`` socket_path (alternative path for server socket). """
3333
myserver = Server(socket_path='test')
3434

3535
assert myserver.socket_path == 'test'
3636

3737

38-
def test_config():
38+
def test_config(server):
3939
""" ``-f`` file for tmux(1) configuration. """
4040
myserver = Server(config_file='test')
4141
assert myserver.config_file == 'test'
4242

4343

44-
def test_256_colors():
44+
def test_256_colors(server):
4545
myserver = Server(colors=256)
4646
assert myserver.colors == 256
4747

@@ -51,7 +51,7 @@ def test_256_colors():
5151
assert '-8' not in proc.cmd
5252

5353

54-
def test_88_colors():
54+
def test_88_colors(server):
5555
myserver = Server(colors=88)
5656
assert myserver.colors == 88
5757

@@ -67,7 +67,7 @@ def test_show_environment(server):
6767
assert isinstance(_vars, dict)
6868

6969

70-
def test_set_show_environment_single(server):
70+
def test_set_show_environment_single(server, session):
7171
"""Set environment then Server.show_environment(key)."""
7272
server.set_environment('FOO', 'BAR')
7373
assert 'BAR' == server.show_environment('FOO')

tests/test_tmuxobject.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"""Test the :class:`TmuxRelationalObject` base class object."""
1616

1717

18-
def test_findWhere(server):
18+
def test_findWhere(server, session):
1919
"""Test that findWhere() retrieves single matching object."""
2020
# server.findWhere
2121
for session in server.sessions:
@@ -44,7 +44,7 @@ def test_findWhere(server):
4444
window.findWhere({'pane_id': pane_id}), Pane)
4545

4646

47-
def test_findWhere_None(server):
47+
def test_findWhere_None(server, session):
4848
""".findWhere returns None if no results found."""
4949

5050
while True:
@@ -58,7 +58,7 @@ def test_findWhere_None(server):
5858
}) is None
5959

6060

61-
def test_findWhere_multiple_attrs(server):
61+
def test_findWhere_multiple_attrs(server, session):
6262
""".findWhere returns objects with multiple attributes."""
6363

6464
for session in server.sessions:

tests/tests/test_helpers.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,3 @@ def test_if_session_killed_before(server):
3636

3737
# really dead?
3838
assert not server.has_session(session_name)
39-
40-
41-
def test_if_session_name_works(self):
42-
"""should allow custom ``session_name``."""
43-
pass

0 commit comments

Comments
 (0)