xonsh/tests/test_history_dummy.py

42 lines
1.4 KiB
Python
Raw Normal View History

"""Tests the dummy history backend."""
import pytest
from xonsh.history.dummy import DummyHistory
from xonsh.history.main import construct_history
@pytest.mark.parametrize("backend", ["dummy", DummyHistory, DummyHistory()])
def test_construct_history_str(xession, backend):
xession.env["XONSH_HISTORY_BACKEND"] = backend
assert isinstance(construct_history(), DummyHistory)
def test_ignore_regex_invalid(xession, capsys):
xession.env["XONSH_HISTORY_BACKEND"] = "dummy"
xession.env["XONSH_HISTORY_IGNORE_REGEX"] = "**"
history = construct_history()
captured = capsys.readouterr()
assert (
"XONSH_HISTORY_IGNORE_REGEX is not a valid regular expression and will be ignored"
in captured.err
)
assert not history.is_ignored({"inp": "history"})
def test_is_ignore(xession):
xession.env["XONSH_HISTORY_BACKEND"] = "dummy"
xession.env["XONSH_HISTORY_IGNORE_REGEX"] = "(ls|cat)"
history = construct_history()
assert history.is_ignored({"inp": "cat foo.txt"})
assert not history.is_ignored({"inp": "history"})
assert history.is_ignored({"inp": "ls bar"})
def test_is_ignore_no_regex(xession):
xession.env["XONSH_HISTORY_BACKEND"] = "dummy"
history = construct_history()
assert not history.is_ignored({"inp": "cat foo.txt"})
assert not history.is_ignored({"inp": "history"})
assert not history.is_ignored({"inp": "ls bar"})