This file is indexed.

/usr/share/doc/python-testfixtures-doc/html/django.html is in python-testfixtures-doc 4.14.3-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>Testing when using django &#8212; testfixtures 4.14.3 documentation</title>
    
    <link rel="stylesheet" href="_static/classic.css" type="text/css" />
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
    
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    './',
        VERSION:     '4.14.3',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true,
        SOURCELINK_SUFFIX: '.txt'
      };
    </script>
    <script type="text/javascript" src="_static/jquery.js"></script>
    <script type="text/javascript" src="_static/underscore.js"></script>
    <script type="text/javascript" src="_static/doctools.js"></script>
    <link rel="index" title="Index" href="genindex.html" />
    <link rel="search" title="Search" href="search.html" />
    <link rel="next" title="Testing with zope.component" href="components.html" />
    <link rel="prev" title="Testing use of the subprocess package" href="popen.html" /> 
  </head>
  <body role="document">
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="components.html" title="Testing with zope.component"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="popen.html" title="Testing use of the subprocess package"
             accesskey="P">previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="index.html">testfixtures 4.14.3 documentation</a> &#187;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <div class="section" id="testing-when-using-django">
<h1>Testing when using django<a class="headerlink" href="#testing-when-using-django" title="Permalink to this headline">ΒΆ</a></h1>
<p>Django&#8217;s ORM has an unfortunate implementation choice to consider
<a class="reference external" href="https://docs.djangoproject.com/en/1.10/ref/models/instances.html#django.db.models.Model" title="(in Django v1.10)"><code class="xref py py-class docutils literal"><span class="pre">Model</span></code></a> instances to be identical as long as their
primary keys are the same:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">testfixtures.tests.test_django.models</span> <span class="k">import</span> <span class="n">SampleModel</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">SampleModel</span><span class="p">(</span><span class="nb">id</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span> <span class="o">==</span> <span class="n">SampleModel</span><span class="p">(</span><span class="nb">id</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
<span class="go">True</span>
</pre></div>
</div>
<p>To work around this, <a class="reference internal" href="api.html#module-testfixtures.django" title="testfixtures.django"><code class="xref py py-mod docutils literal"><span class="pre">testfixtures.django</span></code></a> <a class="reference internal" href="comparing.html#comparer-register"><span class="std std-ref">registers</span></a>
a comparer for the django <a class="reference external" href="https://docs.djangoproject.com/en/1.10/ref/models/instances.html#django.db.models.Model" title="(in Django v1.10)"><code class="xref py py-class docutils literal"><span class="pre">Model</span></code></a> class. However,
for this to work, <code class="docutils literal"><span class="pre">ignore_eq=True</span></code> must be passed:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">compare</span><span class="p">(</span><span class="n">SampleModel</span><span class="p">(</span><span class="nb">id</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="mi">1</span><span class="p">),</span> <span class="n">SampleModel</span><span class="p">(</span><span class="nb">id</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="mi">2</span><span class="p">),</span>
<span class="gp">... </span>        <span class="n">ignore_eq</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="gt">Traceback (most recent call last):</span>
 <span class="c">...</span>
<span class="gr">AssertionError</span>: <span class="n">SampleModel not as expected:</span>

<span class="go">same:</span>
<span class="go">[u&#39;id&#39;]</span>

<span class="go">values differ:</span>
<span class="go">&#39;value&#39;: 1 != 2</span>
</pre></div>
</div>
<p>Since the above can quickly become cumbersome, a django-specific version
of <a class="reference internal" href="api.html#testfixtures.compare" title="testfixtures.compare"><code class="xref py py-func docutils literal"><span class="pre">compare()</span></code></a>, with ignoring <code class="docutils literal"><span class="pre">__eq__</span></code> built in, is provided:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">testfixtures.django</span> <span class="k">import</span> <span class="n">compare</span> <span class="k">as</span> <span class="n">django_compare</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">django_compare</span><span class="p">(</span><span class="n">SampleModel</span><span class="p">(</span><span class="nb">id</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="mi">1</span><span class="p">),</span> <span class="n">SampleModel</span><span class="p">(</span><span class="nb">id</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="mi">2</span><span class="p">))</span>
<span class="gt">Traceback (most recent call last):</span>
 <span class="c">...</span>
<span class="gr">AssertionError</span>: <span class="n">SampleModel not as expected:</span>

<span class="go">same:</span>
<span class="go">[u&#39;id&#39;]</span>

<span class="go">values differ:</span>
<span class="go">&#39;value&#39;: 1 != 2</span>
</pre></div>
</div>
<p>It may also be that you want to ignore fields over which you have no control
and cannot easily mock, such as created or modified times. For this, you
can use the <cite>ignore_fields</cite> option:</p>
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">compare</span><span class="p">(</span><span class="n">SampleModel</span><span class="p">(</span><span class="nb">id</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="mi">1</span><span class="p">),</span> <span class="n">SampleModel</span><span class="p">(</span><span class="nb">id</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">value</span><span class="o">=</span><span class="mi">2</span><span class="p">),</span>
<span class="gp">... </span>        <span class="n">ignore_eq</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">ignore_fields</span><span class="o">=</span><span class="p">[</span><span class="s1">&#39;value&#39;</span><span class="p">])</span>
</pre></div>
</div>
<div class="admonition note">
<p class="first admonition-title">Note</p>
<p class="last">The implementation of the comparer for
<a class="reference external" href="https://docs.djangoproject.com/en/1.10/ref/models/instances.html#django.db.models.Model" title="(in Django v1.10)"><code class="xref py py-class docutils literal"><span class="pre">Model</span></code></a> instances ignores fields
that have <code class="docutils literal"><span class="pre">editable</span></code> set to <code class="docutils literal"><span class="pre">False</span></code>.</p>
</div>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
  <h4>Previous topic</h4>
  <p class="topless"><a href="popen.html"
                        title="previous chapter">Testing use of the subprocess package</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="components.html"
                        title="next chapter">Testing with zope.component</a></p>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="_sources/django.txt"
            rel="nofollow">Show Source</a></li>
    </ul>
   </div>
<div id="searchbox" style="display: none" role="search">
  <h3>Quick search</h3>
    <form class="search" action="search.html" method="get">
      <div><input type="text" name="q" /></div>
      <div><input type="submit" value="Go" /></div>
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related" role="navigation" aria-label="related navigation">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="components.html" title="Testing with zope.component"
             >next</a> |</li>
        <li class="right" >
          <a href="popen.html" title="Testing use of the subprocess package"
             >previous</a> |</li>
        <li class="nav-item nav-item-0"><a href="index.html">testfixtures 4.14.3 documentation</a> &#187;</li> 
      </ul>
    </div>
    <div class="footer" role="contentinfo">
        &#169; Copyright 2008-2017 Simplistix Ltd, 2016-2017 Chris Withers.
      Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.5.6.
    </div>
  </body>
</html>