old_contents: #!/usr/bin/env python
  import glob
  import logging
  import os
  import sys
  import unittest
  
  from trace import fullmodname
  try:
      from tests.utils import cleanup
  except:
      def cleanup():
          pass
  
  sys.path.insert(0, os.getcwd())
  
  verbosity = 1
  if "-q" in sys.argv or '--quiet' in sys.argv:
      verbosity = 0
  if "-v" in sys.argv or '--verbose' in sys.argv:
      verbosity = 2
  
  if verbosity == 0:
    logging.disable(logging.CRITICAL)
  elif verbosity == 1:
    logging.disable(logging.ERROR)
  elif verbosity == 2:
    logging.basicConfig(level=logging.DEBUG)
  
  
  def build_suite(folder):
    # find all of the test modules
    modules = map(fullmodname, glob.glob(os.path.join(folder, 'test_*.py')))
    print "Running the tests found in the following modules:"
    print modules
  
    # load all of the tests into a suite
    try:
        return unittest.TestLoader().loadTestsFromNames(modules)
    except Exception, exception:
        # attempt to produce a more specific message
        for module in modules:
            __import__(module)
        raise
  
  unit_tests = build_suite('tests')
  functional_tests = build_suite('functional_tests')
  
  # run test suites
  unittest.TextTestRunner(verbosity=verbosity).run(unit_tests)
  unittest.TextTestRunner(verbosity=verbosity).run(functional_tests)
  cleanup()
  
new_contents: #!/usr/bin/env python
  import glob
  import logging
  import os
  import sys
  import unittest
  
  from trace import fullmodname
  try:
      from tests.utils import cleanup
  except:
      def cleanup():
          pass
  
  sys.path.insert(0, os.getcwd())
  
  verbosity = 1
  if "-q" in sys.argv or '--quiet' in sys.argv:
      verbosity = 0
  if "-v" in sys.argv or '--verbose' in sys.argv:
      verbosity = 2
  
  if verbosity == 0:
    logging.disable(logging.CRITICAL)
  elif verbosity == 1:
    logging.disable(logging.ERROR)
  elif verbosity == 2:
    logging.basicConfig(level=logging.DEBUG)
  
  
  def build_suite(folder):
    # find all of the test modules
    modules = map(fullmodname, glob.glob(os.path.join(folder, 'test_*.py')))
    print "Running the tests found in the following modules:"
    print modules
  
    # load all of the tests into a suite
    try:
        return unittest.TestLoader().loadTestsFromNames(modules)
    except Exception, exception:
        # attempt to produce a more specific message
        for module in modules:
            __import__(module)
        raise
  
  # build and run unit test suite
  unit_tests = build_suite('tests')
  unittest.TextTestRunner(verbosity=verbosity).run(unit_tests)
  cleanup()
  
  # build and run functional test suite
  functional_tests = build_suite('functional_tests')
  unittest.TextTestRunner(verbosity=verbosity).run(functional_tests)
  cleanup()
  
subject: Split out running unit and functional tests