conftest.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import pytest
  2. from os import makedirs, path
  3. from shutil import rmtree
  4. from tempfile import gettempdir
  5. from lakesuperior import env
  6. from lakesuperior.config_parser import parse_config
  7. from lakesuperior.globals import AppGlobals
  8. from lakesuperior.util.generators import random_image
  9. # Override data directory locations.
  10. config = parse_config()
  11. data_dir = path.join(gettempdir(), 'lsup_test', 'data')
  12. config['application']['data_dir'] = data_dir
  13. config['application']['store']['ldp_nr']['location'] = (
  14. path.join(data_dir, 'ldpnr_store'))
  15. config['application']['store']['ldp_rs']['location'] = (
  16. path.join(data_dir, 'ldprs_store'))
  17. env.app_globals = AppGlobals(config)
  18. from lakesuperior.app import create_app
  19. @pytest.fixture(scope='module')
  20. def app():
  21. app = create_app(env.app_globals.config['application'])
  22. yield app
  23. @pytest.fixture(scope='module')
  24. def db(app):
  25. '''
  26. Set up and tear down test triplestore.
  27. '''
  28. makedirs(data_dir, exist_ok=True)
  29. env.app_globals.rdfly.bootstrap()
  30. env.app_globals.nonrdfly.bootstrap()
  31. print('Initialized data store.')
  32. yield env.app_globals.rdfly
  33. # TODO improve this by using tempfile.TemporaryDirectory as a context
  34. # manager.
  35. print('Removing fixture data directory.')
  36. rmtree(data_dir)
  37. @pytest.fixture
  38. def rnd_img():
  39. '''
  40. Generate a square image with random color tiles.
  41. '''
  42. return random_image(8, 256)