def test_02_app_local_store(self): store1 = get_app_local_store() store1["hello"] = "world" g.test_flag = True # We get the same store even if we push another app context for the same app with self.app.app_context(): store2 = get_app_local_store() self.assertEqual(store1, store2) self.assertEqual(store2["hello"], "world") self.assertNotIn("test_flag", g) g.test_flag = False self.assertEquals(g.test_flag, True) g.pop("test_flag") # We get a different store if we push a context for another app new_app = create_app("testing", "") with new_app.app_context(): store3 = get_app_local_store() self.assertNotIn("hello", store3) self.assertNotEqual(store3, store1) store3["hello"] = "no!" store4 = get_app_local_store() store3["something"] = "else" self.assertEqual(store4["hello"], "no!") self.assertEqual(store4["something"], "else") self.assertEqual(store1, store2) self.assertEqual(store2["hello"], "world")
def close_db(e=None): """If this request connected to the database, close the connection. """ db = g.pop('db', None) if db is not None: db.close()
def track_time_changes(auto_extend=False, user=None): """Track time changes of event objects. This provides a list of changes while the context manager was active and also triggers `times_changed` signals. If the code running inside the ``with`` block of this context manager raises an exception, no signals will be triggered. :param auto_extend: Whether entry parents will get their boundaries automatically extended or not. Passing ``'start'`` will extend only start datetime, ``'end'`` to extend only end datetime. :param user: The `User` that will trigger time changes. """ if auto_extend: assert user is not None if 'old_times' in g: raise RuntimeError('time change tracking may not be nested') g.old_times = defaultdict(dict) changes = defaultdict(dict) try: yield changes except: del g.old_times raise else: if auto_extend: by_start = auto_extend in (True, 'start') by_end = auto_extend in (True, 'end') initial_changes = set(g.old_times) # g.old_times changes during iteration for obj in list(g.old_times): if not isinstance(obj, Event): obj.extend_parent(by_start=by_start, by_end=by_end) cascade_changes = set(g.old_times) - initial_changes for obj in cascade_changes: if isinstance(obj, Event): if not obj.can_manage(user): # TODO: raise Forbidden exceptions after adding protection check in the UI raise UserValueError(_("Your action requires modification of event boundaries, but you are " "not authorized to manage the event.")) elif not obj.object.can_manage(user): # TODO: raise Forbidden exceptions after adding protection check in the UI raise UserValueError(_("Your action requires modification of session block boundaries, but you are " "not authorized to manage the session block.")) old_times = g.pop('old_times') for obj, info in old_times.iteritems(): if isinstance(obj, TimetableEntry): obj = obj.object if obj.start_dt != info['start_dt']: changes[obj]['start_dt'] = (info['start_dt'], obj.start_dt) if obj.duration != info['duration']: changes[obj]['duration'] = (info['duration'], obj.duration) if obj.end_dt != info['end_dt']: changes[obj]['end_dt'] = (info['end_dt'], obj.end_dt) for obj, obj_changes in changes.iteritems(): entry = None if isinstance(obj, Event) else obj.timetable_entry signals.event.times_changed.send(type(obj), entry=entry, obj=obj, changes=obj_changes)
def close_db(e=None): db = g.pop('db', None) if db is not None: db.close()
def close_db(e=None): print("close server") db = g.pop('db', None) if db is not None: db.close()
def close_db(e=None): click.echo("Runs: close_db") cnx = g.pop('db', None) if cnx is not None: cnx.close()
def unauthentication(response): if hasattr(g, "session"): g.pop("session") return response
def close_connection(e = None): conn = g.pop('conn', None) if conn is not None: conn.close()
def close_db(what): db = g.pop('db', None) if db is not None: db.tearDown()
def logout(self): self._clean_session() g.pop('user')
def close_db(e=None): db = g.pop('db', None) if db is not None: db.close() # close the connection
def close_db(e=None): # close_db checks if a connection was created by checking if g.db was set. If the connection exists, it is closed. Further down you will tell your application about the close_db function in the application factory so that it is called after each request db = g.pop('db', None) if db is not None: db.close()
def close_db(): db = g.pop('db', None) if db is not None: if db.open: db.close()
def _clear_cache(): if has_request_context(): g.pop('global_settings_cache', None)
def teardown_db(error): if hasattr(g, 'db_conn'): print('ON VA FERMER') g.db_conn.close() g.pop('db_conn', None)
def teardown_db(e): #Stolen directly from Flask's docs db = g.pop('db', None) if db is not None: db.close()
def teardown_db(exception): db = g.pop('db', None) if db is not None: app.logger.info('Closing connection...') db.close()
def close_db(* args): db = g.pop('db', None) if db is not None: db.close()
def close_dbConn(): if 'dbConn' in g: g.dbComm.close() g.pop('dbConn')
def close_db(e=None): db = g.pop("db", None) if db is not None: # Call destructor to run cleanup del db
def close_db(e=None): """If this request connected to the database, close the connection. """ db = g.pop("db", None)
def close_db(): db_client = g.pop('db_client', None) if db_client is not None: db_client.close()
def close_oidc(app): """ Release okta connection """ oidc = g.pop('oidc', None) if oidc is not None: oidc.logout()
def close_db(e=None): db = g.pop(current_app.config['DATABASE'], None) if db is not None: db.close()
def close_db(e=None): db = g.pop("db", None) if db is not None: db.close()
def close_db(_): dbp = g.pop("db", None) if dbp is not None: dbp.close()
def close_db(e = None): db_session.remove() db = g.pop('db', None) if db is not None: db.close()
def close_db(e=None): if e is not None: print(f'Closing db: {e}') db = g.pop('db', None) if db is not None: db.close()
def close_lijing_db(e=None): db = g.pop('lijing_db', None) if db is not None: db.close()
def track_time_changes(auto_extend=False, user=None): """Track time changes of event objects. This provides a list of changes while the context manager was active and also triggers `times_changed` signals. If the code running inside the ``with`` block of this context manager raises an exception, no signals will be triggered. :param auto_extend: Whether entry parents will get their boundaries automatically extended or not. Passing ``'start'`` will extend only start datetime, ``'end'`` to extend only end datetime. :param user: The `User` that will trigger time changes. """ if auto_extend: assert user is not None if 'old_times' in g: raise RuntimeError('time change tracking may not be nested') g.old_times = defaultdict(dict) changes = defaultdict(dict) try: yield changes except Exception: del g.old_times raise else: if auto_extend: by_start = auto_extend in (True, 'start') by_end = auto_extend in (True, 'end') initial_changes = set(g.old_times) # g.old_times changes during iteration for obj in list(g.old_times): if not isinstance(obj, Event): obj.extend_parent(by_start=by_start, by_end=by_end) cascade_changes = set(g.old_times) - initial_changes for obj in cascade_changes: if isinstance(obj, Event): if not obj.can_manage(user): # TODO: raise Forbidden exceptions after adding protection check in the UI raise UserValueError( _("Your action requires modification of event boundaries, but you are " "not authorized to manage the event.")) elif not obj.object.can_manage(user): # TODO: raise Forbidden exceptions after adding protection check in the UI raise UserValueError( _("Your action requires modification of session block boundaries, but you are " "not authorized to manage the session block.")) old_times = g.pop('old_times') for obj, info in old_times.iteritems(): if isinstance(obj, TimetableEntry): obj = obj.object if obj.start_dt != info['start_dt']: changes[obj]['start_dt'] = (info['start_dt'], obj.start_dt) if obj.duration != info['duration']: changes[obj]['duration'] = (info['duration'], obj.duration) if obj.end_dt != info['end_dt']: changes[obj]['end_dt'] = (info['end_dt'], obj.end_dt) for obj, obj_changes in changes.iteritems(): entry = None if isinstance(obj, Event) else obj.timetable_entry signals.event.times_changed.send(type(obj), entry=entry, obj=obj, changes=obj_changes)
def close_db(e=None): db = g.pop('db', None) if(db != None): db.close()
def close_db(e=None): """Checks if a database connection exists and closes it""" db = g.pop("db", None) if db is not None: db.close()
def close_db(e=None): """close connection""" db_client = g.pop('db_client', None) if db_client is not None: db_client.close()
def teardown_db(self, exc): db = g.pop('db', None) if db is not None: self.close(db)