async def test_process_update(self): with open(UPDATES_FILE, 'r') as fp: data = json.load(fp) example_update = data['result'][0] # This should lead to a unknown user. await self.processor.process_update(example_update) self.assertGreater(len(self.processor.bot.client.requests), 0) msg_json = self.processor.bot.client.requests[-1].body self.assertIn('Cannot identify', msg_json.decode()) # Now makes a real user and pass a token along admin_id = self.db.add_default_admin() icu_id = self.db.add_icu(admin_id, store.ICU(name='icu')) icu = self.db.get_icu(icu_id) user_id = self.db.add_user_to_icu( admin_id, icu_id, store.User(name='patrick') ) user = self.db.get_user(user_id) # TODO(olivier): use authenticator here when available. token_encoder = token.TokenEncoder(self.config) jwt = token_encoder.encode_data(user, icu) example_update['message']['text'] = f'/start {jwt}' await self.processor.process_update(example_update) self.assertGreater(len(self.processor.bot.client.requests), 0) msg_json = self.processor.bot.client.requests[-1].body self.assertIn('registered', msg_json.decode())
def test_encode(self): cfg = config.Config('resources/test.toml') tkn = token.TokenEncoder(cfg) userid = 1234 encoded = tkn.encode(userid) self.assertIsInstance(encoded, str) self.assertEqual(tkn.decode(encoded), userid)
def __init__(self, config, db): self.config = config self.db = db self.token_encoder = token.TokenEncoder(self.config) # Reads token validation from the config. self.validity = self.config.messaging.token_validity_days if not isinstance(self.validity, numbers.Number) or self.validity <= 0: self.validity = None
def main(argv): cfg = config.Config(FLAGS.config, env_path=FLAGS.dotenv_path) sqldb_factory = store.create_store_factory_for_sqlite_db(cfg) sqldb = sqldb_factory.create() encoder = token.TokenEncoder(cfg) for user in sqldb.get_users(): for icu in user.icus: print(encoder.encode_data(user, icu)) if not FLAGS.all: exit()
def test_update_form(self): response = self.fetch(update.UpdateHandler.ROUTE) self.assertEqual(response.code, 400) url_prefix = "{}?id=".format(update.UpdateHandler.ROUTE) response = self.fetch(url_prefix + "123") self.assertEqual(response.code, 404) encoder = token.TokenEncoder(self.config) response = self.fetch(url_prefix + encoder.encode_icu('test_icu', 123)) self.assertEqual(response.code, 200)
def test_update_form(self): response = self.fetch(update.UpdateHandler.ROUTE) self.assertEqual(response.code, 400) url_prefix = "{}?id=".format(update.UpdateHandler.ROUTE) response = self.fetch(url_prefix + "123") self.assertEqual(response.code, 404) encoder = token.TokenEncoder(self.config) jwt = encoder.encode_data(self.user, self.icu) response = self.fetch(url_prefix + jwt) self.assertEqual(response.code, 200)
def __init__(self, config, port=8889): self.config = config self.db = sqlite.SQLiteDB(self.config.db.sqlite_path) self.port = port self.sender = sms_sender.get_sender(self.config) self.queue = queues.Queue() self.scheduler = scheduler.MessageScheduler( db=self.db, queue=self.queue, token_encoder=token.TokenEncoder(self.config), base_url=self.config.server.base_url, max_retries=self.config.scheduler.max_retries, reminder_delay=self.config.scheduler.reminder_delay, when=self.config.scheduler.ping, )
def __init__(self, config, db): self.config = config self.db = db self.token_encoder = token.TokenEncoder(self.config)
def initialize(self, config, db_factory, queue): super().initialize(config, db_factory) self.queue = queue self.updater = updater.Updater(self.config, self.db) self.token_encoder = token.TokenEncoder(self.config)
def initialize(self, config, db_factory): super().initialize(config, db_factory) loader = tornado.template.Loader(self.get_template_path()) self.token_encoder = token.TokenEncoder(self.config) self.popup_template = loader.load(self.POPUP_TEMPLATE)
def initialize(self, config, db_factory): self.config = config self.db = db_factory.create() self.user = None self.token_encoder = token.TokenEncoder(self.config)
def initialize(self, config, db_factory): super().initialize(config, db_factory) self.token_encoder = token.TokenEncoder(self.config) self.builder = map_builder.MapBuilder(config, self.db)