示例#1
0
  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())
示例#2
0
 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)
示例#3
0
    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
示例#4
0
文件: get_id_url.py 项目: rth/icubam
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()
示例#5
0
    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)
示例#6
0
文件: server_test.py 项目: rth/icubam
    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)
示例#7
0
文件: server.py 项目: Deathn0t/icubam
 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,
   )
示例#8
0
 def __init__(self, config, db):
   self.config = config
   self.db = db
   self.token_encoder = token.TokenEncoder(self.config)
示例#9
0
 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)
示例#10
0
 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)
示例#11
0
文件: base.py 项目: fams/icubam
 def initialize(self, config, db_factory):
     self.config = config
     self.db = db_factory.create()
     self.user = None
     self.token_encoder = token.TokenEncoder(self.config)
示例#12
0
 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)