def setUpClass(cls): """Set up resources to be shared within a test class""" #TODO: refactor into a pytest class fixtures and inject as necessary # update application's db config options so unittests # run against test databases suite = cls.__name__.lower() config = dataactcore.config.CONFIG_DB cls.num = randint(1, 9999) config['error_db_name'] = 'unittest{}_{}_error_data'.format( cls.num, suite) config['job_db_name'] = 'unittest{}_{}_job_tracker'.format( cls.num, suite) config['user_db_name'] = 'unittest{}_{}_user_manager'.format( cls.num, suite) config['validator_db_name'] = 'unittest{}_{}_validator'.format( cls.num, suite) config['staging_db_name'] = 'unittest{}_{}_staging'.format( cls.num, suite) dataactcore.config.CONFIG_DB = config app = createApp() app.config['TESTING'] = True cls.app = TestApp(app) # Allow us to augment default test failure msg w/ more detail cls.longMessage = True # Flag for each route call to launch a new thread cls.useThreads = False # Upload files to S3 (False = skip re-uploading on subsequent runs) cls.uploadFiles = True # Run tests for local broker or not cls.local = CONFIG_BROKER['local'] # This needs to be set to the local directory for error reports if local is True cls.local_file_directory = CONFIG_SERVICES['error_report_path'] # suppress INFO-level logging from Alembic migrations logging.disable(logging.WARN) # drop and re-create test job db/tables setupJobTrackerDB() # drop and re-create test error db/tables setupErrorDB() # drop and re-create test staging db setupStagingDB() # drop and re-create test vaidation db setupValidationDB(True) # reset logging defaults logging.disable(logging.NOTSET) cls.interfaces = InterfaceHolder() cls.jobTracker = cls.interfaces.jobDb cls.stagingDb = cls.interfaces.stagingDb cls.errorInterface = cls.interfaces.errorDb cls.validationDb = cls.interfaces.validationDb cls.userId = 1
def setupDB(): setupValidationDB() setupStagingDB()