def set_up(self): super().set_up() self.first_user = ActiveUserFactory() self.second_user = ActiveUserFactory() Friend.objects.add_friend(from_user=self.first_user, to_user=self.second_user).accept() self.page_url = '/{}/friends/remove/'.format(self.second_user.slug) self.opposite_url = '/{}/friends/remove/'.format(self.first_user.slug)
def test_tag(self): user1 = ActiveUserFactory() user2 = ActiveUserFactory() user3 = ActiveUserFactory() chats = [ ChatFactory(ent1=user1, ent2=user2), ChatFactory(ent1=user3, ent2=user1), ChatFactory(ent1=user2, ent2=user3), ] Message.objects.send_message(from_entity=user1, chat=chats[0], text='text') sleep(0.1) Message.objects.send_message(from_entity=user2, chat=chats[0], text='text') sleep(0.1) Message.objects.send_message(from_entity=user2, chat=chats[0], text='text') sleep(0.1) Message.objects.send_message(from_entity=user3, chat=chats[1], text='text') sleep(0.1) Message.objects.send_message(from_entity=user1, chat=chats[1], text='text') sleep(0.1) Message.objects.send_message(from_entity=user3, chat=chats[1], text='text') sleep(0.1) Message.objects.send_message(from_entity=user2, chat=chats[2], text='text') sleep(0.1) Message.objects.send_message(from_entity=user3, chat=chats[2], text='text') sleep(0.1) self.assertEqual(first=im_tags.unread_chats_count(user1), second=1 + 1 + 0) self.assertEqual(first=im_tags.unread_chats_count(user2), second=0 + 0 + 1) self.assertEqual(first=im_tags.unread_chats_count(user3), second=0 + 0 + 0)
class RemoveFriendViewTestCaseMixin(SpeedyCoreFriendsLanguageMixin): def set_up(self): super().set_up() self.first_user = ActiveUserFactory() self.second_user = ActiveUserFactory() Friend.objects.add_friend(from_user=self.first_user, to_user=self.second_user).accept() self.page_url = '/{}/friends/remove/'.format(self.second_user.slug) self.opposite_url = '/{}/friends/remove/'.format(self.first_user.slug) def test_visitor_has_no_access(self): r = self.client.post(path=self.page_url) self.assertRedirects(response=r, expected_url='/login/?next={}'.format(self.page_url)) self.assertIsNone(obj=r.context) @unittest.expectedFailure # ~~~~ TODO: fix this test! def test_user_can_remove_other_user(self): self.assertEqual(first=Friend.objects.count(), second=1 * 2) self.client.login(username=self.first_user.slug, password=tests_settings.USER_PASSWORD) r = self.client.post(path=self.page_url) self.assertRedirects(response=r, expected_url=self.second_user.get_absolute_url()) self.assertEqual(first=Friend.objects.count(), second=0) self.assertIsNone(obj=r.context) r = self.client.get(path=self.second_user.get_absolute_url()) self.assertListEqual(list1=list(map(str, r.context['messages'])), list2=[self._you_have_removed_this_user_from_friends_success_message]) ###### TODO @unittest.expectedFailure # ~~~~ TODO: fix this test! def test_other_user_can_remove_first_user(self): self.assertEqual(first=Friend.objects.count(), second=1 * 2) self.client.login(username=self.second_user.slug, password=tests_settings.USER_PASSWORD) r = self.client.post(path=self.opposite_url) self.assertRedirects(response=r, expected_url=self.first_user.get_absolute_url()) self.assertEqual(first=Friend.objects.count(), second=0) self.assertIsNone(obj=r.context) r = self.client.get(path=self.second_user.get_absolute_url()) self.assertListEqual(list1=list(map(str, r.context['messages'])), list2=[self._you_have_removed_this_user_from_friends_success_message]) ###### TODO
def set_up(self): super().set_up() self.first_user = ActiveUserFactory() self.second_user = ActiveUserFactory() friendship_request = Friend.objects.add_friend(from_user=self.first_user, to_user=self.second_user) self.page_url = '/{}/friends/request/accept/{}/'.format(self.second_user.slug, friendship_request.pk) self.second_user_friends_list_url = '/{}/friends/'.format(self.second_user.slug)
def test_tag(self): user_1 = ActiveUserFactory() user_2 = ActiveUserFactory() user_3 = ActiveUserFactory() chats = [ ChatFactory(ent1=user_1, ent2=user_2), ChatFactory(ent1=user_3, ent2=user_1), ChatFactory(ent1=user_2, ent2=user_3), ] Message.objects.send_message(from_entity=user_1, chat=chats[0], text='text') sleep(0.1) Message.objects.send_message(from_entity=user_2, chat=chats[0], text='text') sleep(0.1) Message.objects.send_message(from_entity=user_2, chat=chats[0], text='text') sleep(0.1) Message.objects.send_message(from_entity=user_3, chat=chats[1], text='text') sleep(0.1) Message.objects.send_message(from_entity=user_1, chat=chats[1], text='text') sleep(0.1) Message.objects.send_message(from_entity=user_3, chat=chats[1], text='text') sleep(0.1) Message.objects.send_message(from_entity=user_2, chat=chats[2], text='text') sleep(0.1) Message.objects.send_message(from_entity=user_3, chat=chats[2], text='text') sleep(0.1) self.assertEqual(first=core_messages_tags_and_filters.unread_chats_count(entity=user_1), second=1 + 1 + 0) self.assertEqual(first=core_messages_tags_and_filters.unread_chats_count(entity=user_2), second=0 + 0 + 1) self.assertEqual(first=core_messages_tags_and_filters.unread_chats_count(entity=user_3), second=0 + 0 + 0)
def set_up(self): super().set_up() self.first_user = ActiveUserFactory() self.second_user = ActiveUserFactory() self.page_url = '/{}/friends/request/'.format(self.second_user.slug) self.same_user_page_url = '/{}/friends/request/'.format(self.first_user.slug) self.client.login(username=self.first_user.slug, password=tests_settings.USER_PASSWORD)
class UnlikeViewTestCase(SiteTestCase): def set_up(self): super().set_up() self.user_1 = ActiveUserFactory() self.user_2 = ActiveUserFactory() self.page_url = '/{}/likes/unlike/'.format(self.user_2.slug) def test_user_can_unlike(self): self.client.login(username=self.user_1.slug, password=tests_settings.USER_PASSWORD) self.assertEqual(first=UserLike.objects.count(), second=0) UserLike.objects.add_like(from_user=self.user_1, to_user=self.user_2) self.assertEqual(first=UserLike.objects.count(), second=1) r = self.client.post(path=self.page_url) self.assertRedirects(response=r, expected_url=self.user_2.get_absolute_url(), status_code=302, target_status_code=200) self.assertEqual(first=UserLike.objects.count(), second=0) def test_user_cannot_unlike_if_doesnt_like(self): self.client.login(username=self.user_1.slug, password=tests_settings.USER_PASSWORD) self.assertEqual(first=UserLike.objects.count(), second=0) r = self.client.post(path=self.page_url) self.assertEqual(first=r.status_code, second=403) self.assertEqual(first=UserLike.objects.count(), second=0) def test_user_cannot_unlike_twice(self): self.client.login(username=self.user_1.slug, password=tests_settings.USER_PASSWORD) self.assertEqual(first=UserLike.objects.count(), second=0) UserLike.objects.add_like(from_user=self.user_1, to_user=self.user_2) self.assertEqual(first=UserLike.objects.count(), second=1) r = self.client.post(path=self.page_url) self.assertRedirects(response=r, expected_url=self.user_2.get_absolute_url(), status_code=302, target_status_code=200) self.assertEqual(first=UserLike.objects.count(), second=0) r = self.client.post(path=self.page_url) self.assertEqual(first=r.status_code, second=403) self.assertEqual(first=UserLike.objects.count(), second=0)
def test_tag(self): user1 = ActiveUserFactory() user2 = ActiveUserFactory() chat = ChatFactory(ent1=user1, ent2=user2) messages = [ Message.objects.send_message(from_entity=user2, chat=chat, text='User 2 First Message'), Message.objects.send_message(from_entity=user1, chat=chat, text='User 1 Message'), Message.objects.send_message(from_entity=user2, chat=chat, text='User 2 Second Message'), ] self.assertEqual(first=ReadMark.objects.count(), second=2) output = core_messages_tags.annotate_messages_with_read_marks( messages, user1) self.assertEqual(first=output, second='') self.assertFalse(expr=messages[0].is_unread) self.assertFalse(expr=messages[1].is_unread) self.assertTrue(expr=messages[2].is_unread) output = core_messages_tags.annotate_messages_with_read_marks( messages, user2) self.assertEqual(first=output, second='') self.assertFalse(expr=messages[0].is_unread) self.assertFalse(expr=messages[1].is_unread) self.assertFalse(expr=messages[2].is_unread)
class LikeRulesTestCase(SiteTestCase): def set_up(self): super().set_up() self.user = ActiveUserFactory() self.other_user = ActiveUserFactory() self.anon = AnonymousUser() def test_anonymous_cannot_like(self): self.assertFalse(expr=self.anon.has_perm(perm='likes.like', obj=self.other_user)) def test_user_cannot_like_self(self): self.assertFalse(expr=self.user.has_perm(perm='likes.like', obj=self.user)) def test_user_can_like(self): self.assertTrue(expr=self.user.has_perm(perm='likes.like', obj=self.other_user)) def test_user_cannot_like_other_user_if_blocked(self): Block.objects.block(blocker=self.user, blocked=self.other_user) self.assertFalse(expr=self.user.has_perm(perm='likes.like', obj=self.other_user)) def test_user_cannot_like_other_user_if_blocking(self): Block.objects.block(blocker=self.other_user, blocked=self.user) self.assertFalse(expr=self.user.has_perm(perm='likes.like', obj=self.other_user)) def test_user_cannot_like_twice(self): UserLike.objects.add_like(from_user=self.user, to_user=self.other_user) self.assertFalse(expr=self.user.has_perm(perm='likes.like', obj=self.other_user))
class ViewProfileTestCaseMixin(object): def get_active_user_doron(self): user = ActiveUserFactory(first_name_en="Doron", last_name_en="Matalon", slug="doron-matalon", gender=User.GENDER_FEMALE) user.speedy_match_profile.gender_to_match = [User.GENDER_MALE] user.save_user_and_profile() return user def get_active_user_jennifer(self): user = ActiveUserFactory(first_name_en="Jennifer", last_name_en="Connelly", slug="jennifer-connelly", gender=User.GENDER_FEMALE) user.save_user_and_profile() return user def set_up(self): super().set_up() # The default for ActiveUserFactory() on Speedy Match is to match everybody with 5 stars. self.user = ActiveUserFactory() self.other_user = ActiveUserFactory() # Doron wants to meet only male and Jennifer is a female, therefore they don't match on Speedy Match. self.doron = self.get_active_user_doron() self.jennifer = self.get_active_user_jennifer() def test_user_and_other_user_have_access(self): self.assertTrue(expr=self.user.has_perm(perm='accounts.view_profile', obj=self.other_user)) self.assertTrue(expr=self.other_user.has_perm(perm='accounts.view_profile', obj=self.user)) def test_user_and_other_user_have_no_access_if_blocked(self): Block.objects.block(blocker=self.other_user, blocked=self.user) self.assertFalse(expr=self.user.has_perm(perm='accounts.view_profile', obj=self.other_user)) self.assertFalse(expr=self.other_user.has_perm(perm='accounts.view_profile', obj=self.user)) def test_doron_and_jennifer_have_access(self): raise NotImplementedError() def test_doron_and_jennifer_have_no_access(self): raise NotImplementedError()
def set_up(self): super().set_up() self.user_1 = ActiveUserFactory(gender=User.GENDER_FEMALE) self.user_2 = ActiveUserFactory(gender=User.GENDER_MALE) self.user_3 = ActiveUserFactory(gender=User.GENDER_FEMALE) self.user_4 = ActiveUserFactory(gender=User.GENDER_MALE) self.user_5 = ActiveUserFactory(gender=User.GENDER_OTHER)
class CancelFriendRequestViewTestCaseMixin(SpeedyCoreFriendsLanguageMixin): def set_up(self): super().set_up() self.first_user = ActiveUserFactory() self.second_user = ActiveUserFactory() self.page_url = '/{}/friends/request/cancel/'.format( self.second_user.slug) self.client.login(username=self.first_user.slug, password=tests_settings.USER_PASSWORD) def test_visitor_cannot_cancel_friend_request(self): self.client.logout() r = self.client.post(path=self.page_url) self.assertRedirects(response=r, expected_url='/login/?next={}'.format( self.page_url)) self.assertIsNone(obj=r.context) def test_user_can_cancel_friend_request(self): Friend.objects.add_friend(from_user=self.first_user, to_user=self.second_user) self.assertEqual(first=FriendshipRequest.objects.count(), second=1) r = self.client.post(path=self.page_url) self.assertRedirects(response=r, expected_url=self.second_user.get_absolute_url(), fetch_redirect_response=False) r = self.client.get(path=self.second_user.get_absolute_url()) self.assertListEqual( list1=list(map(str, r.context['messages'])), list2=[self._youve_cancelled_your_friend_request_success_message ]) #####-1 TODO
class RemoveRulesTestCase(SiteTestCase): def set_up(self): super().set_up() self.user = ActiveUserFactory() self.other_user = ActiveUserFactory() Friend.objects.add_friend(from_user=self.user, to_user=self.other_user).accept() def test_user_can_remove_other_user(self): self.assertTrue(expr=self.user.has_perm(perm='friends.remove', obj=self.other_user)) def test_other_user_can_remove_user(self): self.assertTrue(expr=self.other_user.has_perm( perm='friends.remove', obj=self.user)) def test_user_cannot_remove_themself(self): self.assertFalse( expr=self.user.has_perm(perm='friends.remove', obj=self.user)) def test_user_cannot_remove_other_user_if_not_friends(self): Friend.objects.remove_friend(from_user=self.user, to_user=self.other_user) self.assertFalse(expr=self.user.has_perm(perm='friends.remove', obj=self.other_user))
def set_up(self): super().set_up() self.user = ActiveUserFactory() self.other_user = ActiveUserFactory() self.default_url = '/{}/likes/'.format(self.user.slug) self.to_url = '/{}/likes/people-i-like/'.format(self.user.slug) self.from_url = '/{}/likes/people-who-like-me/'.format( self.user.slug) self.mutual_url = '/{}/likes/mutual/'.format(self.user.slug) self.to_likes = { UserLikeFactory(from_user=self.user), UserLikeFactory(from_user=self.user), UserLikeFactory(from_user=self.user), } self.mutual_likes = { UserLikeFactory(from_user=self.user, to_user=self.other_user), } self.to_likes |= self.mutual_likes self.from_likes = { UserLikeFactory(to_user=self.user), UserLikeFactory(to_user=self.user), UserLikeFactory(to_user=self.user, from_user=self.other_user), } self.client.login(username=self.user.slug, password=tests_settings.USER_PASSWORD)
class RequestRulesTestCase(SiteTestCase): def set_up(self): super().set_up() self.user = ActiveUserFactory() self.other_user = ActiveUserFactory() def test_user_can_send_request_to_other_user(self): self.assertTrue(expr=self.user.has_perm(perm='friends.request', obj=self.other_user)) def test_user_cannot_send_request_to_other_user_if_blocked(self): Block.objects.block(blocker=self.other_user, blocked=self.user) self.assertFalse(expr=self.user.has_perm(perm='friends.request', obj=self.other_user)) self.assertFalse(expr=self.other_user.has_perm( perm='friends.request', obj=self.user)) def test_user_cannot_send_request_to_themself(self): self.assertFalse( expr=self.user.has_perm(perm='friends.request', obj=self.user)) def test_user_cannot_send_second_request(self): Friend.objects.add_friend(from_user=self.user, to_user=self.other_user) self.assertFalse(expr=self.user.has_perm(perm='friends.request', obj=self.other_user))
class ViewProfileRulesTestCaseMixin(object): def get_active_user_doron(self): user = ActiveUserFactory(first_name_en="Doron", last_name_en="Matalon", slug="doron-matalon", gender=User.GENDER_FEMALE) user.speedy_match_profile.gender_to_match = [User.GENDER_MALE] user.save_user_and_profile() return user def get_active_user_jennifer(self): user = ActiveUserFactory(first_name_en="Jennifer", last_name_en="Connelly", slug="jennifer-connelly", gender=User.GENDER_FEMALE) user.save_user_and_profile() return user def set_up(self): super().set_up() # The default for ActiveUserFactory() on Speedy Match is to match everybody with 5 stars. self.user = ActiveUserFactory() self.other_user = ActiveUserFactory() # Doron wants to meet only male and Jennifer is a female, therefore they don't match on Speedy Match. self.doron = self.get_active_user_doron() self.jennifer = self.get_active_user_jennifer() def test_user_and_other_user_have_access(self): self.assertTrue(expr=self.user.has_perm(perm='accounts.view_profile', obj=self.other_user)) self.assertTrue(expr=self.other_user.has_perm(perm='accounts.view_profile', obj=self.user)) def test_user_and_other_user_have_no_access_if_blocked(self): Block.objects.block(blocker=self.other_user, blocked=self.user) self.assertFalse(expr=self.user.has_perm(perm='accounts.view_profile', obj=self.other_user)) self.assertFalse(expr=self.other_user.has_perm(perm='accounts.view_profile', obj=self.user)) def test_doron_and_jennifer_have_access(self): raise NotImplementedError() def test_doron_and_jennifer_have_no_access(self): raise NotImplementedError()
def set_up(self): super().set_up() self.user_1 = ActiveUserFactory() self.user_2 = ActiveUserFactory() self.user_3 = ActiveUserFactory() self.chat_1_2 = ChatFactory(ent1=self.user_1, ent2=self.user_2) self.chat_1_3 = ChatFactory(ent1=self.user_1, ent2=self.user_3)
def test_str_group_chat(self): user_1 = self.get_active_user_doron() user_2 = self.get_active_user_jennifer() user_3 = ActiveUserFactory() user_4 = ActiveUserFactory() chat = ChatFactory(ent1=None, ent2=None, is_group=True, group=[user_1, user_2, user_3, user_4]) # print("test_str_group_chat: str(chat)=", str(chat)) #### ~~~~ TODO: remove this line! self.assertEqual(first=str(chat), second="{}, {}, {}, {}".format( user_1.profile.get_name(), user_2.profile.get_name(), user_3.profile.get_name(), user_4.profile.get_name())) self.assertEqual(first=str(chat), second="{}, {}, {}, {}".format( str(user_1), str(user_2), str(user_3), str(user_4))) if (self.site.id == django_settings.SPEEDY_MATCH_SITE_ID): self.assertEqual(first=str(chat), second="Doron, Jennifer, {}, {}".format( user_3.profile.get_name(), user_4.profile.get_name())) else: self.assertEqual( first=str(chat), second="Doron Matalon, Jennifer Connelly, {}, {}".format( user_3.profile.get_name(), user_4.profile.get_name()))
def set_up(self): super().set_up() # The default for ActiveUserFactory() on Speedy Match is to match everybody with 5 stars. self.user = ActiveUserFactory() self.other_user = ActiveUserFactory() # Doron wants to meet only male and Jennifer is a female, therefore they don't match on Speedy Match. self.doron = self.get_active_user_doron() self.jennifer = self.get_active_user_jennifer()
def set_up(self): super().set_up() ChatFactory(is_group=True) self.user1 = ActiveUserFactory() self.user2 = ActiveUserFactory() self.user3 = ActiveUserFactory() self.chat_1_2 = ChatFactory(ent1=self.user1, ent2=self.user2) self.chat_1_2_3 = ChatFactory(group=(self.user1, self.user2, self.user3))
def set_up(self): super().set_up() self.first_user = ActiveUserFactory() self.second_user = ActiveUserFactory() self.page_url = '/{}/friends/request/cancel/'.format( self.second_user.slug) self.client.login(username=self.first_user.slug, password=tests_settings.USER_PASSWORD)
def set_up(self): super().set_up() self.user1 = ActiveUserFactory() self.user2 = ActiveUserFactory() self.page_url = '/messages/{}/compose/'.format(self.user2.slug) self.data = { 'text': 'Hi Hi Hi', }
def set_up(self): super().set_up() self.user1 = ActiveUserFactory() self.user2 = ActiveUserFactory() self.user3 = ActiveUserFactory() self.chat_1_2 = ChatFactory(ent1=self.user1, ent2=self.user2) self.chat_2_3 = ChatFactory(ent1=self.user2, ent2=self.user3) self.chat_3_1 = ChatFactory(ent1=self.user3, ent2=self.user1)
def set_up(self): super().set_up() self.first_user = ActiveUserFactory() self.second_user = ActiveUserFactory() friendship_request = Friend.objects.add_friend( from_user=self.first_user, to_user=self.second_user) self.page_url = '/{}/friends/request/reject/{}/'.format( self.second_user.slug, friendship_request.pk) self.second_user_friends_list_url = '/{}/friends/'.format( self.second_user.slug)
def test_tag(self): user1 = ActiveUserFactory() user2 = ActiveUserFactory() chat = ChatFactory(ent1=user1, ent2=user2) self.assertEqual(first=core_messages_tags.get_other_participant( chat, user1).id, second=user2.id) self.assertEqual(first=core_messages_tags.get_other_participant( chat, user2).id, second=user1.id)
def set_up(self): super().set_up() self.user1 = ActiveUserFactory() self.user2 = ActiveUserFactory() Friend.objects.add_friend(from_user=self.user1, to_user=ActiveUserFactory()).accept() Friend.objects.add_friend(from_user=self.user1, to_user=ActiveUserFactory()) Friend.objects.add_friend(from_user=ActiveUserFactory(), to_user=self.user1)
def set_up(self): super().set_up() self.user_1 = ActiveUserFactory() self.user_2 = ActiveUserFactory() self.user_3 = ActiveUserFactory() self.user_4 = ActiveUserFactory() self.user_5 = ActiveUserFactory() self.user_6 = ActiveUserFactory() self.user_1.relationship_status = User.RELATIONSHIP_STATUS_MARRIED self.user_2.speedy_match_profile.diet_match = { str(User.DIET_VEGAN): 5, str(User.DIET_VEGETARIAN): 4, str(User.DIET_CARNIST): 2 } self.user_5.speedy_match_profile.relationship_status_match[str( User.RELATIONSHIP_STATUS_MARRIED )] = SpeedyMatchSiteProfile.RANK_0 self.user_1.save_user_and_profile() self.user_2.save_user_and_profile() self.user_5.save_user_and_profile() sleep(0.02) self.user_6.profile.update_last_visit() sleep(0.01) self.user_4.profile.update_last_visit() sleep(0.01) self.user_3.profile.update_last_visit() sleep(0.01) self.user_2.profile.update_last_visit()
class ViewRequestsRulesTestCase(SiteTestCase): def set_up(self): super().set_up() self.user = ActiveUserFactory() self.other_user = ActiveUserFactory() def test_user_cannot_view_incoming_requests_for_other_user(self): self.assertFalse(expr=self.user.has_perm(perm='friends.view_requests', obj=self.other_user)) def test_user_can_view_incoming_requests(self): self.assertTrue(expr=self.user.has_perm(perm='friends.view_requests', obj=self.user))
class ViewChatsRulesTestCase(SiteTestCase): def set_up(self): super().set_up() self.user_1 = ActiveUserFactory() self.user_2 = ActiveUserFactory() def test_can_see_his_chats(self): self.assertTrue(expr=self.user_1.has_perm(perm='messages.view_chats', obj=self.user_1)) def test_cannot_see_other_user_chats(self): self.assertFalse(expr=self.user_1.has_perm(perm='messages.view_chats', obj=self.user_2))
class ViewChatsTestCase(SiteTestCase): def set_up(self): super().set_up() self.user1 = ActiveUserFactory() self.user2 = ActiveUserFactory() def test_can_see_his_chats(self): self.assertTrue(expr=self.user1.has_perm(perm='im.view_chats', obj=self.user1)) def test_cannot_see_other_user_chats(self): self.assertFalse(expr=self.user1.has_perm(perm='im.view_chats', obj=self.user2))
def test_get_slug_group_chat(self): user_1 = self.get_active_user_doron() user_2 = self.get_active_user_jennifer() user_3 = ActiveUserFactory() user_4 = ActiveUserFactory() chat = ChatFactory(ent1=None, ent2=None, is_group=True, group=[user_1, user_2, user_3, user_4]) self.assertEqual(first=chat.get_slug(current_user=user_1), second=chat.id)
def set_up(self): super().set_up() self.user = ActiveUserFactory() self.other_user = ActiveUserFactory() upload_file = tempfile.NamedTemporaryFile() upload_file.file.write(b'this is a file') upload_file.file.seek(0) self.data = { 'file': SimpleUploadedFile(upload_file.name, upload_file.read()) } self.upload_file = upload_file
def set_up(self): super().set_up() self.user = ActiveUserFactory() self.other_user = ActiveUserFactory() self.primary_email = UserEmailAddressFactory(user=self.user, is_confirmed=True) self.primary_email.make_primary() self.confirmed_email = UserEmailAddressFactory(user=self.user, is_confirmed=True) self.unconfirmed_email = UserEmailAddressFactory( user=self.user, is_confirmed=False) self.other_user_email = UserEmailAddressFactory( user=self.other_user, is_confirmed=True)
def set_up(self): super().set_up() self.user1 = ActiveUserFactory() self.user2 = ActiveUserFactory() self.user3 = ActiveUserFactory() self.chat_1_2 = ChatFactory(ent1=self.user1, ent2=self.user2) self.chat_2_3 = ChatFactory(ent1=self.user2, ent2=self.user3) self.chat_3_1 = ChatFactory(ent1=self.user3, ent2=self.user1) self.chat_url = '/messages/{}/'.format( self.chat_1_2.get_slug(current_user=self.user1)) self.page_url = '/messages/{}/send/'.format(self.chat_1_2.id) self.data = { 'text': 'Hi Hi Hi', }
class ReadChatTestCase(SiteTestCase): def set_up(self): super().set_up() self.user1 = ActiveUserFactory() self.user2 = ActiveUserFactory() self.user3 = ActiveUserFactory() self.chat_1_2 = ChatFactory(ent1=self.user1, ent2=self.user2) self.chat_1_3 = ChatFactory(ent1=self.user1, ent2=self.user3) def test_can_read_his_chat(self): self.assertTrue(expr=self.user2.has_perm(perm='im.read_chat', obj=self.chat_1_2)) def test_cannot_read_a_chat_user_is_not_participate_in(self): self.assertFalse(expr=self.user2.has_perm(perm='im.read_chat', obj=self.chat_1_3))
class RemoveFriendViewTestCaseMixin(SpeedyCoreFriendsLanguageMixin): def set_up(self): super().set_up() self.first_user = ActiveUserFactory() self.second_user = ActiveUserFactory() Friend.objects.add_friend(from_user=self.first_user, to_user=self.second_user).accept() self.page_url = '/{}/friends/remove/'.format(self.second_user.slug) self.opposite_url = '/{}/friends/remove/'.format(self.first_user.slug) def test_visitor_has_no_access(self): r = self.client.post(path=self.page_url) self.assertRedirects(response=r, expected_url='/login/?next={}'.format( self.page_url)) self.assertIsNone(obj=r.context) @unittest.expectedFailure # ~~~~ TODO: fix this test! def test_user_can_remove_other_user(self): self.assertEqual(first=Friend.objects.count(), second=1 * 2) self.client.login(username=self.first_user.slug, password=tests_settings.USER_PASSWORD) r = self.client.post(path=self.page_url) self.assertRedirects(response=r, expected_url=self.second_user.get_absolute_url()) self.assertEqual(first=Friend.objects.count(), second=0) self.assertIsNone(obj=r.context) r = self.client.get(path=self.second_user.get_absolute_url()) self.assertListEqual( list1=list(map(str, r.context['messages'])), list2=[ self._you_have_removed_this_user_from_friends_success_message ]) ###### TODO @unittest.expectedFailure # ~~~~ TODO: fix this test! def test_other_user_can_remove_first_user(self): self.assertEqual(first=Friend.objects.count(), second=1 * 2) self.client.login(username=self.second_user.slug, password=tests_settings.USER_PASSWORD) r = self.client.post(path=self.opposite_url) self.assertRedirects(response=r, expected_url=self.first_user.get_absolute_url()) self.assertEqual(first=Friend.objects.count(), second=0) self.assertIsNone(obj=r.context) r = self.client.get(path=self.second_user.get_absolute_url()) self.assertListEqual( list1=list(map(str, r.context['messages'])), list2=[ self._you_have_removed_this_user_from_friends_success_message ]) ###### TODO
class ViewLikesTestCase(SiteTestCase): def set_up(self): super().set_up() self.user = ActiveUserFactory() self.other_user = ActiveUserFactory() self.anon = AnonymousUser() def test_anonymous_cannot_view_likes(self): self.assertFalse(expr=self.anon.has_perm(perm='likes.view_likes', obj=self.user)) def test_other_user_cannot_view_likes(self): self.assertFalse(expr=self.other_user.has_perm(perm='likes.view_likes', obj=self.user)) def test_user_can_view_likes(self): self.assertTrue(expr=self.user.has_perm(perm='likes.view_likes', obj=self.user))
class SendMessageTestCase(SiteTestCase): def set_up(self): super().set_up() self.user1 = ActiveUserFactory() self.user2 = ActiveUserFactory() def test_cannot_send_message_to_self(self): self.assertFalse(expr=self.user1.has_perm(perm='im.send_message', obj=self.user1)) def test_can_send_message_to_other_user(self): self.assertTrue(expr=self.user1.has_perm(perm='im.send_message', obj=self.user2)) def test_cannot_send_message_to_other_user_if_blocked(self): Block.objects.block(blocker=self.user2, blocked=self.user1) self.assertFalse(expr=self.user1.has_perm(perm='im.send_message', obj=self.user2)) self.assertFalse(expr=self.user2.has_perm(perm='im.send_message', obj=self.user1))
def set_up(self): super().set_up() self.user1 = ActiveUserFactory() self.user2 = ActiveUserFactory() self.user3 = ActiveUserFactory() self.chat_1_2 = ChatFactory(ent1=self.user1, ent2=self.user2) self.chat_1_3 = ChatFactory(ent1=self.user1, ent2=self.user3)
class UnlikeTestCase(SiteTestCase): def set_up(self): super().set_up() self.user = ActiveUserFactory() self.other_user = ActiveUserFactory() self.anon = AnonymousUser() def test_anonymous_cannot_unlike(self): self.assertFalse(expr=self.anon.has_perm(perm='likes.unlike', obj=self.other_user)) def test_user_cannot_unlike_self(self): self.assertFalse(expr=self.user.has_perm(perm='likes.unlike', obj=self.user)) def test_user_cannot_unlike_if_doesnt_like(self): self.assertFalse(expr=self.user.has_perm(perm='likes.unlike', obj=self.other_user)) def test_user_can_unlike_if_likes(self): UserLike.objects.create(from_user=self.user, to_user=self.other_user) self.assertTrue(expr=self.user.has_perm(perm='likes.unlike', obj=self.other_user))
class CancelFriendRequestViewTestCaseMixin(SpeedyCoreFriendsLanguageMixin): def set_up(self): super().set_up() self.first_user = ActiveUserFactory() self.second_user = ActiveUserFactory() self.page_url = '/{}/friends/request/cancel/'.format(self.second_user.slug) self.client.login(username=self.first_user.slug, password=tests_settings.USER_PASSWORD) def test_visitor_cannot_cancel_friend_request(self): self.client.logout() r = self.client.post(path=self.page_url) self.assertRedirects(response=r, expected_url='/login/?next={}'.format(self.page_url)) self.assertIsNone(obj=r.context) def test_user_can_cancel_friend_request(self): Friend.objects.add_friend(from_user=self.first_user, to_user=self.second_user) self.assertEqual(first=FriendshipRequest.objects.count(), second=1) r = self.client.post(path=self.page_url) self.assertRedirects(response=r, expected_url=self.second_user.get_absolute_url(), fetch_redirect_response=False) r = self.client.get(path=self.second_user.get_absolute_url()) self.assertListEqual(list1=list(map(str, r.context['messages'])), list2=[self._youve_cancelled_your_friend_request_success_message]) #####-1 TODO
class LikeTestCase(SiteTestCase): def set_up(self): super().set_up() self.user = ActiveUserFactory() self.other_user = ActiveUserFactory() self.anon = AnonymousUser() def test_anonymous_cannot_like(self): self.assertFalse(expr=self.anon.has_perm(perm='likes.like', obj=self.other_user)) def test_user_cannot_like_self(self): self.assertFalse(expr=self.user.has_perm(perm='likes.like', obj=self.user)) def test_user_can_like(self): self.assertTrue(expr=self.user.has_perm(perm='likes.like', obj=self.other_user)) def test_user_cannot_like_if_blocked(self): Block.objects.block(blocker=self.other_user, blocked=self.user) self.assertFalse(expr=self.user.has_perm(perm='likes.like', obj=self.other_user)) def test_user_cannot_like_twice(self): UserLike.objects.create(from_user=self.user, to_user=self.other_user) self.assertFalse(expr=self.user.has_perm(perm='likes.like', obj=self.other_user))
class UnlikeViewTestCase(SiteTestCase): def set_up(self): super().set_up() self.user = ActiveUserFactory() self.other_user = ActiveUserFactory() self.page_url = '/{}/likes/unlike/'.format(self.other_user.slug) def test_can_unlike(self): self.client.login(username=self.user.slug, password=tests_settings.USER_PASSWORD) self.assertEqual(first=UserLike.objects.count(), second=0) UserLike.objects.create(from_user=self.user, to_user=self.other_user) self.assertEqual(first=UserLike.objects.count(), second=1) r = self.client.post(path=self.page_url) self.assertRedirects(response=r, expected_url=self.other_user.get_absolute_url()) self.assertEqual(first=UserLike.objects.count(), second=0)
def set_up(self): super().set_up() self.user = ActiveUserFactory() self.other_user = ActiveUserFactory() self.page_url = '/{}/likes/unlike/'.format(self.other_user.slug)
def set_up(self): super().set_up() self.user1 = ActiveUserFactory() self.user2 = ActiveUserFactory()
class UserFriendRequestViewTestCaseMixin(SpeedyCoreFriendsLanguageMixin): def set_up(self): super().set_up() self.first_user = ActiveUserFactory() self.second_user = ActiveUserFactory() self.page_url = '/{}/friends/request/'.format(self.second_user.slug) self.same_user_page_url = '/{}/friends/request/'.format(self.first_user.slug) self.client.login(username=self.first_user.slug, password=tests_settings.USER_PASSWORD) def test_visitor_cannot_send_friend_request(self): self.client.logout() r = self.client.post(path=self.page_url) self.assertRedirects(response=r, expected_url='/login/?next={}'.format(self.page_url)) self.assertIsNone(obj=r.context) @unittest.expectedFailure # ~~~~ TODO: fix this test! def test_user_can_send_friend_request(self): r = self.client.post(path=self.page_url) self.assertRedirects(response=r, expected_url=self.second_user.get_absolute_url()) self.assertEqual(first=self.second_user.friendship_requests_received.count(), second=1) self.assertEqual(first=self.first_user.friendship_requests_sent.count(), second=1) friendship_request = self.second_user.friendship_requests_received.first() self.assertEqual(first=friendship_request.from_user, second=self.first_user) self.assertEqual(first=friendship_request.to_user, second=self.second_user) self.assertIsNone(obj=r.context) r = self.client.get(path=self.second_user.get_absolute_url()) self.assertListEqual(list1=list(map(str, r.context['messages'])), list2=[self._friend_request_sent_success_message]) ###### TODO @unittest.expectedFailure # ~~~~ TODO: fix this test! def test_user_cannot_send_friend_request_twice(self): r = self.client.post(path=self.page_url) self.assertRedirects(response=r, expected_url=self.second_user.get_absolute_url()) self.assertEqual(first=self.second_user.friendship_requests_received.count(), second=1) self.assertEqual(first=self.first_user.friendship_requests_sent.count(), second=1) self.assertIsNone(obj=r.context) r = self.client.post(path=self.page_url) self.assertRedirects(response=r, expected_url=self.second_user.get_absolute_url()) self.assertEqual(first=self.second_user.friendship_requests_received.count(), second=1) self.assertEqual(first=self.first_user.friendship_requests_sent.count(), second=1) self.assertIsNone(obj=r.context) r = self.client.get(path=self.second_user.get_absolute_url()) self.assertListEqual(list1=list(map(str, r.context['messages'])), list2=[self._friendship_already_requested_error_message]) ###### TODO self.assertListEqual(list1=list(map(str, r.context['messages'])), list2=["Friendship already requested"])#### # ~~~~ TODO: remove this line! @unittest.expectedFailure # ~~~~ TODO: fix this test! def test_user_cannot_send_friend_request_to_a_friend(self): self.assertFalse(expr=Friend.objects.are_friends(user1=self.first_user, user2=self.second_user)) Friend.objects.add_friend(from_user=self.first_user, to_user=self.second_user).accept() self.assertTrue(expr=Friend.objects.are_friends(user1=self.first_user, user2=self.second_user)) r = self.client.post(path=self.page_url) self.assertRedirects(response=r, expected_url=self.second_user.get_absolute_url()) self.assertEqual(first=self.first_user.friendship_requests_received.count(), second=0) self.assertEqual(first=self.first_user.friendship_requests_sent.count(), second=0) self.assertIsNone(obj=r.context) r = self.client.get(path=self.first_user.get_absolute_url()) self.assertListEqual(list1=list(map(str, r.context['messages'])), list2=[self._users_are_already_friends_error_message]) ###### TODO self.assertListEqual(list1=list(map(str, r.context['messages'])), list2=["Users are already friends"])#### # ~~~~ TODO: remove this line! @unittest.expectedFailure # ~~~~ TODO: fix this test! def test_user_cannot_send_friend_request_to_himself(self): r = self.client.post(path=self.same_user_page_url) self.assertRedirects(response=r, expected_url=self.first_user.get_absolute_url()) self.assertEqual(first=self.first_user.friendship_requests_received.count(), second=0) self.assertEqual(first=self.first_user.friendship_requests_sent.count(), second=0) self.assertIsNone(obj=r.context) r = self.client.get(path=self.first_user.get_absolute_url()) self.assertListEqual(list1=list(map(str, r.context['messages'])), list2=[self._users_cannot_be_friends_with_themselves_error_message]) ###### TODO self.assertListEqual(list1=list(map(str, r.context['messages'])), list2=["Users cannot be friends with themselves"])#### # ~~~~ TODO: remove this line! @unittest.expectedFailure # ~~~~ TODO: fix this test! @override_settings(USER_SETTINGS=get_django_settings_class_with_override_settings(django_settings_class=django_settings.USER_SETTINGS, MAX_NUMBER_OF_FRIENDS_ALLOWED=tests_settings.OVERRIDE_USER_SETTINGS.MAX_NUMBER_OF_FRIENDS_ALLOWED)) def test_user_can_send_friend_request_if_not_maximum(self): # ~~~~ TODO: remove all the following lines. self._1___set_up(django_settings=django_settings) #### ~~~~ TODO: remove this line # print("test_user_can_send_friend_request_if_not_maximum: django_settings.USER_SETTINGS.MAX_NUMBER_OF_FRIENDS_ALLOWED", django_settings.USER_SETTINGS.MAX_NUMBER_OF_FRIENDS_ALLOWED)#### # print("test_user_can_send_friend_request_if_not_maximum: User.settings.MAX_NUMBER_OF_FRIENDS_ALLOWED", User.settings.MAX_NUMBER_OF_FRIENDS_ALLOWED)#### # ~~~~ TODO: remove all the above lines. self.assertEqual(first=User.settings.MAX_NUMBER_OF_FRIENDS_ALLOWED, second=4) for i in range(User.settings.MAX_NUMBER_OF_FRIENDS_ALLOWED - 1): Friend.objects.add_friend(from_user=self.first_user, to_user=ActiveUserFactory()).accept() r = self.client.post(path=self.page_url) self.assertRedirects(response=r, expected_url=self.second_user.get_absolute_url()) self.assertEqual(first=self.second_user.friendship_requests_received.count(), second=1) self.assertEqual(first=self.first_user.friendship_requests_sent.count(), second=1) friendship_request = self.second_user.friendship_requests_received.first() self.assertEqual(first=friendship_request.from_user, second=self.first_user) self.assertEqual(first=friendship_request.to_user, second=self.second_user) self.assertIsNone(obj=r.context) r = self.client.get(path=self.second_user.get_absolute_url()) self.assertListEqual(list1=list(map(str, r.context['messages'])), list2=[self._friend_request_sent_success_message]) ###### TODO @override_settings(USER_SETTINGS=get_django_settings_class_with_override_settings(django_settings_class=django_settings.USER_SETTINGS, MAX_NUMBER_OF_FRIENDS_ALLOWED=tests_settings.OVERRIDE_USER_SETTINGS.MAX_NUMBER_OF_FRIENDS_ALLOWED)) def test_user_cannot_send_friend_request_if_maximum(self): # ~~~~ TODO: remove all the following lines. self._1___set_up(django_settings=django_settings) #### ~~~~ TODO: remove this line # print("test_user_cannot_send_friend_request_if_maximum: django_settings.USER_SETTINGS.MAX_NUMBER_OF_FRIENDS_ALLOWED", django_settings.USER_SETTINGS.MAX_NUMBER_OF_FRIENDS_ALLOWED)#### # print("test_user_cannot_send_friend_request_if_maximum: User.settings.MAX_NUMBER_OF_FRIENDS_ALLOWED", User.settings.MAX_NUMBER_OF_FRIENDS_ALLOWED)#### # ~~~~ TODO: remove all the above lines. self.assertEqual(first=User.settings.MAX_NUMBER_OF_FRIENDS_ALLOWED, second=4) for i in range(User.settings.MAX_NUMBER_OF_FRIENDS_ALLOWED): Friend.objects.add_friend(from_user=self.first_user, to_user=ActiveUserFactory()).accept() r = self.client.post(path=self.page_url) self.assertRedirects(response=r, expected_url=self.second_user.get_absolute_url(), fetch_redirect_response=False) self.assertEqual(first=self.second_user.friendship_requests_received.count(), second=0) self.assertEqual(first=self.first_user.friendship_requests_sent.count(), second=0) self.assertIsNone(obj=r.context) r = self.client.get(path=self.second_user.get_absolute_url()) self.assertListEqual(list1=list(map(str, r.context['messages'])), list2=[self._you_already_have_friends_error_message_by_user_number_of_friends_and_gender(user_number_of_friends=4, gender=self.first_user.get_gender())]) #####-1 TODO
def get_active_user_doron(self): user = ActiveUserFactory(first_name_en="Doron", last_name_en="Matalon", slug="doron-matalon", gender=User.GENDER_FEMALE) user.speedy_match_profile.gender_to_match = [User.GENDER_MALE] user.save_user_and_profile() return user
def set_up(self): super().set_up() self.user = ActiveUserFactory() self.other_user = ActiveUserFactory() self.anon = AnonymousUser()
def get_active_user_jennifer(self): user = ActiveUserFactory(first_name_en="Jennifer", last_name_en="Connelly", slug="jennifer-connelly", gender=User.GENDER_FEMALE) user.save_user_and_profile() return user