OK thanks for your help. I've reviewed through the code, and I had a minor indentation typo that wasn't helping!
Anyway, I worked it down to the lines self.assertContains. You see that full-stop/period at the end of the string it was looking for? That wasn't in the no polls message! That'll teach me for copying and pasting! Thanks for your help! -Paul On Thursday, February 13, 2014 6:30:34 PM UTC, jondbaker wrote: > > Cool, so we're making progress and you're using the test database now. > Since you have two tests failing, I'd comment out the 2nd of the two for > now and focus on getting the first to pass, and then moving on to the > second. Don't try to do too much at once, and do try and understand what > each function/method is doing. > > Firstly, I'm not a fan of assertions like: > self.assertContains(response, "No polls are available.", status_code=200) > ...because it's testing two things at once. I'd break that out in to two > separate statements: > self.assertEqual(response.status_code, 200) > self.assertContains(response, "No polls are available.") > > Run the tests again, and since it's likely still failing at the > assertContains point, I'd comment that out and print out the response and > inspect it manually to see what it actually contains. Perhaps there is a > typo in your 'No polls are available' string, or perhaps the view is > actually returning queryset results. Dig around a bit. Getting comfortable > with tests and good at writing them will give you a deeper understanding of > the framework than simply writing views, models and templates ever wil. > > JDB > > > On Thu, Feb 13, 2014 at 11:17 AM, Paul Sermon > <[email protected]<javascript:> > > wrote: > >> Hmm, you'r right, I think I'm getting confused and attributed the error >> to something it isn't. Ive just ran the test after changing all the polls >> to the future, and I still get the errors. The errors are as follows: >> >> ====================================================================== >> FAIL: test_index_view_with_a_future_poll (polls.tests.PollViewTests) >> ---------------------------------------------------------------------- >> Traceback (most recent call last): >> File "C:\Users\Alienware\Dropbox\coding >> stuff\web\django\mysite\polls\tests.py", line 75, in >> test_index_view_with_a_fu >> ture_poll >> self.assertContains(response, "No polls are available.", >> status_code=200) >> File "C:\Python27\lib\site-packages\django\test\testcases.py", line >> 351, in assertContains >> msg_prefix + "Couldn't find %s in response" % text_repr) >> AssertionError: Couldn't find 'No polls are available.' in response >> >> ====================================================================== >> FAIL: test_index_view_with_no_polls (polls.tests.PollViewTests) >> ---------------------------------------------------------------------- >> Traceback (most recent call last): >> File "C:\Users\Alienware\Dropbox\coding >> stuff\web\django\mysite\polls\tests.py", line 54, in >> test_index_view_with_no_p >> olls >> self.assertContains(response, "No polls are available.") >> File "C:\Python27\lib\site-packages\django\test\testcases.py", line >> 351, in assertContains >> msg_prefix + "Couldn't find %s in response" % text_repr) >> AssertionError: Couldn't find 'No polls are available.' in response >> >> ---------------------------------------------------------------------- >> Ran 8 tests in 0.037s >> >> FAILED (failures=2) >> Destroying test database for alias 'default'... >> >> >> >> >> >> On Thursday, February 13, 2014 5:29:50 PM UTC, jondbaker wrote: >> >>> "setup_test_environment()<https://docs.djangoproject.com/en/1.6/topics/testing/advanced/#django.test.utils.setup_test_environment> >>> installs a template renderer which will allow us to examine some >>> additional attributes on responses such as response.context that >>> otherwise wouldn’t be available. Note that this method *does not* setup >>> a test database, so the following will be run against the existing database >>> and the output may differ slightly depending on what polls you already >>> created." >>> >>> That's from the section you linked to, and it clearly explains that a >>> test database will not be created. Two sections below that is >>> https://docs.djangoproject.com/en/1.6/intro/tutorial05/# >>> testing-our-new-view which demonstrates how to create test cases that >>> inherit from TestCase that can be found and executed by the Django test >>> runner which will also handle creating the test database for you. >>> >>> JDB >>> >>> >>> On Thu, Feb 13, 2014 at 10:20 AM, Paul Sermon >>> <[email protected]>wrote: >>> >>>> yes I am running through the manage.py shell (although initially I did >>>> not). >>>> >>>> I am doing the section: https://docs.djangoproject.com/en/1.6/ >>>> intro/tutorial05/#the-django-test-client >>>> On the response.content line, I get back a line listing the polls made >>>> earlier. >>>> >>>> And I presume that is why the test from the next section fail, because >>>> they are picking up the entries from the database, rather than the test >>>> database. >>>> >>>> I am on windows 7, if that makes any difference. >>>> >>>> >>>> >>>> >>>> On Thursday, February 13, 2014 2:58:37 PM UTC, jondbaker wrote: >>>> >>>>> Are you running your tests on the command line using: >>>>> >>>>> $ python manage.py test polls >>>>> >>>>> ...or are you trying to run them from a Python shell? It'd be helpful >>>>> if you could provide the internal link to the area of the page you linked >>>>> to that you're experiencing the failure at, as well as the output of the >>>>> error you're receiving and the command that causes it. >>>>> >>>>> JDB >>>>> >>>>> >>>>> On Thu, Feb 13, 2014 at 3:19 AM, Paul Sermon >>>>> <[email protected]>wrote: >>>>> >>>>>> This is the tutorial: https://docs.djangoproject.com/en/1.6/intro/ >>>>>> tutorial05/ >>>>>> >>>>>> I've followed the tutorials pretty much to the letter since tutorial >>>>>> one. >>>>>> >>>>>> Thanks for the help! >>>>>> >>>>>> -Paul >>>>>> >>>>>> >>>>>> On Wednesday, February 12, 2014 10:33:16 PM UTC, jondbaker wrote: >>>>>> >>>>>>> You're correct in thinking that tests use a test database that is >>>>>>> independent of your formally defined project database. Without knowing >>>>>>> exactly which Django tutorials you are referring to, I can only assume >>>>>>> that >>>>>>> perhaps you: >>>>>>> >>>>>>> 1) Have defined initial_data.json fixtures >>>>>>> 2) Have defined other fixtures that your tests are referencing >>>>>>> (likely in their setUp method) >>>>>>> >>>>>>> If none of the items above are correct, feel free to provide a link >>>>>>> to the tutorial you're going through and I'll take a look. >>>>>>> >>>>>>> JDB >>>>>>> >>>>>>> >>>>>>> On Wed, Feb 12, 2014 at 2:33 PM, Paul Sermon < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> So I'm working my way through the Django tutorials, and have got as >>>>>>>> far as the view tests. It seems that when running the test client, >>>>>>>> rather >>>>>>>> than returning data from an empty test database (is this what is meant >>>>>>>> to >>>>>>>> happen?) it is returning polls from the existing database, which has >>>>>>>> the >>>>>>>> polls created in the previous tutorials. This means the tests that >>>>>>>> expect >>>>>>>> empty result sets fail. >>>>>>>> >>>>>>>> Any idea why it would be doing this? Am I correct in thinking the >>>>>>>> test should create it's own empty database to test this? >>>>>>>> >>>>>>>> -- >>>>>>>> You received this message because you are subscribed to the Google >>>>>>>> Groups "Django users" group. >>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>> send an email to [email protected]. >>>>>>>> To post to this group, send email to [email protected]. >>>>>>>> >>>>>>>> Visit this group at http://groups.google.com/group/django-users. >>>>>>>> To view this discussion on the web visit >>>>>>>> https://groups.google.com/d/msgid/django-users/e1782c5f-d8e7 >>>>>>>> -4fc6-93d8-88d01aafbd4f%40googlegroups.com. >>>>>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>>>>> >>>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "Django users" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to [email protected]. >>>>>> To post to this group, send email to [email protected]. >>>>>> Visit this group at http://groups.google.com/group/django-users. >>>>>> To view this discussion on the web visit https://groups.google.com/d/ >>>>>> msgid/django-users/4031d95b-7f80-4839-a25a-800649e33cf1%40goog >>>>>> legroups.com. >>>>>> >>>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Jonathan D. Baker >>>>> Developer >>>>> http://jonathandbaker.com >>>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Django users" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> To post to this group, send email to [email protected]. >>>> Visit this group at http://groups.google.com/group/django-users. >>>> To view this discussion on the web visit https://groups.google.com/d/ >>>> msgid/django-users/0d1f956e-3ba2-4737-a33f-a6dc4610542a% >>>> 40googlegroups.com. >>>> >>>> For more options, visit https://groups.google.com/groups/opt_out. >>>> >>> >>> >>> >>> -- >>> Jonathan D. Baker >>> Developer >>> http://jonathandbaker.com >>> >> -- >> You received this message because you are subscribed to the Google Groups >> "Django users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected]<javascript:> >> . >> Visit this group at http://groups.google.com/group/django-users. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/django-users/7beb683a-9a3f-4eef-a033-40b07db32761%40googlegroups.com >> . >> >> For more options, visit https://groups.google.com/groups/opt_out. >> > > > > -- > Jonathan D. Baker > Developer > http://jonathandbaker.com > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/63aebdbb-f497-4d47-b2b3-c3d43d6b2b47%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.

