diff options
author | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2012-10-13 02:29:17 -0400 |
---|---|---|
committer | Evgeny Fadeev <evgeny.fadeev@gmail.com> | 2012-10-13 02:29:17 -0400 |
commit | 5fd9a8bc5de3649ca6423377baec96f527f863e5 (patch) | |
tree | 9dc77ec4e147675248e9a01ead751fa45fd889de | |
parent | ea576dbd7ac84fe0867a1e7bf2e7f965be8df2ee (diff) | |
download | askbot-5fd9a8bc5de3649ca6423377baec96f527f863e5.tar.gz askbot-5fd9a8bc5de3649ca6423377baec96f527f863e5.tar.bz2 askbot-5fd9a8bc5de3649ca6423377baec96f527f863e5.zip |
allowed user to post new answer after deleting a previous answer
-rw-r--r-- | askbot/models/__init__.py | 2 | ||||
-rw-r--r-- | askbot/models/question.py | 2 | ||||
-rw-r--r-- | askbot/tests/db_api_tests.py | 21 |
3 files changed, 23 insertions, 2 deletions
diff --git a/askbot/models/__init__.py b/askbot/models/__init__.py index e3afcbb9..f217b816 100644 --- a/askbot/models/__init__.py +++ b/askbot/models/__init__.py @@ -886,7 +886,7 @@ def user_assert_can_delete_answer(self, answer = None): 'you can delete only your own posts' ) low_rep_error_message = _( - 'Sorry, to deleted other people\' posts, a minimum ' + 'Sorry, to delete other people\'s posts, a minimum ' 'reputation of %(min_rep)s is required' ) % \ {'min_rep': askbot_settings.MIN_REP_TO_DELETE_OTHERS_POSTS} diff --git a/askbot/models/question.py b/askbot/models/question.py index 004ffe19..ef35f577 100644 --- a/askbot/models/question.py +++ b/askbot/models/question.py @@ -717,7 +717,7 @@ class Thread(models.Model): def get_answers_by_user(self, user): """regardless - deleted or not""" - return self.posts.filter(post_type = 'answer', author = user) + return self.posts.filter(post_type='answer', author=user, deleted=False) def has_answer_by_user(self, user): #use len to cache the queryset diff --git a/askbot/tests/db_api_tests.py b/askbot/tests/db_api_tests.py index b9e8f5b9..5477990a 100644 --- a/askbot/tests/db_api_tests.py +++ b/askbot/tests/db_api_tests.py @@ -9,6 +9,7 @@ from django.test.client import Client from django.conf import settings from django.contrib.auth.models import AnonymousUser from django import forms +from askbot import exceptions as askbot_exceptions from askbot.tests.utils import AskbotTestCase from askbot.tests.utils import with_settings from askbot import models @@ -38,6 +39,7 @@ class DBApiTests(AskbotTestCase): user = user, question = question, ) + return self.answer def assert_post_is_deleted(self, post): self.assertTrue(post.deleted == True) @@ -82,6 +84,25 @@ class DBApiTests(AskbotTestCase): ) return self.reload_object(q) + def test_user_cannot_post_two_answers(self): + question = self.post_question(user=self.user) + answer = self.post_answer(question=question, user=self.user) + self.assertRaises( + askbot_exceptions.AnswerAlreadyGiven, + self.post_answer, + question=question, + user=self.user + ) + + def test_user_can_post_answer_after_deleting_one(self): + question = self.post_question(user=self.user) + answer = self.post_answer(question=question, user=self.user) + self.user.delete_answer(answer=answer) + answer2 = self.post_answer(question=question, user=self.user) + answers = question.thread.get_answers(user=self.user) + self.assertEqual(answers.count(), 1) + self.assertEqual(answers[0], answer2) + def test_post_anonymous_question(self): q = self.ask_anonymous_question() self.assertTrue(q.is_anonymous) |