new_contents: #!/usr/bin/env python
  
  """Tool for checking if patch contains a regression test.
  
  Pass in gerrit review number as parameter, tool will download branch and run
  modified tests without bug fix.
  """
  
  import string
  import subprocess
  import sys
  
  #TODO(jogo) use proper optParser
  gerrit_number = sys.argv[1]
  
  
  def run(cmd, fail_ok=False):
      print "running: %s" % cmd
      try:
          rval = subprocess.check_output(cmd, shell=True)
      except subprocess.CalledProcessError:
          if not fail_ok:
              print "the above command terminated with an error"
              sys.exit(1)
          pass
      return rval
  
  
  test_works = False
  
  original_branch = run("git rev-parse --abbrev-ref HEAD")
  run("git review -d %s" % gerrit_number)
  # run new tests with old code
  run("git checkout HEAD^ nova")
  run("git checkout HEAD nova/tests")
  
  # identify which tests have changed
  tests = run("git whatchanged --format=oneline -1 | grep \"nova/tests\" "
              "| cut -f2").split()
  test_list = []
  for test in tests:
      test_list.append(string.replace(test[0:-3], '/', '.'))
  
  # run new tests, expect them to fail
  expect_failure = run(("tox -epy27 %s 2>&1" % string.join(test_list)),
                       fail_ok=True)
  if "FAILED (id=" in expect_failure:
      test_works = True
  
  # cleanup
  run("git checkout HEAD nova")
  new_branch = run("git status | head -1 | cut -d ' ' -f 4")
  run("git checkout %s" % original_branch)
  run("git branch -D %s" % new_branch)
  
  
  if test_works:
      print expect_failure
      print  ""
      print  "*******************************"
      print  "SUCCESS: test covers regression"
  else:
      print expect_failure
      print ""
      print "***************************************"
      print "FAILURE: test does not cover regression"
      sys.exit(1)
  
subject: Add regression testing tool