mirror of
https://github.com/xonsh/xonsh.git
synced 2025-03-05 00:41:00 +01:00
41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
import os.path
|
|
import pytest
|
|
|
|
from contextlib import contextmanager
|
|
from unittest.mock import MagicMock
|
|
from xonsh.aliases import source_alias, builtins
|
|
|
|
|
|
@pytest.fixture
|
|
def mockopen(xonsh_builtins, monkeypatch):
|
|
@contextmanager
|
|
def mocked_open(fpath, *args, **kwargs):
|
|
yield MagicMock(read=lambda: fpath)
|
|
|
|
monkeypatch.setattr(builtins, "open", mocked_open)
|
|
|
|
|
|
def test_source_current_dir(mockopen, monkeypatch):
|
|
checker = []
|
|
|
|
def mocked_execx(src, *args, **kwargs):
|
|
checker.append(src.strip())
|
|
|
|
monkeypatch.setattr(builtins, "execx", mocked_execx)
|
|
monkeypatch.setattr(os.path, "isfile", lambda x: True)
|
|
source_alias(["foo", "bar"])
|
|
assert checker == ["foo", "bar"]
|
|
|
|
|
|
def test_source_path(mockopen, monkeypatch):
|
|
checker = []
|
|
|
|
def mocked_execx(src, *args, **kwargs):
|
|
checker.append(src.strip())
|
|
|
|
monkeypatch.setattr(builtins, "execx", mocked_execx)
|
|
source_alias(["foo", "bar"])
|
|
path_foo = os.path.join("tests", "bin", "foo")
|
|
path_bar = os.path.join("tests", "bin", "bar")
|
|
assert checker[0].endswith(path_foo)
|
|
assert checker[1].endswith(path_bar)
|