base.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import os
  2. import shutil
  3. import unittest
  4. from pycs import app
  5. from pycs import db
  6. from pycs import settings
  7. from pycs.frontend.WebServer import WebServer
  8. from pycs.database.Database import Database
  9. server = None
  10. class BaseTestCase(unittest.TestCase):
  11. def setUp(self, discovery: bool = True):
  12. global server
  13. app.config["TESTING"] = True
  14. self.projects_dir = app.config["TEST_PROJECTS_DIR"] = "test_projects"
  15. app.config["WTF_CSRF_ENABLED"] = False
  16. app.config["DEBUG"] = False
  17. app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///"
  18. db.create_all()
  19. self.client = app.test_client()
  20. if server is None:
  21. server = WebServer(app, settings)
  22. server.start_runner()
  23. # create database
  24. self.database = Database(discovery=discovery)
  25. def tearDown(self):
  26. global server
  27. server.stop_runner()
  28. if os.path.exists(self.projects_dir):
  29. shutil.rmtree(self.projects_dir)
  30. db.drop_all()
  31. def wait_for_coroutines(self):
  32. server.wait_for_runner()