from difflib import SequenceMatcher import bitia import bitia.config as bconfig import bitia.__main__ def test_sanity(capsys): version = bitia.version() assert len(version) >= 3, version def assert_almost_equal(s1, s2, threshold=0.9): assert SequenceMatcher(a=s1, b=s2).ratio() > threshold 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 assert_almost_equal(l1, l2, 0.85) 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 assert_almost_equal(l1, l2, 0.85)