class TestFriendsView(TestCase): password = '******' def setUp(self): random_name = str(uuid1()) self.user1 = User(username=random_name, email=random_name + '@m.ru', is_active=True) self.user1.set_password(self.password) self.user1.save() random_name = str(uuid1()) self.user2 = User(username=random_name, email=random_name + '@m.ru', is_active=True) self.user2.set_password(self.password) self.user2.save() def test_view_send_request_for_relationship(self): client = Client() client.login(username=self.user1.username, password=self.password) response = client.post(reverse('friends:user_view', kwargs={'user_id': self.user2.id}), {'action': 'add'}) self.assertEqual(response.status_code, 200) self.assertEqual(response.json()['relationship_status'], RELATIONSHIP_REQUEST_HAS_SENT) self.user1.refresh_from_db() self.user2.refresh_from_db() self.assertEqual(self.user1.check_relationship(self.user2), RELATIONSHIP_REQUEST_HAS_SENT) self.assertEqual(self.user2.check_relationship(self.user1), RELATIONSHIP_WAITING_FOR_ACCEPT) def test_view_cancel_own_send_request_for_relationship(self): client = Client() client.login(username=self.user1.username, password=self.password) response = client.post(reverse('friends:user_view', kwargs={'user_id': self.user2.id}), {'action': 'add'}) self.assertEqual(response.status_code, 200) self.user1.refresh_from_db() self.user2.refresh_from_db() self.assertEqual(self.user1.check_relationship(self.user2), RELATIONSHIP_REQUEST_HAS_SENT) self.assertEqual(self.user2.check_relationship(self.user1), RELATIONSHIP_WAITING_FOR_ACCEPT) response = client.post(reverse('friends:my_friends'), {'action': 'cancel', 'user_id': self.user2.id}) self.assertEqual(response.status_code, 200) self.assertEqual(response.json()['relationship_status'], NO_RELATIONSHIP) self.user1.refresh_from_db() self.user2.refresh_from_db() self.assertEqual(self.user1.check_relationship(self.user2), NO_RELATIONSHIP) self.assertEqual(self.user2.check_relationship(self.user1), NO_RELATIONSHIP) def test_view_cancel_foreign_send_request_for_relationship(self): client = Client() client.login(username=self.user1.username, password=self.password) response = client.post(reverse('friends:user_view', kwargs={'user_id': self.user2.id}), {'action': 'add'}) self.assertEqual(response.status_code, 200) self.user1.refresh_from_db() self.user2.refresh_from_db() self.assertEqual(self.user1.check_relationship(self.user2), RELATIONSHIP_REQUEST_HAS_SENT) self.assertEqual(self.user2.check_relationship(self.user1), RELATIONSHIP_WAITING_FOR_ACCEPT) client.login(username=self.user2.username, password=self.password) response = client.post(reverse('friends:my_friends'), {'action': 'cancel', 'user_id': self.user1.id}) self.assertEqual(response.status_code, 200) self.assertEqual(response.json()['relationship_status'], NO_RELATIONSHIP) self.user1.refresh_from_db() self.user2.refresh_from_db() self.assertEqual(self.user1.check_relationship(self.user2), NO_RELATIONSHIP) self.assertEqual(self.user2.check_relationship(self.user1), NO_RELATIONSHIP) def test_add_to_friends(self): client = Client() client.login(username=self.user1.username, password=self.password) response = client.post(reverse('friends:user_view', kwargs={'user_id': self.user2.id}), {'action': 'add'}) self.assertEqual(response.status_code, 200) self.user1.refresh_from_db() self.user2.refresh_from_db() self.assertEqual(self.user1.check_relationship(self.user2), RELATIONSHIP_REQUEST_HAS_SENT) self.assertEqual(self.user2.check_relationship(self.user1), RELATIONSHIP_WAITING_FOR_ACCEPT) client.login(username=self.user2.username, password=self.password) response = client.post(reverse('friends:my_friends'), {'action': 'accept', 'user_id': self.user1.id}) self.assertEqual(response.status_code, 200) self.assertEqual(response.json()['relationship_status'], RELATIONSHIP_FRIENDS) self.user1.refresh_from_db() self.user2.refresh_from_db() self.assertEqual(self.user1.check_relationship(self.user2), RELATIONSHIP_FRIENDS) self.assertEqual(self.user2.check_relationship(self.user1), RELATIONSHIP_FRIENDS) self.assertEqual(self.user1.get_friends()[0].username, self.user2.username) self.assertEqual(self.user2.get_friends()[0].username, self.user1.username) def test_remove_from_friends(self): client = Client() client.login(username=self.user1.username, password=self.password) response = client.post(reverse('friends:user_view', kwargs={'user_id': self.user2.id}), {'action': 'add'}) self.assertEqual(response.status_code, 200) self.user1.refresh_from_db() self.user2.refresh_from_db() self.assertEqual(self.user1.check_relationship(self.user2), RELATIONSHIP_REQUEST_HAS_SENT) self.assertEqual(self.user2.check_relationship(self.user1), RELATIONSHIP_WAITING_FOR_ACCEPT) client.login(username=self.user2.username, password=self.password) response = client.post(reverse('friends:my_friends'), {'action': 'accept', 'user_id': self.user1.id}) self.assertEqual(response.status_code, 200) self.assertEqual(response.json()['relationship_status'], RELATIONSHIP_FRIENDS) self.user1.refresh_from_db() self.user2.refresh_from_db() self.assertEqual(self.user1.check_relationship(self.user2), RELATIONSHIP_FRIENDS) self.assertEqual(self.user2.check_relationship(self.user1), RELATIONSHIP_FRIENDS) response = client.post(reverse('friends:my_friends'), {'action': 'cancel', 'user_id': self.user1.id}) self.assertEqual(response.status_code, 200) self.assertEqual(response.json()['relationship_status'], NO_RELATIONSHIP) self.user1.refresh_from_db() self.user2.refresh_from_db() self.assertEqual(self.user1.check_relationship(self.user2), NO_RELATIONSHIP) self.assertEqual(self.user2.check_relationship(self.user1), NO_RELATIONSHIP)
class TestUserPermission(TestCase): def setUp(self): random_name = str(uuid1()) self.user1 = User(username=random_name, email=random_name + '@m.ru') self.user1.set_password('12345678') self.user1.save() random_name = str(uuid1()) self.user2 = User(username=random_name, email=random_name + '@m.ru') self.user2.set_password('12345678') self.user2.save() def test_send_request_for_relationship(self): self.user1.accept(self.user2) self.assertEqual(self.user1.check_relationship(self.user2), RELATIONSHIP_REQUEST_HAS_SENT) self.assertEqual(self.user2.check_relationship(self.user1), RELATIONSHIP_WAITING_FOR_ACCEPT) def test_cancel_own_send_request_for_relationship(self): self.user1.accept(self.user2) self.assertEqual(self.user1.check_relationship(self.user2), RELATIONSHIP_REQUEST_HAS_SENT) self.assertEqual(self.user2.check_relationship(self.user1), RELATIONSHIP_WAITING_FOR_ACCEPT) self.user1.cancel(self.user2) self.assertEqual(self.user1.check_relationship(self.user2), NO_RELATIONSHIP) self.assertEqual(self.user2.check_relationship(self.user1), NO_RELATIONSHIP) def test_cancel_foreign_send_request_for_relationship(self): self.user1.accept(self.user2) self.assertEqual(self.user1.check_relationship(self.user2), RELATIONSHIP_REQUEST_HAS_SENT) self.assertEqual(self.user2.check_relationship(self.user1), RELATIONSHIP_WAITING_FOR_ACCEPT) self.user2.cancel(self.user1) self.assertEqual(self.user1.check_relationship(self.user2), NO_RELATIONSHIP) self.assertEqual(self.user2.check_relationship(self.user1), NO_RELATIONSHIP) def test_add_to_friends(self): self.user1.accept(self.user2) self.user2.accept(self.user1) self.assertEqual(self.user1.check_relationship(self.user2), RELATIONSHIP_FRIENDS) self.assertEqual(self.user2.check_relationship(self.user1), RELATIONSHIP_FRIENDS) self.assertEqual(self.user1.get_friends()[0].username, self.user2.username) self.assertEqual(self.user2.get_friends()[0].username, self.user1.username) def test_remove_from_friends(self): self.user1.accept(self.user2) self.user2.accept(self.user1) self.user1.cancel(self.user2) self.assertEqual(self.user1.check_relationship(self.user2), NO_RELATIONSHIP) self.assertEqual(self.user2.check_relationship(self.user1), NO_RELATIONSHIP)