def test_can_unlike_anon(self, is_authenticated): image = Generators.image() like = Generators.like(image) is_authenticated.return_value = False self.assertFalse(UserService(like.user).can_unlike(image))
def test_can_unlike(self, is_authenticated): is_authenticated.return_value = True image = Generators.image() like = Generators.like(image) like.created_on = timezone.now() - timedelta(minutes=59) like.save() self.assertTrue(UserService(like.user).can_unlike(image))
def test_can_unlike_out_of_window(self, is_authenticated): is_authenticated.return_value = True image = Generators.image() like = Generators.like(image) like.created_on = timezone.now() - timedelta(hours=2) like.save() self.assertFalse(UserService(like.user).can_unlike(image))
def test_can_unlike_too_late(self, is_authenticated): is_authenticated.return_value = True image = Generators.image() like = Generators.like(image) like.created_on = timezone.now() - timedelta(hours=2) like.save() self.assertFalse(UserService(like.user).can_unlike(image)) self.assertEqual("TOO_LATE", UserService(like.user).can_unlike_reason(image))