def get(self, user_id): user_id = int(user_id if user_id else 0) # TODO: Cache this for quicker retrieval? No need to look it all up every time. user = User.get_by_user_id(user_id) if user_id else None result = user.info_dict if user else None return self.render_response(result)
def post(self): post_body = json.loads(self.request.body) user_id = int(post_body.get('userId', 0)) user = User.get_by_user_id(user_id) if user_id else None result = { 'authenticated': True if user else False, 'token': user.get_key_hash() if user else None } return self.render_response(additional_info=result)
def test_get_user_by_id_returns_correct_user(self): expected = User.create(first_name='Graham', last_name='Holtslander') user_id = expected.user_id actual = User.get_by_user_id(user_id) self.assertEqual(expected.first_name, actual.first_name) self.assertEqual(expected.last_name, actual.last_name)
def test_create_uses_user_id_passed_in(self): user = User.create(user_id=1234) self.assertEqual(1234, user.user_id) actual = User.get_by_user_id(1234) self.assertIsNotNone(actual)
def test_lookup_user_by_id_returns_empty_list(self): # Hasn't been created yet, shouldn't return any. not_found = User.get_by_user_id(self.user_id) self.assertEqual(None, not_found)
def test_lookup_user_by_id_returns_correct_user(self): found_user = User.get_by_user_id(self.user_id2) self.assertIsNotNone(found_user) self.assertEqual(found_user.email, self.email2) self.assertEqual(found_user.name, self.name2)
def test_lookup_user_by_id_requires_user_id(self): with self.assertRaises(ValueError): User.get_by_user_id(None)