def test_tasks_sorted_by_compelted(self): completed = Task.create(self.user, "completed", "completed desc") completed.complete(self.user) uncompleted = Task.create(self.user, "uncompleted", "uncompleted desc") data = TodoData(self.user).data() self.assertEqual(uncompleted, data[0]["tasks"][0]) self.assertEqual(completed, data[0]["tasks"][1])
def test_tasks_sorted_newest(self): older = Task.create(self.user, "older", "older desc") newer = Task.create(self.user, "newer", "newer desc") newest = Task.create(self.user, "newest", "newest desc") data = TodoData(self.user).data() self.assertEqual(older, data[0]["tasks"][0]) self.assertEqual(newer, data[0]["tasks"][1]) self.assertEqual(newest, data[0]["tasks"][2])
def test_users_with_no_tasks_ignored(self): has_tasks = User.objects.create_user("hastasks", password="******") no_tasks = User.objects.create_user("notasks", password="******") user_task = Task.create(self.user, "user_task", "desc") has_tasks_task = Task.create(has_tasks, "has_tasks_task", "desc") data = TodoData(self.user).data() self.assertEqual(2, len(data)) self.assertFalse({"user": no_tasks, "tasks": []} in data)
def _create_task(self, request): user = request.user title = request.POST.get("title", "") description = request.POST.get("description", "") new_task = Task.create(user, title, description) return redirect("todo")
def test_user_always_first(self): """ User's list should always be first, even if they have 0 tasks and another user has 1+ tasks. """ other_user = User.objects.create_user("other", password="******") task = Task.create(self.user, "user_task", "desc") data = TodoData(self.user).data() self.assertEqual(self.user, data[0]["user"])
def test_delete_task(self): self.client.login(username="******", password="******") task = Task.create(self.user, "blah", "blah") response = self.client.post(reverse("task"), { "_method": "DELETE", "task_id": 1, }, follow=True) tasks = Task.objects.all() self.assertEqual(0, len(tasks)) self.assertRedirects(response, reverse("todo"))
def test_edit_task_complete(self): self.client.login(username="******", password="******") task = Task.create(self.user, "blah", "blah") response = self.client.post(reverse("task"), { "_method": "PUT", "task_id": 1, "completed": "true" }, follow=True) task.refresh_from_db() self.assertFalse(task.task_open) self.assertRedirects(response, reverse("todo"))
def test_edit_task_all(self): self.client.login(username="******", password="******") task = Task.create(self.user, "blah", "blah") response = self.client.post(reverse("task"), { "_method": "PUT", "task_id": 1, "title": "new title", "description": "new desc", }, follow=True) task.refresh_from_db() self.assertEqual("new title", task.title) self.assertEqual("new desc", task.description) self.assertRedirects(response, reverse("todo"))
def test_users_sorted_by_number_of_tasks(self): user_little = User.objects.create_user("little", password="******") user_lots = User.objects.create_user("lots", password="******") Task.create(user_little, "title1", "desc1") Task.create(user_lots, "title2", "desc2") Task.create(user_lots, "title3", "desc3") data = TodoData(self.user).data() self.assertEqual(user_lots, data[1]["user"]) self.assertEqual(user_little, data[2]["user"])
def setUp(self): self.user = User.objects.create_user("ronan", password="******") self.task = Task.create(self.user, "Test Title", "Test Desc")