From 1356acdb2bbca28e442597699da1a295faa18fe3 Mon Sep 17 00:00:00 2001 From: Rahul Mahajan Date: Thu, 27 Jun 2024 19:41:25 -0400 Subject: [PATCH] source bash configurations (#36) --- src/wxflow/configuration.py | 4 +++- tests/test_configuration.py | 3 --- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/wxflow/configuration.py b/src/wxflow/configuration.py index 77cf009..0abf9b6 100644 --- a/src/wxflow/configuration.py +++ b/src/wxflow/configuration.py @@ -1,6 +1,7 @@ import glob import os import random +import shutil import subprocess from pathlib import Path from pprint import pprint @@ -107,8 +108,9 @@ def _get_shell_env(scripts: List) -> Dict[str, Any]: runme = ''.join([f'source {s} ; ' for s in scripts]) magic = f'--- ENVIRONMENT BEGIN {random.randint(0,64**5)} ---' runme += f'/bin/echo -n "{magic}" ; /usr/bin/env -0' + bash_path = shutil.which('bash') with open('/dev/null', 'w') as null: - env = subprocess.Popen(runme, shell=True, stdin=null.fileno(), + env = subprocess.Popen(runme, shell=True, executable=bash_path, stdin=null.fileno(), stdout=subprocess.PIPE) (out, err) = env.communicate() out = out.decode() diff --git a/tests/test_configuration.py b/tests/test_configuration.py index 80ed966..fefc4f9 100644 --- a/tests/test_configuration.py +++ b/tests/test_configuration.py @@ -144,7 +144,6 @@ def test_configuration_config_dir(tmp_path, create_configs): assert cfg.config_dir == tmp_path -@pytest.mark.skip(reason="fails in GH runner, passes on localhost") def test_configuration_config_files(tmp_path, create_configs): cfg = Configuration(tmp_path) config_files = [str(tmp_path / 'config.file0'), str(tmp_path / 'config.file1')] @@ -157,14 +156,12 @@ def test_find_config(tmp_path, create_configs): assert str(tmp_path / 'config.file0') == file0 -@pytest.mark.skip(reason="fails in GH runner, passes on localhost") def test_parse_config1(tmp_path, create_configs): cfg = Configuration(tmp_path) f0 = cfg.parse_config('config.file0') assert file0_dict == f0 -@pytest.mark.skip(reason="fails in GH runner, passes on localhost") def test_parse_config2(tmp_path, create_configs): cfg = Configuration(tmp_path) ff = cfg.parse_config(['config.file0', 'config.file1'])