def create_app(settings_override=None): """Returns an API application instance.""" # Create and extend a minimal application app = framework.create_app(__name__, __path__, settings_override, security_register_blueprint=False) # Initialize extensions app.extensions['classy_api'] = ClassyAPI(app, catch_all_404s=True) # Register API bp = create_blueprint() register_blueprint(app, bp) # Log the sent email to the console if app.debug: import logging from flask_security.signals import user_registered from flask import url_for _log = logging.getLogger(__name__) user_registered.connect(lambda(user, confirm_token): _log.info( '{0} registered, confirm at {1}'.format(user, url_for('security.confirm_email', token=confirm_token)) )) return app
def registrations(app): records = [] def record(sender, *args, **kwargs): records.append(kwargs) user_registered.connect(record, app) try: yield records finally: user_registered.disconnect(record, app)
def connect_signals(): """Connect OAuthClient signals.""" from invenio_oauthclient.signals import account_info_received from flask_security.signals import user_registered from .utils import ( _create_and_associate_local_user, _create_and_associate_oauth_user, ) account_info_received.connect(_create_and_associate_oauth_user) user_registered.connect(_create_and_associate_local_user)
def capture_registrations(): """Testing utility for capturing registrations.""" registrations = [] def _on(app, **data): registrations.append(data) user_registered.connect(_on) try: yield registrations finally: user_registered.disconnect(_on)
def test_confirm_email(self): e = '*****@*****.**' tokens = [] def on_registered(sender, **kwargs): tokens.append(kwargs['confirm_token']) user_registered.connect(on_registered, self.app) r = self.register(e) self.assertEqual(len(tokens), 1) r = self.client.get('/confirm/' + tokens[0], follow_redirects=True) msg = self.app.config['SECURITY_MSG_EMAIL_CONFIRMED'][0] self.assertIn(msg.encode('utf-8'), r.data)
for c in User.query.filter_by(batch_id=str(id)).order_by('id').all() ] print(choices) return choices # @app.route('/create_trainer') # @app.before_first_request # def crt(): # user_datastore.create_user(leap_id='LS180000090', password=encrypt_password('qwerty'),first_name='Trainer', last_name='Trainer') # db.session.commit() def leap_id_gen(id): num = format(id, "06d") l_id = "LS18" + num return l_id def user_registered_sighandler(sender, **extra): user = extra.get('user') role = user_datastore.find_or_create_role('student') user_datastore.add_role_to_user(user, role) user.leap_id = leap_id_gen(user.id) db.session.commit() user_registered.connect(user_registered_sighandler) if __name__ == '__main__': app.run()