def premain(argv=None): """Setup for main xonsh entry point, returns parsed arguments.""" if argv is None: argv = sys.argv[1:] setproctitle = get_setproctitle() if setproctitle is not None: setproctitle(' '.join(['xonsh'] + argv)) builtins.__xonsh_ctx__ = {} args = parser.parse_args(argv) if args.help: parser.print_help() parser.exit() if args.version: version = '/'.join(('xonsh', __version__)) print(version) parser.exit() shell_kwargs = { 'shell_type': args.shell_type, 'completer': False, 'login': False, 'scriptcache': args.scriptcache, 'cacheall': args.cacheall, 'ctx': builtins.__xonsh_ctx__ } if args.login: shell_kwargs['login'] = True if args.config_path is not None: shell_kwargs['config'] = args.config_path if args.norc: shell_kwargs['rc'] = () setattr(sys, 'displayhook', _pprint_displayhook) if args.command is not None: args.mode = XonshMode.single_command shell_kwargs['shell_type'] = 'none' elif args.file is not None: args.mode = XonshMode.script_from_file shell_kwargs['shell_type'] = 'none' elif not sys.stdin.isatty() and not args.force_interactive: args.mode = XonshMode.script_from_stdin shell_kwargs['shell_type'] = 'none' else: args.mode = XonshMode.interactive shell_kwargs['completer'] = True shell_kwargs['login'] = True install_hook() builtins.__xonsh_shell__ = Shell(**shell_kwargs) env = builtins.__xonsh_env__ env['XONSH_LOGIN'] = shell_kwargs['login'] if args.defines is not None: env.update([x.split('=', 1) for x in args.defines]) env['XONSH_INTERACTIVE'] = args.force_interactive if ON_WINDOWS: setup_win_unicode_console(env.get('WIN_UNICODE_CONSOLE', True)) return args
def premain(argv=None): """Setup for main xonsh entry point, returns parsed arguments.""" if argv is None: argv = sys.argv[1:] setproctitle = get_setproctitle() if setproctitle is not None: setproctitle(' '.join(['xonsh'] + argv)) builtins.__xonsh_ctx__ = {} args = parser.parse_args(argv) if args.help: parser.print_help() parser.exit() if args.version: version = '/'.join(('xonsh', __version__)) print(version) parser.exit() shell_kwargs = {'shell_type': args.shell_type, 'completer': False, 'login': False, 'scriptcache': args.scriptcache, 'cacheall': args.cacheall, 'ctx': builtins.__xonsh_ctx__} if args.login: shell_kwargs['login'] = True if args.config_path is not None: shell_kwargs['config'] = args.config_path if args.norc: shell_kwargs['rc'] = () setattr(sys, 'displayhook', _pprint_displayhook) if args.command is not None: args.mode = XonshMode.single_command shell_kwargs['shell_type'] = 'none' elif args.file is not None: args.mode = XonshMode.script_from_file shell_kwargs['shell_type'] = 'none' elif not sys.stdin.isatty() and not args.force_interactive: args.mode = XonshMode.script_from_stdin shell_kwargs['shell_type'] = 'none' else: args.mode = XonshMode.interactive shell_kwargs['completer'] = True shell_kwargs['login'] = True install_hook() builtins.__xonsh_shell__ = Shell(**shell_kwargs) env = builtins.__xonsh_env__ env['XONSH_LOGIN'] = shell_kwargs['login'] if args.defines is not None: env.update([x.split('=', 1) for x in args.defines]) env['XONSH_INTERACTIVE'] = args.force_interactive if ON_WINDOWS: setup_win_unicode_console(env.get('WIN_UNICODE_CONSOLE', True)) return args
# -*- coding: utf-8 -*- """Testing xonsh import hooks""" import os import pytest from xonsh import imphooks from xonsh.environ import Env from xonsh.built_ins import load_builtins, unload_builtins import builtins imphooks.install_hook() @pytest.yield_fixture(autouse=True) def imp_env(xonsh_execer): """Call `load_builtins` with `xonsh_execer`""" load_builtins(execer=xonsh_execer) builtins.__xonsh_env__ = Env({'PATH': [], 'PATHEXT': []}) yield unload_builtins() def test_import(): import sample assert ('hello mom jawaka\n' == sample.x) def test_absolute_import(): from xpack import sample assert ('hello mom jawaka\n' == sample.x)
def pytest_configure(config): install_hook()