Create and use a temporary folder as the application directory when running tests #323
Fixes #322
This commit is contained in:
parent
12c17c9cac
commit
50c6e3597f
|
@ -26,6 +26,9 @@ def test_debug():
|
||||||
assert constants.debug == constants.debug, constants.debug
|
assert constants.debug == constants.debug, constants.debug
|
||||||
|
|
||||||
def test_application_directory_default():
|
def test_application_directory_default():
|
||||||
|
if('ELODIE_APPLICATION_DIRECTORY' in os.environ):
|
||||||
|
del os.environ['ELODIE_APPLICATION_DIRECTORY']
|
||||||
|
reload(constants)
|
||||||
expected_path = '{}/.elodie'.format(os.path.expanduser('~'))
|
expected_path = '{}/.elodie'.format(os.path.expanduser('~'))
|
||||||
assert constants.application_directory == expected_path, constants.application_directory
|
assert constants.application_directory == expected_path, constants.application_directory
|
||||||
|
|
||||||
|
@ -35,7 +38,8 @@ def test_application_directory_override_invalid():
|
||||||
directory_to_check = constants.application_directory
|
directory_to_check = constants.application_directory
|
||||||
|
|
||||||
# reset
|
# reset
|
||||||
os.environ['ELODIE_APPLICATION_DIRECTORY'] = ''
|
if('ELODIE_APPLICATION_DIRECTORY' in os.environ):
|
||||||
|
del os.environ['ELODIE_APPLICATION_DIRECTORY']
|
||||||
reload(constants)
|
reload(constants)
|
||||||
|
|
||||||
expected_path = '{}/.elodie'.format(os.path.expanduser('~'))
|
expected_path = '{}/.elodie'.format(os.path.expanduser('~'))
|
||||||
|
@ -49,7 +53,8 @@ def test_application_directory_override_valid():
|
||||||
hash_db_to_check = constants.hash_db
|
hash_db_to_check = constants.hash_db
|
||||||
|
|
||||||
# reset
|
# reset
|
||||||
os.environ['ELODIE_APPLICATION_DIRECTORY'] = ''
|
if('ELODIE_APPLICATION_DIRECTORY' in os.environ):
|
||||||
|
del os.environ['ELODIE_APPLICATION_DIRECTORY']
|
||||||
reload(constants)
|
reload(constants)
|
||||||
|
|
||||||
assert directory_to_check == cwd, constants.application_directory
|
assert directory_to_check == cwd, constants.application_directory
|
||||||
|
@ -78,12 +83,16 @@ def test_mapquest_base_url_override():
|
||||||
url_to_check = constants.mapquest_base_url
|
url_to_check = constants.mapquest_base_url
|
||||||
|
|
||||||
# reset
|
# reset
|
||||||
os.environ['ELODIE_MAPQUEST_BASE_URL'] = ''
|
if('ELODIE_MAPQUEST_BASE_URL' in os.environ):
|
||||||
|
del os.environ['ELODIE_MAPQUEST_BASE_URL']
|
||||||
reload(constants)
|
reload(constants)
|
||||||
|
|
||||||
assert url_to_check == 'foobar', constants.mapquest_base_url
|
assert url_to_check == 'foobar', constants.mapquest_base_url
|
||||||
|
|
||||||
def test_mapquest_Key():
|
def test_mapquest_key_default():
|
||||||
|
if('ELODIE_MAPQUEST_KEY' in os.environ):
|
||||||
|
os.environ['ELODIE_MAPQUEST_KEY'] = None
|
||||||
|
reload(constants)
|
||||||
assert constants.mapquest_key == None, constants.mapquest_key
|
assert constants.mapquest_key == None, constants.mapquest_key
|
||||||
|
|
||||||
def test_mapquest_key_override():
|
def test_mapquest_key_override():
|
||||||
|
@ -92,10 +101,11 @@ def test_mapquest_key_override():
|
||||||
key_to_check = constants.mapquest_key
|
key_to_check = constants.mapquest_key
|
||||||
|
|
||||||
# reset
|
# reset
|
||||||
os.environ['ELODIE_MAPQUEST_KEY'] = ''
|
if('ELODIE_MAPQUEST_KEY' in os.environ):
|
||||||
|
del os.environ['ELODIE_MAPQUEST_KEY']
|
||||||
reload(constants)
|
reload(constants)
|
||||||
|
|
||||||
assert key_to_check == 'foobar', constants.mapquest_key
|
assert key_to_check == 'foobar', key_to_check
|
||||||
|
|
||||||
def test_accepted_language():
|
def test_accepted_language():
|
||||||
assert constants.accepted_language == 'en', constants.accepted_language
|
assert constants.accepted_language == 'en', constants.accepted_language
|
||||||
|
|
|
@ -150,29 +150,12 @@ def isclose(a, b, rel_tol = 1e-8):
|
||||||
|
|
||||||
def reset_dbs():
|
def reset_dbs():
|
||||||
""" Back up hash_db and location_db """
|
""" Back up hash_db and location_db """
|
||||||
hash_db = '{}-test'.format(constants.hash_db)
|
# This is no longer needed. See gh-322
|
||||||
if not os.path.isfile(hash_db):
|
# https://github.com/jmathai/elodie/issues/322
|
||||||
hash_db = constants.hash_db
|
pass
|
||||||
if os.path.isfile(hash_db):
|
|
||||||
_rename(hash_db, '{}-test'.format(hash_db))
|
|
||||||
#else restore_dbs wasn't called by a previous test, keep the
|
|
||||||
#existing hash_db backup
|
|
||||||
|
|
||||||
|
|
||||||
location_db = '{}-test'.format(constants.location_db)
|
|
||||||
if not os.path.isfile(location_db):
|
|
||||||
location_db = constants.location_db
|
|
||||||
if os.path.isfile(location_db):
|
|
||||||
_rename(location_db, '{}-test'.format(location_db))
|
|
||||||
#else restore_dbs wasn't called by a previous test, keep the
|
|
||||||
#existing location_db backup
|
|
||||||
|
|
||||||
def restore_dbs():
|
def restore_dbs():
|
||||||
""" Restore back ups of hash_db and location_db """
|
""" Restore back ups of hash_db and location_db """
|
||||||
hash_db = '{}-test'.format(constants.hash_db)
|
# This is no longer needed. See gh-322
|
||||||
if os.path.isfile(hash_db):
|
# https://github.com/jmathai/elodie/issues/322
|
||||||
_rename(hash_db, hash_db.replace('-test', ''))
|
pass
|
||||||
|
|
||||||
location_db = '{}-test'.format(constants.location_db)
|
|
||||||
if os.path.isfile(location_db):
|
|
||||||
_rename(location_db, location_db.replace('-test', ''))
|
|
||||||
|
|
|
@ -2,10 +2,35 @@
|
||||||
|
|
||||||
import nose
|
import nose
|
||||||
import os
|
import os
|
||||||
|
import shutil
|
||||||
import sys
|
import sys
|
||||||
|
import tempfile
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
# test_directory is what we pass nose.run for where to find tests
|
||||||
test_directory = os.path.dirname(os.path.abspath(__file__))
|
test_directory = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
|
||||||
|
# create a temporary directory to use for the application directory while running tests
|
||||||
|
temporary_application_directory = tempfile.mkdtemp('-elodie-tests')
|
||||||
|
os.environ['ELODIE_APPLICATION_DIRECTORY'] = temporary_application_directory
|
||||||
|
|
||||||
|
# copy config.ini-sample over to the test application directory
|
||||||
|
temporary_config_file_sample = '{}/config.ini-sample'.format(os.path.dirname(os.path.dirname(test_directory)))
|
||||||
|
temporary_config_file = '{}/config.ini'.format(temporary_application_directory)
|
||||||
|
shutil.copy2(
|
||||||
|
temporary_config_file_sample,
|
||||||
|
temporary_config_file,
|
||||||
|
)
|
||||||
|
|
||||||
|
# read the sample config file and store contents to be replaced
|
||||||
|
with open(temporary_config_file_sample, 'r') as f:
|
||||||
|
config_contents = f.read()
|
||||||
|
|
||||||
|
# set the mapquest key in the temporary config file and write it to the temporary application directory
|
||||||
|
config_contents = config_contents.replace('your-api-key-goes-here', 'x8wQLqGhW7qK3sFpjYtVTogVtoMK0S8s')
|
||||||
|
with open(temporary_config_file, 'w+') as f:
|
||||||
|
f.write(config_contents)
|
||||||
|
|
||||||
test_argv = sys.argv
|
test_argv = sys.argv
|
||||||
test_argv.append('--verbosity=2')
|
test_argv.append('--verbosity=2')
|
||||||
result = nose.run(argv=test_argv)
|
result = nose.run(argv=test_argv)
|
||||||
|
|
Loading…
Reference in New Issue