def test_hist_clear_cmd(hist, xession, capsys, tmpdir): """Verify that the CLI history clear command works.""" xession.env.update({"XONSH_DATA_DIR": str(tmpdir)}) xession.env["HISTCONTROL"] = set() for ts, cmd in enumerate(CMDS): # populate the shell history hist.append({"inp": cmd, "rtn": 0, "ts": (ts + 1, ts + 1.5)}) assert len(xession.history) == 6 history_main(["clear"]) out, err = capsys.readouterr() assert err.rstrip() == "History cleared" assert len(xession.history) == 0
def test_show_cmd_numerate(inp, commands, offset, hist, xession, capsys): """Verify that CLI history commands work.""" base_idx, step = offset xession.env["HISTCONTROL"] = set() for ts, cmd in enumerate(CMDS): # populate the shell history hist.append({"inp": cmd, "rtn": 0, "ts": (ts + 1, ts + 1.5)}) exp = ("{}: {}".format(base_idx + idx * step, cmd) for idx, cmd in enumerate(list(commands))) exp = "\n".join(exp) history_main(["show", "-n"] + shlex.split(inp)) out, err = capsys.readouterr() assert out.rstrip() == exp
def test_show_cmd_numerate(inp, commands, offset, hist, xonsh_builtins, capsys): """Verify that CLI history commands work.""" base_idx, step = offset xonsh_builtins.__xonsh_history__ = hist xonsh_builtins.__xonsh_env__['HISTCONTROL'] = set() for ts, cmd in enumerate(CMDS): # populate the shell history hist.append({'inp': cmd, 'rtn': 0, 'ts':(ts + 1, ts + 1.5)}) exp = ('{}: {}'.format(base_idx + idx * step, cmd) for idx, cmd in enumerate(list(commands))) exp = '\n'.join(exp) history_main(['show', '-n'] + shlex.split(inp)) out, err = capsys.readouterr() assert out.rstrip() == exp
def test_show_cmd_numerate(inp, commands, offset, hist, xonsh_builtins, capsys): """Verify that CLI history commands work.""" base_idx, step = offset xonsh_builtins.__xonsh_history__ = hist xonsh_builtins.__xonsh_env__['HISTCONTROL'] = set() for ts,cmd in enumerate(CMDS): # populate the shell history hist.append({'inp': cmd, 'rtn': 0, 'ts':(ts+1, ts+1.5)}) exp = ('{}: {}'.format(base_idx + idx * step, cmd) for idx, cmd in enumerate(list(commands))) exp = '\n'.join(exp) history_main(['show', '-n'] + shlex.split(inp)) out, err = capsys.readouterr() assert out.rstrip() == exp
def test_show_cmd_numerate(inp, commands, offset, hist, xonsh_builtins, capsys): """Verify that CLI history commands work.""" base_idx, step = offset xonsh_builtins.__xonsh__.history = hist xonsh_builtins.__xonsh__.env["HISTCONTROL"] = set() for ts, cmd in enumerate(CMDS): # populate the shell history hist.append({"inp": cmd, "rtn": 0, "ts": (ts + 1, ts + 1.5)}) exp = ( "{}: {}".format(base_idx + idx * step, cmd) for idx, cmd in enumerate(list(commands)) ) exp = "\n".join(exp) history_main(["show", "-n"] + shlex.split(inp)) out, err = capsys.readouterr() assert out.rstrip() == exp
def test_hist_off_cmd(hist, xonsh_builtins, capsys, tmpdir): """Verify that the CLI history off command works.""" xonsh_builtins.__xonsh__.env.update({"XONSH_DATA_DIR": str(tmpdir)}) xonsh_builtins.__xonsh__.history = hist xonsh_builtins.__xonsh__.env["HISTCONTROL"] = set() for ts, cmd in enumerate(CMDS): # populate the shell history hist.append({"inp": cmd, "rtn": 0, "ts": (ts + 1, ts + 1.5)}) assert len(xonsh_builtins.__xonsh__.history) == 6 history_main(["off"]) out, err = capsys.readouterr() assert err.rstrip() == "History off" assert len(xonsh_builtins.__xonsh__.history) == 0 for ts, cmd in enumerate(CMDS): # attempt to populate the shell history hist.append({"inp": cmd, "rtn": 0, "ts": (ts + 1, ts + 1.5)}) assert len(xonsh_builtins.__xonsh__.history) == 0
def test_history_diff(tmpdir, xession, monkeypatch, capsys): files = [tmpdir / f"xonsh-HISTORY-TEST-{idx}.json" for idx in range(2)] for file in files: hist = JsonHistory(filename=str(file), here="yup", sessionid="SESSIONID", gc=False) monkeypatch.setattr(xession, "history", hist) xession.env["HISTCONTROL"] = set() for ts, cmd in enumerate(CMDS): # populate the shell history hist.append({"inp": cmd, "rtn": 0, "ts": (ts + 1, ts + 1.5)}) flush = hist.flush() if flush.queue: # make sure that flush is complete time.sleep(0.1) left, right = [str(f) for f in files] history_main(["diff", left, right]) out, err = capsys.readouterr() # make sure it is called assert out.rstrip()
def test_parse_args_help(args, capsys): with pytest.raises(SystemExit): history_main(shlex.split(args)) assert "show this help message and exit" in capsys.readouterr()[0]