def test_get_path_up(load_mock):
    """
    Test that recursive config loading only reads upwards.
    """
    serverless_helpers.load_envs(__file__)
    prev_call = '/'
    for call in load_mock.call_args_list:
        assert call[0][0].startswith(prev_call.replace('.env', ''))
        prev_call = call[0][0]
def test_more_specific_dirs_override(tmpdir):
    """
    Test that .env files closer to the starting dir override
    environments that are higher in the heirarchy
    """
    base = tmpdir.join('.env')
    base.write('OVERRIDE_ME=dev\nCONST=foo')

    serverless_helpers.load_envs(os.path.join(str(tmpdir), 'file.py'))
    assert os.getenv('OVERRIDE_ME') == 'dev'
    assert os.getenv('CONST') == 'foo'

    override = tmpdir.mkdir('first').join('.env')
    override.write('OVERRIDE_ME=prod')

    serverless_helpers.load_envs(os.path.join(str(tmpdir), 'first', 'file.py'))
    assert os.getenv('CONST') == 'foo'
    assert os.getenv('OVERRIDE_ME') == 'prod'