python - AssertionError: False is not true (Django version 1.8.3) -


i have been trying find out what's going on code have created in django 1.8.3...when using django's test runner (and more command: python manage.py test predsite) getting same error message:

file "c:\users\dimitris\djangop\oursite\predsite\tests.py", line 117, in test_long_list self.asserttrue('pagination' in response.content) assertionerror: false not true

here code i've created in detail:
oursite(project)>>predsite(app)>>models.py:

from django.db import models django.contrib.auth.models import user import os   def hashed_uploads_dirs(instance, filename):     """returns path md5 hash directory"""     return os.path.join(instance.md5, filename)  class datafile(models.model):     file_id = models.integerfield(default=0, primary_key=true)     datafile = models.filefield(upload_to='.')     user = models.foreignkey(user, default=1)     md5 = models.charfield(max_length=32) 

oursite>>predsite>>views.py:

class filelistview(listview):     model = datafile    queryset = datafile.objects.order_by('-file_id')    context_object_name = "files"    template_name = "index.html"    paginate_by = 5   class fileaddview(formview):     form_class = datafileform    success_url = reverse_lazy('home')    template_name = "add.html"      def form_valid(self, form):       form.save(commit=true)       messages.success(self.request, 'file uploaded!', fail_silently=true)       return super(fileaddview, self).form_valid(form)   class fileaddhashedview(formview):      """this view hashes file contents using md5"""     form_class = datafileform    success_url = reverse_lazy('home')    template_name = "add.html"     def form_valid(self, form):     hash_value = hashlib.md5(form.files.get('datafile').read()).hexdigest()     # form.save returns new datafile instance     instance = form.save(commit=false)     instance.md5 = hash_value     instance.save()     messages.success(         self.request, 'file hashed , uploaded!', fail_silently=true)     return super(fileaddhashedview, self).form_valid(form) 

oursite>>oursite>>urls.py

urlpatterns = patterns('',      url(r'^add/$', fileaddview.as_view(), name='datafile-add'),      url(r'^add/files/$', filelistview.as_view(), name='home'), ) + static(settings.media_url, datafile_root=settings.media_root) 

oursite>>predsite>>context_processors.py

from django.conf import settings   def static_root(request):     """     adds static-root context variables context.      """     return {'static_root': settings.static_root}   def media_root(request):    """    adds media-root context variables context.     """    return {'media_root': settings.media_root} 

oursite>>predsite>>forms.py

class datafileform(forms.modelform):     """upload files form"""     class meta:        model = datafile        exclude = ('md5',) 

oursite>>predsite>>tests.py (i'm providing section error occurs)

def test_long_list(self):     """get paginated home page"""     filename = "./file_{}.txt"     x in xrange(10):         fb = datafile(datafile=filename.format(x))         fb.save()     response = self.client.get(reverse('home'))     self.assertequal(response.status_code, 200)     self.asserttrue('pagination' in response.content)     self.assertequal(         len(response.context['files']),         filelistview.paginate_by) 

and template matters following: oursite>>templates>>index.html

{% extends "basic.html" %}  {% load static %}      {% block page_title %}home{% endblock %}      {% block content %}      <h1>the files</h1>      {% if files %}    <div class="panel">    <table>      <thead>        <tr>          <th>primary key</th>          <th>filename</th>        </tr>      </thead>      <tbody>        {% file in files %}        <tr>          <td>{{ file.file_id }}</td>          <td><a href="{% get_media_prefix %}{{ file.datafile }}">{{ file.datafile }}</a></td>        </tr>        {% endfor %}      </tbody>        </table>  </div>      {% if page_obj.has_other_pages %}  <div class="pagination-centered">    <ul class="pagination">      {% if paginator.has_previous %}      <li class="arrow"><a href="?page={{ paginator.previous_page_number }}">&laquo;</a></li>      {% else %}      <li class="arrow unavailable"><a href="">&laquo;</a></li>      {% endif %}      {% pg in paginator.page_range %}        {% if page_obj.number == pg %}          <li class="current"><a href="?page={{ pg }}">{{ pg }}</a></li>        {% else %}          <li><a href="?page={{ pg }}">{{ pg }}</a></li>        {% endif %}      {% endfor %}      {% if paginator.has_next %}      <li class="arrow"><a href="?page={{ paginator.next_page_number }}">&raquo;</a></li>      {% else %}      <li class="arrow unavailable"><a href="">&raquo;</a></li>      {% endif %}    </ul>  </div>  {% endif %}      {% else %}        <!--                        -->    <!-- database empty -->    <!--                        -->    <div class="panel">    <p>no files uploaded yet &nbsp;&nbsp; :(</p>    <p>(hint: add <a href="{% url 'datafile-add' %}" title="add file">file</a>)</p>  </div>    {% endif %}      {% endblock %}

since it's obvious there class called "pagination" in above template, how possible getting error message while executing test runner?

thanks lot, in advance!!

this because context property of response returns context variables, not html code. instead, test response.context['files'] list items you're looking for, if goal.

try using assertcontains instead. syntax docs suggests may want add following tests:

self.assertcontains(response, 'pagination', html=true) 

Comments