title: What is the difference between `assertIn` and `assertContains` in Django?
body: <p>I am studying some Django testing codes and I find <code>assertIn</code> and <code>assertContains</code> quite similar, I read the <a href="https://docs.djangoproject.com/en/2.2/topics/testing/tools/" rel="noreferrer">documentation</a> wherein they didn't say anything about <code>assertIn</code> or maybe I couldn't find it. </p>
  
  <p>This example below checks if 'john' appears at the content of <code>self.email.body</code></p>
  
  <pre><code>self.assertIn('john', self.email.body)
  </code></pre>
  
  <p>similary this example checks if <code>csrfmiddlewaretoken</code> appears at content of <code>self.response</code></p>
  
  <pre><code>self.assertContains(self.response, 'csrfmiddlewaretoken')
  </code></pre>
  
  <p>Looks like there syntax is different, but there functionality is the same. Hence, what is the difference?</p>
  
  <p>If you could kindly help me understand this with some basic examples, I would really appreciate it. </p>
  
  <p>Thank you so much</p>