def test_load(self): token = Token.generate(self.user.api_key) self.assertIsInstance(token, Token) self.assertIsNone(token.user) ##### Before approving # Load with token token1 = Token.load(token.token) self.assertIsNone(token1.user) self.assertDictEqual(token1.__dict__, token.__dict__) # Load with token & api_key token2 = Token.load(token.token, token.api_key) self.assertIsNone(token2.user) self.assertDictEqual(token2.__dict__, token.__dict__) token.approve(self.user.name) ##### After approving the token # Load with token token1 = Token.load(token.token) self.assertIsInstance(token1.user, User) self.assertDictEqual(token1.user.__dict__, token.user.__dict__) token_user = token.user token.user, token1.user = None, None self.assertDictEqual(token1.__dict__, token.__dict__) token.user = token_user # Load with token & api_key token2 = Token.load(token.token, token.api_key) self.assertIsInstance(token2.user, User) self.assertDictEqual(token2.user.__dict__, token.user.__dict__) token.user, token1.user = None, None self.assertDictEqual(token1.__dict__, token.__dict__)
def test_session_create(self): user = User.load_by_id(db.user.create("test")) token = Token.generate(user.api_key) token.approve(user.name) session = Session.create(token) self.assertIsInstance(session, Session) self.assertDictEqual(user.__dict__, session.user.__dict__)
def test_has_expired(self): token = Token.generate(str(uuid.uuid4())) self.assertFalse(token.has_expired()) token.timestamp = token.timestamp - timedelta(minutes=TOKEN_EXPIRATION_TIME - 1) # This is asssertFalse because in the next 1 minute the next statement will get executed self.assertFalse(token.has_expired()) token.timestamp = token.timestamp - timedelta(minutes=1) self.assertTrue(token.has_expired())
def test_session_load(self): user = User.load_by_id(db.user.create("test")) token = Token.generate(user.api_key) token.approve(user.name) session = Session.create(token) self.assertIsInstance(session, Session) self.assertDictEqual(user.__dict__, session.user.__dict__) session.user = None # Load with session_key + api_key session2 = Session.load(session.sid, session.api_key) self.assertDictEqual(user.__dict__, session2.__dict__['user'].__dict__) session2.user = None self.assertDictEqual(session.__dict__, session2.__dict__)
def test_approve(self): token = Token.generate(str(uuid.uuid4())) self.assertIsInstance(token, Token) self.assertIsNone(token.user) before_token = token.__dict__ before_token.pop('user') token.approve(self.user.name) after_token = token.__dict__ self.assertIsInstance(token.user, User) self.assertDictEqual(token.user.__dict__, self.user.__dict__) after_token.pop('user') self.assertDictEqual(after_token, before_token)
def get_token(request, data): """ Issue a token to user after verying his API_KEY """ output_format = data.get('format', 'xml') api_key = data.get('api_key') if not api_key: raise InvalidAPIUsage(6, output_format=output_format) # Missing required params if not Token.is_valid_api_key(api_key): raise InvalidAPIUsage(10, output_format=output_format) # Invalid API_KEY token = Token.generate(api_key) doc, tag, text = Doc().tagtext() with tag('lfm', status='ok'): with tag('token'): text(token.token) return format_response('<?xml version="1.0" encoding="utf-8"?>\n' + yattag.indent(doc.getvalue()), output_format)
def get_token(request, data): """ Issue a token to user after verying his API_KEY """ output_format = data.get('format', 'xml') api_key = data.get('api_key') if not api_key: raise InvalidAPIUsage( CompatError.INVALID_PARAMETERS, output_format=output_format) # Missing required params if not Token.is_valid_api_key(api_key): raise InvalidAPIUsage(CompatError.INVALID_API_KEY, output_format=output_format) # Invalid API_KEY token = Token.generate(api_key) doc, tag, text = Doc().tagtext() with tag('lfm', status='ok'): with tag('token'): text(token.token) return format_response( '<?xml version="1.0" encoding="utf-8"?>\n' + yattag.indent(doc.getvalue()), output_format)
def test_generate(self): token = Token.generate(str(uuid.uuid4())) self.assertIsInstance(token, Token)