Add test_dagascii.py + make find_pager() use DVC_PAGER

This commit is contained in:
Tymoteusz Jankowski
2019-12-04 20:51:24 +01:00
parent c864ca9384
commit 128f60ef68
2 changed files with 42 additions and 5 deletions
+14 -5
View File
@@ -31,13 +31,22 @@ def find_pager():
if not sys.stdout.isatty():
return pydoc.plainpager
if os.system("({}) 2>{}".format(DEFAULT_PAGER, os.devnull)) == 0:
pager_cmd = os.getenv(DVC_PAGER, DEFAULT_PAGER_FORMATTED)
env_pager = os.getenv(DVC_PAGER)
if env_pager:
def less_pager(text):
return pydoc.tempfilepager(pydoc.plain(text), pager_cmd)
def user_pager(text):
return pydoc.tempfilepager(pydoc.plain(text), env_pager)
return less_pager
return user_pager
else:
if os.system("({}) 2>{}".format(DEFAULT_PAGER, os.devnull)) == 0:
def less_pager(text):
return pydoc.tempfilepager(
pydoc.plain(text), DEFAULT_PAGER_FORMATTED
)
return less_pager
logger.warning(
"Unable to find `less` in the PATH. Check out "
+28
View File
@@ -0,0 +1,28 @@
import mock
import os
from dvc import dagascii
from dvc.env import DVC_PAGER
def test_less_pager_returned_when_less_found():
with mock.patch.object(os, "system") as m:
m.return_value = 0
pager = dagascii.find_pager()
assert pager.__name__ == "less_pager"
def test_plainpager_returned_when_less_missing():
with mock.patch.object(os, "system") as m:
m.return_value = 1 # any non-zero value
pager = dagascii.find_pager()
assert pager.__name__ == "plainpager"
def test_tempfilepager_returned_when_var_defined():
os.environ[DVC_PAGER] = dagascii.DEFAULT_PAGER
pager = dagascii.find_pager()
assert pager.__name__ == "user_pager"