1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- import os
- import shutil
- import unittest
- from pycs import app
- from pycs import db
- from pycs import settings
- from pycs.frontend.WebServer import WebServer
- from pycs.database.Model import Model
- from pycs.database.LabelProvider import LabelProvider
- server = None
- class BaseTestCase(unittest.TestCase):
- def setUp(self, discovery: bool = True):
- global server
- app.config["TESTING"] = True
- self.projects_dir = app.config["TEST_PROJECTS_DIR"] = "test_projects"
- app.config["WTF_CSRF_ENABLED"] = False
- app.config["DEBUG"] = False
- app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///"
- db.create_all()
- self.client = app.test_client()
- if server is None:
- server = WebServer(app, settings)
- server.start_runner()
- # create database
- if discovery:
- # run discovery modules
- Model.discover("models/")
- LabelProvider.discover("labels/")
- # self.database = Database(discovery=discovery)
- def tearDown(self):
- global server
- server.stop_runner()
- if os.path.exists(self.projects_dir):
- shutil.rmtree(self.projects_dir)
- db.drop_all()
- def wait_for_coroutines(self):
- server.wait_for_runner()
|