def get_data_importer_setup_auth(self): httpretty.register_uri(httpretty.GET, "http://na.edu/api/session", body='{"email": "*****@*****.**"}', status=200) data_importer = ImportService(app, db) data_importer.token = "my_token" return data_importer
def test_login(self): # Just wanted a simple exmple to show how to use HTTP Pretty httpretty.register_uri(httpretty.POST, "http://na.edu/api/login_password", body='{"token": "my_token"}') data_importer = ImportService(app, db) data_importer.login() self.assertIsNotNone(httpretty.last_request())
def load_database(self, all_data): rv = self.app.get('/api/export', headers=self.logged_in_headers()) response = json.loads(rv.get_data(as_text=True)) exports = ExportInfoSchema(many=True).load(response).data importer = ImportService(app, db) log = importer.log_for_export(exports, datetime.datetime.utcnow()) for export in exports: export.json_data = all_data[export.class_name] importer.load_data(export, log)
def run_full_export(): """Remove all data and recreate it from the example data files""" if app.config["MIRRORING"]: from app.import_service import ImportService click.echo('Exporting all data.') import_service = ImportService(app, db) import_service.run_full_backup() else: click.echo('This system is not configured to run exports. Ingoring.')
def schedule_tasks(): from app.export_service import ExportService from app.import_service import ImportService scheduler = BackgroundScheduler(daemon=True) scheduler.start() if app.config["MIRRORING"]: import_service = ImportService(app, db) scheduler.add_job(import_service.run_backup, 'interval', minutes=import_service.import_interval_minutes) scheduler.add_job(import_service.run_full_backup, 'interval', days=1) else: scheduler.add_job(ExportService.send_alert_if_exports_not_running, 'interval', minutes=app.config['EXPORT_CHECK_INTERNAL_MINUTES']) scheduler.add_job(EmailPromptService( app, db, EmailLog, Study, User).send_confirm_prompting_emails, 'interval', days=1) scheduler.add_job(EmailPromptService( app, db, EmailLog, Study, User).send_complete_registration_prompting_emails, 'interval', days=1) scheduler.add_job( EmailPromptService(app, db, EmailLog, Study, User).send_dependent_profile_prompting_emails, 'interval', days=1)
def test_headers(self): # Assure that a failed request to get_headers will cause a re-login attempt. httpretty.register_uri(httpretty.GET, "http://na.edu/api/session", body='{"error": "not logged in"}', status=400) httpretty.register_uri( httpretty.POST, "http://na.edu/api/login_password", body='{"token": "my_token"}', ) app.config["MASTER_URL"] = "http://na.edu" app.config["MASTER_EMAIL"] = "*****@*****.**" app.config["MASTER_PASS"] = "******" data_importer = ImportService(app, db) headers = data_importer.get_headers() self.assertIsNotNone(httpretty.last_request()) self.assertIsNotNone(headers) self.assertEqual("Bearer my_token", headers['Authorization']) self.assertEqual(2, len(httpretty.httpretty.latest_requests))
def schedule_tasks(): from app.export_service import ExportService from app.import_service import ImportService scheduler = BackgroundScheduler(daemon=True) scheduler.start() if app.config["MIRRORING"]: import_service = ImportService(app, db) scheduler.add_job(import_service.run_backup, 'interval', minutes=import_service.import_interval_minutes) scheduler.add_job(import_service.run_full_backup, 'interval', days=1) else: scheduler.add_job(ExportService.send_alert_if_exports_not_running, 'interval', minutes=app.config['EXPORT_CHECK_INTERNAL_MINUTES'])