def test_delete_last_and_only_post_in_thread(self): """Deleting the only post in a thread should delete the thread""" doc = Document.objects.get(pk=1) thread = Thread(title="test", document=doc, creator_id=118533) thread.save() post = Post(thread=thread, content="test", creator=thread.creator) post.save() eq_(1, thread.post_set.count()) post.delete() eq_(0, Thread.objects.filter(pk=thread.id).count())
def test_save_new_post_no_timestamps(self): """ Saving a new post should behave as if auto_add_now was set on created and auto_now set on updated. """ p = Post(thread=self.thread, content='bar', creator=self.user) p.save() now = datetime.datetime.now() self.assertDateTimeAlmostEqual(now, p.created, self.delta) self.assertDateTimeAlmostEqual(now, p.updated, self.delta)
def test_save_new_post_timestamps(self): """ Saving a new post should not allow you to override auto_add_now- and auto_now-like functionality. """ created_ = datetime.datetime(1992, 1, 12, 10, 12, 32) p = Post(thread=self.thread, content='bar', creator=self.user, created=created_, updated=created_) p.save() now = datetime.datetime.now() self.assertDateTimeAlmostEqual(now, p.created, self.delta) self.assertDateTimeAlmostEqual(now, p.updated, self.delta)
def test_last_post_updated(self): """Adding/Deleting the last post in a thread should update the last_post field """ thread = Thread.objects.get(pk=4) user = User.objects.get(pk=118533) # add a new post, then check that last_post is updated new_post = Post(thread=thread, content="test", creator=user) new_post.save() thread = Thread.objects.get(pk=thread.id) eq_(thread.last_post.id, new_post.id) # delete the new post, then check that last_post is updated new_post.delete() thread = Thread.objects.get(pk=thread.id) eq_(thread.last_post.id, 25)