def init(clientname, contributor_type, *paths, limit=0, **kwargs): """Initial import for real™. clientname Name of the client contributor_type Contributor type of the session paths Paths to json files.""" context.set('clientname', clientname) context.set('contributor_type', contributor_type) for path in paths: print('Processing', path) rows = helpers.iter_file(path, formatter=json.loads) if limit: print('Running with limit', limit) extract = [] for i, row in enumerate(rows): if i >= limit: break extract.append(row) rows = extract total = limit else: print('Computing file size') total = sum(1 for line in helpers.iter_file(path)) print('Done computing file size') # Use `all` to force generator evaluation. all(helpers.batch(process_rows, rows, chunksize=100, total=total))
def tokengetter(access_token=None, refresh_token=None): if access_token: token = models.Token.first(models.Token.access_token == access_token) if token: context.set('session', token.session) # We use TZ aware datetime while Flask Oauthlib wants naive ones. token.expires = token.expires.replace(tzinfo=None) return token
def test_cannot_unflag_other_client_flag(session): group = GroupFactory() version = group.load_version() version.flag() # Change current session session = SessionFactory() context.set('session', session) assert version.flags.select().count() == 1 version.unflag() assert version.flags.select().count() == 1
def session_client(func, *args, **kwargs): clientname = context.get('clientname') contributor_type = context.get('contributor_type') try: client = Client.select().where(Client.name == clientname).get() except Client.DoesNotExist: raise Exception('Client not found {}'.format(clientname or '')) session = Session.create(client=client, contributor_type=contributor_type) context.set('session', session) return func(*args, **kwargs)
def collect_report(func, *args, **kwargs): # This is a process reporter instance. reporter = context.get('reporter') if not reporter: # In thread mode, reporter is not shared with subthreads. reporter = Reporter(config.get('VERBOSE')) context.set('reporter', reporter) func(*args, **kwargs) reports = reporter._reports.copy() reporter.clear() return reports
def tokengetter(access_token=None): if access_token: token = models.Token.first(models.Token.access_token == access_token) if token: if token.expires > utcnow( ) and token.expires < utcnow() + timedelta(minutes=30): token.expires = token.expires + timedelta(hours=1) token.save() context.set('session', token.session) # We use TZ aware datetime while Flask Oauthlib wants naive ones. token.expires = token.expires.replace(tzinfo=None) return token
def session(func, *args, **kwargs): # TODO make configurable from command line qs = User.select().select(User.is_staff == True) username = config.get('SESSION_USER') if username: qs = qs.where(User.username == username) try: user = qs.get() except User.DoesNotExist: abort('Admin user not found {}'.format(username or '')) session = Session.create(user=user) context.set('session', session) return func(*args, **kwargs)
def session(func, *args, **kwargs): session = context.get('session') if not session: qs = User.select().where(User.is_staff == True) username = config.get('SESSION_USER') if username: qs = qs.where(User.username == username) try: user = qs.get() except User.DoesNotExist: abort('Admin user not found {}'.format(username or '')) session = Session.create(user=user, contributor_type='admin') context.set('session', session) return func(*args, **kwargs)
def __call__(self, *args, **kwargs): """Run command.""" reporter = Reporter(config.get('VERBOSE')) context.set('reporter', reporter) for func in self._on_before_call: func(self, args, kwargs) try: self.command(*args, **kwargs) except KeyboardInterrupt: pass else: for func in self._on_after_call: func(self, args, kwargs) finally: # Display reports, if any. print(reporter)
def __call__(self, *args, **kwargs): """Run command.""" reporter = Reporter(config.get('VERBOSE')) context.set('reporter', reporter) try: self.command(*args, **kwargs) except KeyboardInterrupt: pass finally: # Display reports, if any. print(reporter) filepath = config.get('REPORT_TO') if filepath: try: with Path(filepath).open('w') as f: f.write(str(reporter)) except (OSError, IOError) as e: print('Unable to write report to', filepath) print(e)
def pytest_runtest_setup(item): assert db.database.database.startswith('test_') truncatedb(force=True) context.set('session', None)
def pytest_runtest_setup(item): truncatedb(force=True) context.set('session', None)
def process_response(self, req, resp, resource): context.set('session', None)
def session(): session = SessionFactory(user__is_staff=True) context.set('session', session) return session
def reporter(): reporter_ = Reporter(2) context.set('reporter', reporter_) return reporter_
def session(): session = SessionFactory() context.set('session', session) return session
def tokengetter(access_token=None, refresh_token=None): if access_token: token = models.Token.first(models.Token.access_token == access_token) if token: context.set("session", token.session) return token