diff --git a/bonobo/commands/run.py b/bonobo/commands/run.py index 59190be..033e17c 100644 --- a/bonobo/commands/run.py +++ b/bonobo/commands/run.py @@ -83,12 +83,6 @@ def read(filename, module, install=False, quiet=False, verbose=False, default_en for f in default_env_file: env_file_path = env_dir.joinpath(f) load_dotenv(env_file_path) - else: - try: - env_file_path = env_dir.joinpath('.env') - load_dotenv(env_file_path) - except FileNotFoundError: - pass if default_env: for e in default_env: diff --git a/bonobo/examples/environment/env_files/.env2 b/bonobo/examples/environment/env_files/.env2 new file mode 100644 index 0000000..1b91848 --- /dev/null +++ b/bonobo/examples/environment/env_files/.env2 @@ -0,0 +1,2 @@ +TEST_USER_PASSWORD='not_sweet_password' +PATH='abril' \ No newline at end of file diff --git a/bonobo/examples/env_vars/__init__.py b/bonobo/examples/environment/env_files/__init__.py similarity index 100% rename from bonobo/examples/env_vars/__init__.py rename to bonobo/examples/environment/env_files/__init__.py diff --git a/bonobo/examples/env_vars/get_passed_env_file.py b/bonobo/examples/environment/env_files/get_passed_env_file.py similarity index 77% rename from bonobo/examples/env_vars/get_passed_env_file.py rename to bonobo/examples/environment/env_files/get_passed_env_file.py index e7a0952..bb83e67 100644 --- a/bonobo/examples/env_vars/get_passed_env_file.py +++ b/bonobo/examples/environment/env_files/get_passed_env_file.py @@ -6,10 +6,9 @@ import bonobo def extract(): my_secret = os.getenv('MY_SECRET') test_user_password = os.getenv('TEST_USER_PASSWORD') - user = os.getenv('USERNAME') path = os.getenv('PATH') - return my_secret, test_user_password, user, path + return my_secret, test_user_password, path def load(s: str): diff --git a/bonobo/examples/environment/env_vars/__init__.py b/bonobo/examples/environment/env_vars/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/bonobo/examples/env_vars/get_passed_env.py b/bonobo/examples/environment/env_vars/get_passed_env.py similarity index 100% rename from bonobo/examples/env_vars/get_passed_env.py rename to bonobo/examples/environment/env_vars/get_passed_env.py diff --git a/tests/test_commands.py b/tests/test_commands.py index ce7b582..fbede11 100644 --- a/tests/test_commands.py +++ b/tests/test_commands.py @@ -99,38 +99,92 @@ def test_version(runner, capsys): @all_runners -def test_run_module_with_default_env_file(runner, capsys): +def test_run_file_with_default_env_file(runner, capsys): runner( - 'run', '--quiet', get_examples_path('env_vars/get_passed_env_file.py') + 'run', '--quiet', '--default-env-file', '.env', + get_examples_path('environment/env_files/get_passed_env_file.py') ) out, err = capsys.readouterr() out = out.split('\n') assert out[0] == '321' assert out[1] == 'sweetpassword' - assert out[2] != 'not_cwandrews_123' - assert out[3] != 'marzo' - - -# @all_runners -# def test_run_with_env_file(runner, capsys): -# runner( -# 'run', '--quiet', -# get_examples_path('env_vars/get_passed_env.py'), '--env', 'ENV_TEST_NUMBER=123', '--env', -# 'ENV_TEST_USER=cwandrews', '--env', "ENV_TEST_STRING='my_test_string'" -# ) -# out, err = capsys.readouterr() -# out = out.split('\n') -# assert out[0] == 'cwandrews' -# assert out[1] == '123' -# assert out[2] == 'my_test_string' + assert out[2] != 'marzo' @all_runners -def test_run_with_env(runner, capsys): +def test_run_file_with_multiple_default_env_files(runner, capsys): + runner( + 'run', '--quiet', '--default-env-file', '.env', + '--default-env-file', '.env2', + get_examples_path('environment/env_files/get_passed_env_file.py') + ) + out, err = capsys.readouterr() + out = out.split('\n') + assert out[0] == '321' + assert out[1] == 'sweetpassword' + assert out[2] != 'marzo' + + +@all_runners +def test_run_file_with_env_file(runner, capsys): + runner( + 'run', '--quiet', '--env-file', '.env', + get_examples_path('environment/env_files/get_passed_env_file.py') + ) + out, err = capsys.readouterr() + out = out.split('\n') + assert out[0] == '321' + assert out[1] == 'sweetpassword' + assert out[2] == 'marzo' + + +@all_runners +def test_run_file_with_multiple_env_files(runner, capsys): + runner( + 'run', '--quiet', '--env-file', '.env', '--env-file', '.env2', + get_examples_path('environment/env_files/get_passed_env_file.py') + ) + out, err = capsys.readouterr() + out = out.split('\n') + assert out[0] == '321' + assert out[1] == 'not_sweet_password' + assert out[2] == 'abril' + + +@all_runners +def test_run_file_with_default_env_file_and_env_file(runner, capsys): + runner( + 'run', '--quiet', '--default-env-file', '.env', '--env-file', '.env2', + get_examples_path('environment/env_files/get_passed_env_file.py') + ) + out, err = capsys.readouterr() + out = out.split('\n') + assert out[0] == '321' + assert out[1] == 'not_sweet_password' + assert out[2] == 'abril' + + +@all_runners +def test_run_file_with_default_env_file_and_env_file_and_env_vars(runner, capsys): + runner( + 'run', '--quiet', '--default-env-file', '.env', '--env-file', '.env2', + '--env', 'TEST_USER_PASSWORD=SWEETpass', '--env', 'MY_SECRET=444', + get_examples_path('environment/env_files/get_passed_env_file.py') + ) + out, err = capsys.readouterr() + out = out.split('\n') + assert out[0] == '444' + assert out[1] == 'SWEETpass' + assert out[2] == 'abril' + + +@all_runners +def test_run_file_with_env_vars(runner, capsys): runner( 'run', '--quiet', - get_examples_path('env_vars/get_passed_env.py'), '--env', 'ENV_TEST_NUMBER=123', '--env', - 'ENV_TEST_USER=cwandrews', '--env', "ENV_TEST_STRING='my_test_string'" + get_examples_path('environment/env_vars/get_passed_env.py'), + '--env', 'ENV_TEST_NUMBER=123', '--env', 'ENV_TEST_USER=cwandrews', + '--env', "ENV_TEST_STRING='my_test_string'" ) out, err = capsys.readouterr() out = out.split('\n') @@ -140,10 +194,12 @@ def test_run_with_env(runner, capsys): @all_runners -def test_run_module_with_env(runner, capsys): +def test_run_module_with_env_vars(runner, capsys): runner( - 'run', '--quiet', '-m', 'bonobo.examples.env_vars.get_passed_env', '--env', 'ENV_TEST_NUMBER=123', '--env', - 'ENV_TEST_USER=cwandrews', '--env', "ENV_TEST_STRING='my_test_string'" + 'run', '--quiet', '-m', + 'bonobo.examples.environment.env_vars.get_passed_env', + '--env', 'ENV_TEST_NUMBER=123', '--env', 'ENV_TEST_USER=cwandrews', + '--env', "ENV_TEST_STRING='my_test_string'" ) out, err = capsys.readouterr() out = out.split('\n')