# -*- coding: utf-8 -*- """Tests the xonsh replay functionality.""" import os import builtins import pytest from xonsh.shell import Shell from xonsh.execer import Execer from xonsh.replay import Replayer from tools import skip_if_on_darwin HISTDIR = os.path.join(os.path.dirname(__file__), "histories") @pytest.fixture(scope="module", autouse=True) def ctx(): """Create a global Shell instance to use in all the test.""" ctx = {"PATH": []} execer = Execer(xonsh_ctx=ctx) builtins.__xonsh__.shell = Shell(execer=execer, ctx=ctx, shell_type="none") yield builtins.__xonsh__.shell = None @skip_if_on_darwin def test_echo(): histfile = os.path.join(HISTDIR, "echo.json") hist = Replayer(histfile).replay() assert len(hist) == 2 @skip_if_on_darwin def test_reecho(): histfile = os.path.join(HISTDIR, "echo.json") hist = Replayer(histfile).replay() assert len(hist) == 2 @skip_if_on_darwin def test_simple_python(): histfile = os.path.join(HISTDIR, "simple-python.json") hist = Replayer(histfile).replay() assert len(hist) == 4 assert hist.inps[0].strip() == "print('The Turtles')"