示例#1
0
 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
示例#2
0
 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())
示例#3
0
 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)
示例#4
0
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.')
示例#5
0
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)
示例#6
0
    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))
示例#7
0
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'])