Пример #1
0
 def test_set_password(self):
     user = User("testowy")
     user.set_password("test1")
     self.assertEqual(
         user.password,
         "$pbkdf2-sha256$29000$YWRtISM0MzI1NDI1RSBXZGFzOSBpLTBBUzBkb2FzIGozbmZqams7bGFrZHNhZA$Jf0E5RZyWhminjvla8XRPHuiD1XRuukd3dB.tCE58K0",
     )
Пример #2
0
 def test_user_retrieved_passes_password_validation(self):
     user = User("testowy", "*****@*****.**")
     user.set_password("ocietrudnehaslo")
     repo = RedisUserRepository()
     user = run_sync(repo.save_user(user))
     retrieved_user = run_sync(repo.get_user_by_username(user.username))
     self.assertTrue(retrieved_user.check_password("ocietrudnehaslo"))
Пример #3
0
 def test_user_retrieved_by_username(self):
     user = User("testowy", "*****@*****.**")
     repo = RedisUserRepository()
     user = run_sync(repo.save_user(user))
     retrieved_user = run_sync(repo.get_user_by_username(user.username))
     self.assertEqual(user.id, retrieved_user.id)
     self.assertEqual(user.username, retrieved_user.username)
     self.assertEqual(user.email, retrieved_user.email)
Пример #4
0
 async def save_user(self, user: User) -> User:
     if not user.id:
         user.id = await self.redis.incr(self.user_id_key)
     await self.redis.set(self.user_storage.format(id=user.id),
                          json.dumps(asdict(user)))
     await self.redis.hset(self.user_name_hash, user.username, user.id)
     # todo integrity post modification!
     return user
Пример #5
0
 async def create_user(self, username: str, password: str, email: str):
     user = User(username=username, email=email)
     user.set_password(password)
     user = await self.user_repository.save_user(user)
     return user
Пример #6
0
 def test_check_password(self):
     user = User("testowy")
     user.set_password("test1")
     self.assertTrue(user.check_password("test1"))
Пример #7
0
 def test_user_saved_with_id(self):
     user = User("testowy", "*****@*****.**")
     repo = RedisUserRepository()
     user = run_sync(repo.save_user(user))
     self.assertIsNotNone(user.id)
Пример #8
0
 def test_user_not_found_by_username(self):
     user = User("testowy", "*****@*****.**")
     repo = RedisUserRepository()
     run_sync(repo.save_user(user))
     retrieved_user = run_sync(repo.get_user_by_username("xd"))
     self.assertIsNone(retrieved_user)
Пример #9
0
 async def get_user_by_id(self, user_id: int) -> Optional[User]:
     user_raw_data = await self.redis.get(
         self.user_storage.format(id=user_id))
     if not user_raw_data:
         return None
     return User(**json.loads(user_raw_data))