Created
December 18, 2017 12:48
-
-
Save solidpple/28903d9514e145b7267c19217c38c16e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def create_question(question_text, days): | |
""" | |
Create a question with the given `question_text` and published the | |
given number of `days` offset to now (negative for questions published | |
in the past, positive for questions that have yet to be published). | |
""" | |
time = timezone.now() + datetime.timedelta(days=days) | |
return Question.objects.create(question_text=question_text, pub_date=time) | |
class QuestionIndexViewTests(TestCase): | |
def test_no_questions(self): | |
""" | |
If no questions exist, an appropriate message is displayed. | |
""" | |
response = self.client.get(reverse('polls:index')) | |
self.assertEqual(response.status_code, 200) | |
self.assertContains(response, "No polls are available.") | |
self.assertQuerysetEqual(response.context['latest_question_list'], []) | |
def test_past_question(self): | |
""" | |
Questions with a pub_date in the past are displayed on the | |
index page. | |
""" | |
create_question(question_text="Past question.", days=-30) | |
response = self.client.get(reverse('polls:index')) | |
self.assertQuerysetEqual( | |
response.context['latest_question_list'], | |
['<Question: Past question.>'] | |
) | |
def test_future_question(self): | |
""" | |
Questions with a pub_date in the future aren't displayed on | |
the index page. | |
""" | |
create_question(question_text="Future question.", days=30) | |
response = self.client.get(reverse('polls:index')) | |
self.assertContains(response, "No polls are available.") | |
self.assertQuerysetEqual(response.context['latest_question_list'], []) | |
def test_future_question_and_past_question(self): | |
""" | |
Even if both past and future questions exist, only past questions | |
are displayed. | |
""" | |
create_question(question_text="Past question.", days=-30) | |
create_question(question_text="Future question.", days=30) | |
response = self.client.get(reverse('polls:index')) | |
self.assertQuerysetEqual( | |
response.context['latest_question_list'], | |
['<Question: Past question.>'] | |
) | |
def test_two_past_questions(self): | |
""" | |
The questions index page may display multiple questions. | |
""" | |
create_question(question_text="Past question 1.", days=-30) | |
create_question(question_text="Past question 2.", days=-5) | |
response = self.client.get(reverse('polls:index')) | |
self.assertQuerysetEqual( | |
response.context['latest_question_list'], | |
['<Question: Past question 2.>', '<Question: Past question 1.>'] | |
) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment