mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-04 15:28:27 +01:00
Add test_dagascii.py + make find_pager() use DVC_PAGER
This commit is contained in:
+14
-5
@@ -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 "
|
||||
|
||||
@@ -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"
|
||||
Reference in New Issue
Block a user