Skip to content
Snippets Groups Projects
test_sanity.py 1018 B
Newer Older
dilawar's avatar
dilawar committed
from difflib import SequenceMatcher
dilawar's avatar
dilawar committed
import bitia
dilawar's avatar
dilawar committed
import bitia.config as bconfig
dilawar's avatar
dilawar committed
import bitia.__main__
dilawar's avatar
dilawar committed
def test_sanity(capsys):
    version = bitia.version()
    assert len(version) >= 3, version
dilawar's avatar
dilawar committed

dilawar's avatar
dilawar committed
def almost_equal(s1, s2, threshold=0.9) -> bool:
    assert SequenceMatcher(a=s1, b=s2).ratio() > threshold


dilawar's avatar
dilawar committed
def test_run_repeat(capsys):
    bconfig.set_config("plain", True)
    bitia.__main__.run_user_input("ls -ltr /", rerun=False)
    l1 = capsys.readouterr().out  # reset the internal buffer.
    bitia.__main__.run_user_input("ls -ltr /", rerun=False)
    l2 = capsys.readouterr().out
dilawar's avatar
dilawar committed
    assert almost_equal(l1, l2, 0.95)
dilawar's avatar
dilawar committed
def test_run_simple(capsys):
    # set the plain-text mode.
    bconfig.set_config("plain", True)
    bitia.__main__.run_user_input("ls -ltr /")
    captured = capsys.readouterr()  # reset the internal buffer.
    l1 = captured.out
    bitia.__main__.run_user_input("ls -ltr /", rerun=True)
    captured = capsys.readouterr()
    l2 = captured.out
dilawar's avatar
dilawar committed
    assert almost_equal(l1, l2, 0.88)