def test_friends(self): u1 = User(username='******', email='*****@*****.**', password='******') u2 = User(username='******', email='*****@*****.**', password='******') u3 = User(username='******', email='*****@*****.**', password='******') db.session.add_all([u1, u2, u3]) db.session.commit() u2.send_friend_request_to(u1) u1.accept_friend_request_from(u2) db.session.commit() with self.client: self.client.post(url_for('auth.login'), data={ 'email': '*****@*****.**', 'password': '******' }) # invalid user response = self.client.get(url_for('core.friends', username='******'), follow_redirects=True) data = response.get_data(as_text=True) self.assertTrue('Invalid user' in data) # successful display response = self.client.get(url_for('core.friends', username='******')) data = response.get_data(as_text=True) self.assertTrue('two' in data) self.assertFalse('three' in data)
def test_send_invite(self): u1 = User(username='******', email='*****@*****.**', password='******') u2 = User(username='******', email='*****@*****.**', password='******') u3 = User(username='******', email='*****@*****.**', password='******') db.session.add_all([u1, u2, u3]) db.session.commit() u1.send_friend_request_to(u2) u2.accept_friend_request_from(u1) db.session.commit() with self.client: self.client.post(url_for('auth.login'), data={ 'email': '*****@*****.**', 'password': '******' }) # invalid user response = self.client.get( url_for('games.send_invite', opponent_username='******')) self.assertEqual(response.status_code, 404) # user who is not a friend response = self.client.get(url_for('games.send_invite', opponent_username='******'), follow_redirects=True) data = response.get_data(as_text=True) self.assertTrue( 'You cannot challenge users who are not your friends.' in data) self.assertEqual(Game.query.count(), 0) # successful post response = self.client.post(url_for('games.send_invite', opponent_username='******'), data={ 'author': current_user, 'guest': u2, 'max_points': 10 }, follow_redirects=True) data = response.get_data(as_text=True) self.assertTrue('Game Invitation Sent' in data) game = Game.query.get(1) self.assertEqual(game.author, u1) self.assertEqual(game.guest, u2) self.assertEqual(game.max_points, 10)
def test_remove_friend(self): u1 = User(username='******', email='*****@*****.**', password='******') u2 = User(username='******', email='*****@*****.**', password='******') u3 = User(username='******', email='*****@*****.**', password='******') db.session.add_all([u1, u2, u3]) db.session.commit() u3.send_friend_request_to(u1) u1.accept_friend_request_from(u3) db.session.commit() with self.client: self.client.post(url_for('auth.login'), data={ 'email': '*****@*****.**', 'password': '******' }) # Invalid User response = self.client.get(url_for('core.remove_friend', username='******'), follow_redirects=True) data = response.get_data(as_text=True) self.assertTrue('Invalid User' in data) # When user is not a friend self.assertFalse(u1.is_friends_with(u2)) response = self.client.get(url_for('core.remove_friend', username='******'), follow_redirects=True) data = response.get_data(as_text=True) self.assertTrue( 'You Are Currently Not Friends with this User' in data) self.assertFalse(u1.is_friends_with(u2)) # success self.assertTrue(u1.is_friends_with(u3)) response = self.client.get(url_for('core.remove_friend', username='******'), follow_redirects=True) data = response.get_data(as_text=True) self.assertFalse(u1.is_friends_with(u3))
def test_send_friend_request(self): u1 = User(username='******', email='*****@*****.**', password='******') u2 = User(username='******', email='*****@*****.**', password='******') u3 = User(username='******', email='*****@*****.**', password='******') u4 = User(username='******', email='*****@*****.**', password='******') u5 = User(username='******', email='*****@*****.**', password='******') db.session.add_all([u1, u2, u3, u4, u5]) db.session.commit() u1.send_friend_request_to(u2) u2.accept_friend_request_from(u1) u1.send_friend_request_to(u3) u4.send_friend_request_to(u1) db.session.commit() with self.client: self.client.post(url_for('auth.login'), data={ 'email': '*****@*****.**', 'password': '******' }) # invalid user response = self.client.get(url_for('core.send_friend_request', username='******'), follow_redirects=True) data = response.get_data(as_text=True) self.assertTrue('Invalid User' in data) # friending oneself response = self.client.get(url_for('core.send_friend_request', username='******'), follow_redirects=True) data = response.get_data(as_text=True) self.assertTrue('You cannot friend yourself' in data) self.assertFalse(u1.sent_friend_request_to(u1)) # if already friends response = self.client.get(url_for('core.send_friend_request', username='******'), follow_redirects=True) data = response.get_data(as_text=True) self.assertTrue('You Are Already Friends With This User' in data) self.assertFalse(u1.sent_friend_request_to(u2)) # if friend request already sent to this user response = self.client.get(url_for('core.send_friend_request', username='******'), follow_redirects=True) data = response.get_data(as_text=True) self.assertTrue( 'You Have Already Sent a Friend Request to This User' in data) self.assertTrue(u1.sent_friend_request_to(u3)) # if friend request already received from user response = self.client.get(url_for('core.send_friend_request', username='******'), follow_redirects=True) data = response.get_data(as_text=True) self.assertTrue( 'You Have Already Received A Friend Request From This User' in data) self.assertFalse(u1.sent_friend_request_to(u4)) # successful friend request response = self.client.get(url_for('core.send_friend_request', username='******'), follow_redirects=True) data = response.get_data(as_text=True) self.assertTrue('Successfully Sent Friend Request to User' in data) self.assertTrue(u1.sent_friend_request_to(u5))
def test_user(self): u1 = User(username='******', email='*****@*****.**', password='******') u2 = User(username='******', email='*****@*****.**', password='******') u3 = User(username='******', email='*****@*****.**', password='******') u4 = User(username='******', email='*****@*****.**', password='******') display_drawing = Drawing(filename='display_drawing') nondisplay_drawing = Drawing(filename='nondisplay_drawing') display_drawing.display = True nondisplay_drawing.display = False display_drawing.user = u1 nondisplay_drawing.user = u1 db.session.add_all( [u1, u2, u3, u4, display_drawing, nondisplay_drawing]) db.session.commit() u1.send_friend_request_to(u2) u3.send_friend_request_to(u1) u2.accept_friend_request_from(u1) db.session.commit() with self.client: self.client.post(url_for('auth.login'), data={ 'email': '*****@*****.**', 'password': '******' }) # check buttons when on own page response = self.client.get(url_for('core.user', username='******')) self.assertEqual(response.status_code, 200) data = response.get_data(as_text=True) self.assertTrue("1" in data) self.assertFalse("Friends With You" in data) self.assertFalse("Respond to Friend Request" in data) self.assertFalse("Remove Friend" in data) # check buttons on friends page response = self.client.get(url_for('core.user', username='******')) self.assertEqual(response.status_code, 200) data = response.get_data(as_text=True) self.assertTrue("1" in data) self.assertTrue("Friends With You" in data) self.assertFalse("Respond to Friend Request" in data) self.assertTrue("Remove Friend" in data) # check buttons on page of user who has sent you a friend request response = self.client.get(url_for('core.user', username='******')) self.assertEqual(response.status_code, 200) data = response.get_data(as_text=True) self.assertTrue("0" in data) self.assertFalse("Friends With You" in data) self.assertTrue("Respond to Friend Request" in data) self.assertFalse("Remove Friend" in data) # check buttons on non-friend and not friend-requested page response = self.client.get(url_for('core.user', username='******')) self.assertEqual(response.status_code, 200) data = response.get_data(as_text=True) self.assertTrue("0" in data) self.assertFalse("Friends With You" in data) self.assertFalse("Respond to Friend Request" in data) self.assertFalse("Remove Friend" in data)