def test_get_user_id(self): id = UsersDb.get_user_id(TEST_USER_NAME) assert id == TEST_USER_ID not_user = TEST_USER_NAME+'notExistingjsdflkjslfj' with self.assertRaises(errors.UserNotExistsException) as context: UsersDb.get_user_id(not_user) assert str(context.exception) == f'User {not_user} does not exist'
def test_remove_user_by_username(self): UsersDb.remove_user_by_username(TEST_USER_NAME) snap = firestore_client().document(u'users', TEST_USER_ID).get() assert snap.exists == False col = firestore_client().collection(u'users', TEST_USER_ID, u'records') contains_sth = False for ref in col.list_documents(): contains_sth = True break assert contains_sth == False
def test_save_new_user_fail_user_id(self): with self.assertRaises(AlreadyExists) as context: UsersDb.save_new_user( user_id=TEST_USER_ID, user=UserStored( username=TEST_USER_NAME+'NEW', password=TEST_USER_STORED.password, usage_purpose=TEST_USER_STORED.usage_purpose, time_created=TEST_USER_STORED.time_created ) )
def test_save_new_user_fail_username(self): with self.assertRaises(errors.UserAlreadyExistsException) as context: UsersDb.save_new_user( user_id=TEST_USER_ID+'NEW', user=UserStored( username=TEST_USER_NAME, password=TEST_USER_STORED.password, usage_purpose=TEST_USER_STORED.usage_purpose, time_created=TEST_USER_STORED.time_created ) ) exc = context.exception assert str(exc) == f'This username already exists: {TEST_USER_NAME}'
def test_save_new_user_succ(self): UsersDb.save_new_user( user_id=TEST_USER_ID+'NEW', user=UserStored( username=TEST_USER_NAME+'NEW', password=TEST_USER_STORED.password, usage_purpose=TEST_USER_STORED.usage_purpose, time_created=TEST_USER_STORED.time_created ) ) doc: DocumentSnapshot = firestore_client().document(u'users', TEST_USER_ID+'NEW').get() assert doc.exists == True assert doc.id == TEST_USER_ID+'NEW' assert doc.get(u'username') == TEST_USER_NAME+'NEW'
def test_get_user_succ(self): user_id, user = UsersDb.get_user_by_username(TEST_USER_NAME) assert user_id == TEST_USER_ID assert user.username == TEST_USER_STORED.username assert user.password == TEST_USER_STORED.password assert user.usage_purpose == TEST_USER_STORED.usage_purpose assert user.time_created == TEST_USER_STORED.time_created
def test_update_user(self): anamnesis_to_update = { 'gender': 'w', 'positive_tested': False } ret_a = UsersDb.update_user(TEST_USER_ID, Anamnesis.parse_obj(anamnesis_to_update)) assert ret_a.gender == 'w' assert ret_a.positive_tested == False assert ret_a.residence == 12345 doc_ref = firestore_client().document(u'users', TEST_USER_ID) db_rec = doc_ref.get().to_dict() assert db_rec['anamnesis']['gender'] == 'w' assert db_rec['anamnesis']['positive_tested'] == False assert db_rec['anamnesis']['residence'] == 12345
def tearDown(self): UsersDb.remove_user_by_id(TEST_USER_ID) UsersDb.remove_user_by_id(TEST_USER_ID+'NEW')
def test_get_user_by_id_fail(self): not_user = TEST_USER_ID+'Not_existsingsjflksjf' with self.assertRaises(LookupError) as context: UsersDb.get_user_by_id(not_user) exc = context.exception assert str(exc) == f'User with id {not_user} does not exist.'
def test_get_user_fail(self): not_user = TEST_USER_NAME+'Not_existsingsjflksjf' with self.assertRaises(LookupError) as context: UsersDb.get_user_by_username(not_user) exc = context.exception assert str(exc) == f'No database document exists for user {not_user}.'
def test_user_id_exists_not(self): exists, ref = UsersDb.user_id_exists('NoneExistingIdlskjdfklsdjfljs') assert exists == False assert ref == None
def test_user_id_exists(self): exists, ref = UsersDb.user_id_exists(TEST_USER_ID) assert exists == True assert ref.get().id == TEST_USER_ID
def test_username_exists_not(self): exists, ref = UsersDb.username_exists('SOmeNoneExistingNamelksjflkjsf') assert exists == False assert ref == None
async def get_check(username: str): exists, ref = UsersDb.username_exists(username) return UserExists(exists=exists)