Beispiel #1
0
def test_full():
    f = tempfile.NamedTemporaryFile('w')
    TEST = r"""
BASIC=basic basic
export EXPORT=foo
EMPTY=
INNER_QUOTES=this 'is' a test
INNER_QUOTES2=this "is" a test
TRIM_WHITESPACE= foo
KEEP_WHITESPACE="  foo  "
MULTILINE_DQ="multi\nline"
MULTILINE_SQ='multi\nline'
MULTILINE_NQ=multi\nline
# some comment
should be ignored
"""

    with open(f.name, 'w') as fh:
        fh.write(TEST)

    env = core.read_dotenv(f.name)
    assert env['BASIC'] == 'basic basic'
    assert env['EXPORT'] == 'foo'
    assert env['EMPTY'] == ''
    assert env['INNER_QUOTES'] == "this 'is' a test"
    assert env['INNER_QUOTES2'] == 'this "is" a test'
    assert env['TRIM_WHITESPACE'] == "foo"
    assert env['KEEP_WHITESPACE'] == "  foo  "
    assert env['MULTILINE_DQ'] == "multi\nline"
    assert env['MULTILINE_SQ'] == "multi\\nline"
    assert env['MULTILINE_NQ'] == "multi\\nline"

    assert len(env) == 10
Beispiel #2
0
def test_quotes(input_, expected):
    f = tempfile.NamedTemporaryFile('w')

    with open(f.name, 'w') as fh:
        fh.write(input_)

    env = core.read_dotenv(f.name)
    assert env['FOO'] == expected
Beispiel #3
0
def test_inner_quotes():
    """Inner quotes are mainained."""
    f = tempfile.NamedTemporaryFile('w')
    TEST = "FOO=this 'is' a test"

    with open(f.name, 'w') as fh:
        fh.write(TEST)

    env = core.read_dotenv(f.name)
    assert env['FOO'] == "this 'is' a test"

    TEST = 'FOO=this "is" a test'

    with open(f.name, 'w') as fh:
        fh.write(TEST)

    env = core.read_dotenv(f.name)
    assert env['FOO'] == 'this "is" a test'
Beispiel #4
0
def test_multiline():
    """Quoted values can contain newlines."""
    TEST = r'FOO="This is\nbar"'

    with tempfile.NamedTemporaryFile('w', delete=False) as f:
        f.write(TEST)

    env = core.read_dotenv(f.name)
    assert env['FOO'] == 'This is\nbar'
Beispiel #5
0
def test_keep_whitespaces():
    """Whitespaces are mainteined from quoted values."""
    TEST = "FOO='  test  '"

    with tempfile.NamedTemporaryFile('w', delete=False) as f:
        f.write(TEST)

    env = core.read_dotenv(f.name)
    assert env['FOO'] == "  test  "
Beispiel #6
0
def test_trim_whitespaces():
    """Whitespaces are stripped from unquoted values."""
    TEST = "FOO=  test  "

    with tempfile.NamedTemporaryFile('w', delete=False) as f:
        f.write(TEST)

    env = core.read_dotenv(f.name)
    assert env['FOO'] == "test"
Beispiel #7
0
def test_empty():
    """Empty values become empty strings."""
    TEST = "FOO="

    with tempfile.NamedTemporaryFile('w', delete=False) as f:
        f.write(TEST)

    env = core.read_dotenv(f.name)
    assert env['FOO'] == ''
Beispiel #8
0
def test_basic():
    """Basic unquoted strings"""
    TEST = "FOO=BAR"

    with tempfile.NamedTemporaryFile('w', delete=False) as f:
        f.write(TEST)

    env = core.read_dotenv(f.name)
    assert env['FOO'] == 'BAR'
Beispiel #9
0
def test_export():
    """Exports are allowed."""
    TEST = "export FOO=BAR"

    with tempfile.NamedTemporaryFile('w', delete=False) as f:
        f.write(TEST)

    env = core.read_dotenv(f.name)
    assert env['FOO'] == 'BAR'
Beispiel #10
0
def test_inner_quotes():
    """Inner quotes are mainained."""
    TEST = "\n".join(["FOO1=this 'is' a test", 'FOO2=this "is" a test'])

    with tempfile.NamedTemporaryFile('w', delete=False) as f:
        f.write(TEST)

    env = core.read_dotenv(f.name)
    assert env['FOO1'] == "this 'is' a test"
    assert env['FOO2'] == 'this "is" a test'
