Skip to content

Commit 57671ed

Browse files
committed
Add mute decorator for tests where output unneeded
1 parent a35e473 commit 57671ed

File tree

3 files changed

+38
-10
lines changed

3 files changed

+38
-10
lines changed

tmuxp/testsuite/helpers.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import inspect
1414
import io
1515
import logging
16+
import os
1617
import sys
1718
from contextlib import contextmanager
1819
from random import randint
@@ -336,3 +337,30 @@ def test_foo(self, stdout, stderr):
336337
sys.stderr = prev_err
337338
sys.__stdout__ = prev_rout
338339
sys.__stderr__ = prev_rerr
340+
341+
342+
@decorator
343+
def mute():
344+
"""Redirect `sys.stdout` and `sys.stderr` to /dev/null, silencent them.
345+
Decorator example::
346+
@mute
347+
def test_foo(self):
348+
something()
349+
Context example::
350+
with mute():
351+
something()
352+
"""
353+
prev_out, prev_err = sys.stdout, sys.stderr
354+
prev_rout, prev_rerr = sys.__stdout__, sys.__stderr__
355+
devnull = open(os.devnull, 'w')
356+
mystdout, mystderr = devnull, devnull
357+
sys.stdout = sys.__stdout__ = mystdout
358+
sys.stderr = sys.__stderr__ = mystderr
359+
360+
try:
361+
yield
362+
finally:
363+
sys.stdout = prev_out
364+
sys.stderr = prev_err
365+
sys.__stdout__ = prev_rout
366+
sys.__stderr__ = prev_rerr

tmuxp/testsuite/util.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ def test_raise_BeforeLoadScriptError_if_retcode(self):
113113
with self.assertRaises(BeforeLoadScriptError):
114114
run_before_script(script_file)
115115

116-
@stdouts()
116+
@stdouts
117117
def test_return_stdout_if_ok(self, stdout, stderr):
118118
script_file = os.path.join(fixtures_dir, 'script_complete.sh')
119119

tmuxp/testsuite/workspacebuilder.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
from tmuxp import Window, config, exc
2121
from tmuxp._compat import text_type
22-
from tmuxp.testsuite.helpers import TmuxTestCase, stdouts
22+
from tmuxp.testsuite.helpers import TmuxTestCase, mute
2323
from tmuxp.workspacebuilder import WorkspaceBuilder
2424

2525
logger = logging.getLogger(__name__)
@@ -883,8 +883,8 @@ class BeforeLoadScript(TmuxTestCase):
883883
- pane
884884
"""
885885

886-
@stdouts()
887-
def test_throw_error_if_retcode_error(self, stdout, stderr):
886+
@mute()
887+
def test_throw_error_if_retcode_error(self):
888888
sconfig = kaptan.Kaptan(handler='yaml')
889889
yaml = self.config_script_fails.format(
890890
fixtures_dir=fixtures_dir,
@@ -909,8 +909,8 @@ def test_throw_error_if_retcode_error(self, stdout, stderr):
909909
msg="Kills session if before_script exits with errcode"
910910
)
911911

912-
@stdouts()
913-
def test_throw_error_if_file_not_exists(self, stdout, stderr):
912+
@mute()
913+
def test_throw_error_if_file_not_exists(self):
914914
sconfig = kaptan.Kaptan(handler='yaml')
915915
yaml = self.config_script_not_exists.format(
916916
fixtures_dir=fixtures_dir,
@@ -941,8 +941,8 @@ def test_throw_error_if_file_not_exists(self, stdout, stderr):
941941
msg="Kills session if before_script doesn't exist"
942942
)
943943

944-
@stdouts()
945-
def test_true_if_test_passes(self, stdout, stderr):
944+
@mute()
945+
def test_true_if_test_passes(self):
946946
assert(
947947
os.path.exists(os.path.join(fixtures_dir, 'script_complete.sh'))
948948
)
@@ -961,8 +961,8 @@ def test_true_if_test_passes(self, stdout, stderr):
961961
with self.temp_session():
962962
builder.build(session=self.session)
963963

964-
@stdouts()
965-
def test_true_if_test_passes_with_args(self, *args):
964+
@mute()
965+
def test_true_if_test_passes_with_args(self):
966966
assert(
967967
os.path.exists(os.path.join(fixtures_dir, 'script_complete.sh'))
968968
)

0 commit comments

Comments
 (0)