Added more tests and moved all env and env file testing to classes (it might make more sense to just move them to separate files?).
This commit is contained in:
@ -78,21 +78,17 @@ def read(filename, module, install=False, quiet=False, verbose=False, default_en
|
|||||||
raise RuntimeError('UNEXPECTED: argparse should not allow this.')
|
raise RuntimeError('UNEXPECTED: argparse should not allow this.')
|
||||||
|
|
||||||
env_dir = Path(filename).parent or Path(module).parent
|
env_dir = Path(filename).parent or Path(module).parent
|
||||||
|
|
||||||
if default_env_file:
|
if default_env_file:
|
||||||
for f in default_env_file:
|
for f in default_env_file:
|
||||||
env_file_path = env_dir.joinpath(f)
|
env_file_path = env_dir.joinpath(f)
|
||||||
load_dotenv(env_file_path)
|
load_dotenv(env_file_path)
|
||||||
|
|
||||||
if default_env:
|
if default_env:
|
||||||
for e in default_env:
|
for e in default_env:
|
||||||
set_env_var(e)
|
set_env_var(e)
|
||||||
|
|
||||||
if env_file:
|
if env_file:
|
||||||
for f in env_file:
|
for f in env_file:
|
||||||
env_file_path = env_dir.joinpath(f)
|
env_file_path = env_dir.joinpath(f)
|
||||||
load_dotenv(env_file_path, override=True)
|
load_dotenv(env_file_path, override=True)
|
||||||
|
|
||||||
if env:
|
if env:
|
||||||
for e in env:
|
for e in env:
|
||||||
set_env_var(e, override=True)
|
set_env_var(e, override=True)
|
||||||
|
|||||||
@ -7,7 +7,8 @@ def extract():
|
|||||||
env_test_user = os.getenv('ENV_TEST_USER', 'user')
|
env_test_user = os.getenv('ENV_TEST_USER', 'user')
|
||||||
env_test_number = os.getenv('ENV_TEST_NUMBER', 'number')
|
env_test_number = os.getenv('ENV_TEST_NUMBER', 'number')
|
||||||
env_test_string = os.getenv('ENV_TEST_STRING', 'string')
|
env_test_string = os.getenv('ENV_TEST_STRING', 'string')
|
||||||
return env_test_user, env_test_number, env_test_string
|
env_user = os.getenv('USER')
|
||||||
|
return env_test_user, env_test_number, env_test_string, env_user
|
||||||
|
|
||||||
|
|
||||||
def load(s: str):
|
def load(s: str):
|
||||||
|
|||||||
@ -200,7 +200,8 @@ class TestEnvFile(object):
|
|||||||
|
|
||||||
|
|
||||||
@all_runners
|
@all_runners
|
||||||
def test_run_file_with_default_env_file_and_env_file(runner, capsys):
|
class TestEnvFileCombinations(object):
|
||||||
|
def test_run_file_with_default_env_file_and_env_file(self, runner, capsys):
|
||||||
runner(
|
runner(
|
||||||
'run', '--quiet',
|
'run', '--quiet',
|
||||||
get_examples_path('environment/env_files/get_passed_env_file.py'),
|
get_examples_path('environment/env_files/get_passed_env_file.py'),
|
||||||
@ -212,14 +213,13 @@ def test_run_file_with_default_env_file_and_env_file(runner, capsys):
|
|||||||
assert out[1] == 'not_sweet_password'
|
assert out[1] == 'not_sweet_password'
|
||||||
assert out[2] == 'abril'
|
assert out[2] == 'abril'
|
||||||
|
|
||||||
|
def test_run_file_with_default_env_file_and_env_file_and_env_vars(self, runner, capsys):
|
||||||
@all_runners
|
|
||||||
def test_run_file_with_default_env_file_and_env_file_and_env_vars(runner, capsys):
|
|
||||||
runner(
|
runner(
|
||||||
'run', '--quiet',
|
'run', '--quiet',
|
||||||
get_examples_path('environment/env_files/get_passed_env_file.py'),
|
get_examples_path('environment/env_files/get_passed_env_file.py'),
|
||||||
'--default-env-file', '.env_one', '--env-file', '.env_two',
|
'--default-env-file', '.env_one', '--env-file', '.env_two',
|
||||||
'--env', 'TEST_USER_PASSWORD=SWEETpassWORD', '--env', 'MY_SECRET=444',
|
'--env', 'TEST_USER_PASSWORD=SWEETpassWORD', '--env',
|
||||||
|
'MY_SECRET=444',
|
||||||
)
|
)
|
||||||
out, err = capsys.readouterr()
|
out, err = capsys.readouterr()
|
||||||
out = out.split('\n')
|
out = out.split('\n')
|
||||||
@ -228,6 +228,61 @@ def test_run_file_with_default_env_file_and_env_file_and_env_vars(runner, capsys
|
|||||||
assert out[2] == 'abril'
|
assert out[2] == 'abril'
|
||||||
|
|
||||||
|
|
||||||
|
@all_runners
|
||||||
|
class TestDefaultEnvVars(object):
|
||||||
|
def test_run_file_with_default_env_var(self, runner, capsys):
|
||||||
|
runner(
|
||||||
|
'run', '--quiet',
|
||||||
|
get_examples_path('environment/env_vars/get_passed_env.py'),
|
||||||
|
'--default-env', 'USER=clowncity'
|
||||||
|
)
|
||||||
|
out, err = capsys.readouterr()
|
||||||
|
out = out.split('\n')
|
||||||
|
assert out[0] == 'user'
|
||||||
|
assert out[1] == 'number'
|
||||||
|
assert out[2] == 'string'
|
||||||
|
assert out[3] != 'clowncity'
|
||||||
|
|
||||||
|
def test_run_file_with_default_env_vars(self, runner, capsys):
|
||||||
|
runner(
|
||||||
|
'run', '--quiet',
|
||||||
|
get_examples_path('environment/env_vars/get_passed_env.py'),
|
||||||
|
'--env', 'ENV_TEST_NUMBER=123', '--env', 'ENV_TEST_USER=cwandrews',
|
||||||
|
'--default-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'
|
||||||
|
|
||||||
|
def test_run_module_with_default_env_var(self, runner, capsys):
|
||||||
|
runner(
|
||||||
|
'run', '--quiet', '-m',
|
||||||
|
'bonobo.examples.environment.env_vars.get_passed_env',
|
||||||
|
'--env', 'ENV_TEST_NUMBER=123',
|
||||||
|
'--default-env', 'ENV_TEST_STRING=string'
|
||||||
|
)
|
||||||
|
out, err = capsys.readouterr()
|
||||||
|
out = out.split('\n')
|
||||||
|
assert out[0] == 'cwandrews'
|
||||||
|
assert out[1] == '123'
|
||||||
|
assert out[2] != 'string'
|
||||||
|
|
||||||
|
def test_run_module_with_default_env_vars(self, runner, capsys):
|
||||||
|
runner(
|
||||||
|
'run', '--quiet', '-m',
|
||||||
|
'bonobo.examples.environment.env_vars.get_passed_env',
|
||||||
|
'--env', 'ENV_TEST_NUMBER=123', '--env', 'ENV_TEST_USER=cwandrews',
|
||||||
|
'--default-env', "ENV_TEST_STRING='string'"
|
||||||
|
)
|
||||||
|
out, err = capsys.readouterr()
|
||||||
|
out = out.split('\n')
|
||||||
|
assert out[0] == 'cwandrews'
|
||||||
|
assert out[1] == '123'
|
||||||
|
assert out[2] != 'string'
|
||||||
|
|
||||||
|
|
||||||
@all_runners
|
@all_runners
|
||||||
class TestEnvVars(object):
|
class TestEnvVars(object):
|
||||||
def test_run_file_with_env_var(self, runner, capsys):
|
def test_run_file_with_env_var(self, runner, capsys):
|
||||||
@ -240,7 +295,7 @@ class TestEnvVars(object):
|
|||||||
out = out.split('\n')
|
out = out.split('\n')
|
||||||
assert out[0] != 'test_user'
|
assert out[0] != 'test_user'
|
||||||
assert out[1] == '123'
|
assert out[1] == '123'
|
||||||
assert out[2] == 'string'
|
assert out[2] == 'my_test_string'
|
||||||
|
|
||||||
def test_run_file_with_env_vars(self, runner, capsys):
|
def test_run_file_with_env_vars(self, runner, capsys):
|
||||||
runner(
|
runner(
|
||||||
|
|||||||
Reference in New Issue
Block a user