base.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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.Model import Model
  9. from pycs.database.LabelProvider import LabelProvider
  10. server = None
  11. class BaseTestCase(unittest.TestCase):
  12. def setUp(self, discovery: bool = True):
  13. global server
  14. app.config["TESTING"] = True
  15. self.projects_dir = app.config["TEST_PROJECTS_DIR"] = "test_projects"
  16. app.config["WTF_CSRF_ENABLED"] = False
  17. app.config["DEBUG"] = False
  18. app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///"
  19. db.create_all()
  20. self.client = app.test_client()
  21. # init the server once
  22. if server is None:
  23. server = WebServer(app, settings, discovery)
  24. elif discovery:
  25. # run discovery modules manually
  26. Model.discover("models/")
  27. LabelProvider.discover("labels/")
  28. def tearDown(self):
  29. if os.path.exists(self.projects_dir):
  30. shutil.rmtree(self.projects_dir)
  31. db.drop_all()