Beispiel #11
0
def test_multiline():
    """Quoted values can contain newlines."""
    f = tempfile.NamedTemporaryFile('w')
    TEST = r'FOO="This is\nbar"'

    with open(f.name, 'w') as fh:
        fh.write(TEST)

    env = core.read_dotenv(f.name)
    assert env['FOO'] == 'This is\nbar'
Beispiel #12
0
def test_keep_whitespaces():
    """Whitespaces are mainteined from quoted values."""
    f = tempfile.NamedTemporaryFile('w')
    TEST = "FOO='  test  '"

    with open(f.name, 'w') as fh:
        fh.write(TEST)

    env = core.read_dotenv(f.name)
    assert env['FOO'] == "  test  "
Beispiel #13
0
def test_trim_whitespaces():
    """Whitespaces are stripped from unquoted values."""
    f = tempfile.NamedTemporaryFile('w')
    TEST = "FOO=  test  "

    with open(f.name, 'w') as fh:
        fh.write(TEST)

    env = core.read_dotenv(f.name)
    assert env['FOO'] == "test"
Beispiel #14
0
def test_empty():
    """Empty values become empty strings."""
    f = tempfile.NamedTemporaryFile('w')
    TEST = "FOO="

    with open(f.name, 'w') as fh:
        fh.write(TEST)

    env = core.read_dotenv(f.name)
    assert env['FOO'] == ''
Beispiel #15
0
def test_basic():
    """Basic unquoted strings"""
    f = tempfile.NamedTemporaryFile('w')
    TEST = "FOO=BAR"

    with open(f.name, 'w') as fh:
        fh.write(TEST)

    env = core.read_dotenv(f.name)
    assert env['FOO'] == 'BAR'
Beispiel #16
0
def test_export():
    """Exports are allowed."""
    f = tempfile.NamedTemporaryFile('w')

    TEST = "export FOO=BAR"

    with open(f.name, 'w') as fh:
        fh.write(TEST)

    env = core.read_dotenv(f.name)
    assert env['FOO'] == 'BAR'
Beispiel #17
0
def test_emtpy_lines():
    """Empty lines are skipped."""
    TEST = """
    FOO=BAR

    BAR=BAZ
    """

    with tempfile.NamedTemporaryFile('w', delete=False) as f:
        f.write(TEST)

    env = core.read_dotenv(f.name)
    assert len(env) == 2
    assert env['FOO'] == 'BAR'
    assert env['BAR'] == 'BAZ'
Beispiel #18
0
def test_comments():
    """Lines starting with # are ignored."""
    TEST = """
    FOO=BAR
    # comment
    BAR=BAZ
    """

    with tempfile.NamedTemporaryFile('w', delete=False) as f:
        f.write(TEST)

    env = core.read_dotenv(f.name)
    assert len(env) == 2
    assert env['FOO'] == 'BAR'
    assert env['BAR'] == 'BAZ'
Beispiel #19
0
def test_emtpy_lines():
    """Empty lines are skipped."""
    f = tempfile.NamedTemporaryFile('w')

    TEST = """
    FOO=BAR

    BAR=BAZ
    """

    with open(f.name, 'w') as fh:
        fh.write(TEST)

    env = core.read_dotenv(f.name)
    assert len(env) == 2
    assert env['FOO'] == 'BAR'
    assert env['BAR'] == 'BAZ'
Beispiel #20
0
def test_comments():
    """Lines starting with # are ignored."""
    f = tempfile.NamedTemporaryFile('w')

    TEST = """
    FOO=BAR
    # comment
    BAR=BAZ
    """

    with open(f.name, 'w') as fh:
        fh.write(TEST)

    env = core.read_dotenv(f.name)
    assert len(env) == 2
    assert env['FOO'] == 'BAR'
    assert env['BAR'] == 'BAZ'
Beispiel #21
0
def test_quotes(input_, expected):
    with tempfile.NamedTemporaryFile('w', delete=False) as f:
        f.write(input_)

    env = core.read_dotenv(f.name)
    assert env['FOO'] == expected