mirror of
https://github.com/kennethreitz/env.git
synced 2026-06-05 23:10:16 +00:00
84 lines
2.2 KiB
Python
84 lines
2.2 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
"""Test env module."""
|
|
|
|
import env
|
|
import os
|
|
import mock
|
|
|
|
try:
|
|
from urlparse import urlparse as _urlparse
|
|
except ImportError:
|
|
from urllib.parse import urlparse as _urlparse
|
|
|
|
SEARCH_PREFIX = 'env1'
|
|
MATCH_DATA = {'env1TESTS1': 'aA', 'ENV1tests2': 'bB', 'env1tests3': 'cC'}
|
|
NO_MATCH_DATA = {'env2TESTS4': 'dD', 'ENV2tests5': 'eE', 'env2tests6': 'fF'}
|
|
ALL_DATA = {k: v for d in [MATCH_DATA, NO_MATCH_DATA] for k, v in d.items()}
|
|
|
|
|
|
def test_lower_dict():
|
|
lowereddict = env.lower_dict(MATCH_DATA)
|
|
|
|
assert len(lowereddict) == len(MATCH_DATA)
|
|
|
|
for item in MATCH_DATA:
|
|
assert MATCH_DATA[item] == lowereddict[item.lower()]
|
|
|
|
|
|
def test_lower_dict_non_string_key():
|
|
mixed_key_dict = {0: 'aA', 'env1TEST1': 'bB'}
|
|
lowereddict = env.lower_dict(mixed_key_dict)
|
|
expected_dict = {0: 'aA', 'env1test1': 'bB'}
|
|
|
|
assert len(lowereddict) == len(mixed_key_dict)
|
|
|
|
for item in expected_dict:
|
|
assert expected_dict[item] == lowereddict[item]
|
|
|
|
|
|
def test_urlparse():
|
|
urldata = {'url1': 'http://env1.test', 'url2': 'ftp://env2.test'}
|
|
|
|
parseddata = env.urlparse(urldata)
|
|
|
|
assert len(parseddata) == len(urldata)
|
|
|
|
for item in urldata:
|
|
assert _urlparse(urldata[item]) == parseddata[item]
|
|
|
|
|
|
@mock.patch.dict(os.environ, ALL_DATA, clear=True)
|
|
def test_prefix():
|
|
prefixsearch = env.prefix(SEARCH_PREFIX)
|
|
|
|
assert len(prefixsearch) == len(MATCH_DATA)
|
|
|
|
for item in MATCH_DATA:
|
|
assert MATCH_DATA[item] == prefixsearch[item.lower()[len(SEARCH_PREFIX):]]
|
|
|
|
|
|
@mock.patch.object(
|
|
env,
|
|
'lower_dict',
|
|
return_value={0: 'test', 'env1test1': 'bB'}
|
|
)
|
|
def test_prefix_non_string_key(mock_func):
|
|
prefixsearch = env.prefix(SEARCH_PREFIX)
|
|
|
|
assert len(prefixsearch) == 1
|
|
assert prefixsearch['test1'] == 'bB'
|
|
|
|
|
|
@mock.patch.dict(os.environ, ALL_DATA, clear=True)
|
|
def test_map():
|
|
mapdata = {'a': 'env1tests1', 'b': 'env1tests2', 'c': 'env1tests3'}
|
|
originaldata = {'env1tests1': 'aA', 'env1tests2': 'bB', 'env1tests3': 'cC'}
|
|
|
|
mapsearch = env.map(a='env1tests1', b='env1tests2', c='env1tests3')
|
|
|
|
assert len(mapsearch) == len(mapdata)
|
|
|
|
for item in mapdata:
|
|
assert originaldata[mapdata[item]] == mapsearch[item]
|