title: Py.Test test reusability best practices
body: <p>Suppose I'm testing the process of user interaction on a RESTful server. Many of my tests require that I have a valid user on my database, and of course I want to test the user creation. So, in py.test I would write something like this:</p>
  
  <pre><code>def test_user_creation():
      '''user creation goes here'''
  
  def test_user_update_values():
      '''should create an user and validate the new values'''
  </code></pre>
  
  <p>The question is, what's the best practice to reuse the creation process? A fixture? call the first test case and return the user to the second one? Or to replicate everything for each test? The later alternative albeit more isolated can be a PITA if you need to refactor parts of the code forcing you to modify all tests.</p>