Mercurial > hg > simpypi
comparison tests/test.py @ 55:143adebe4caa
install package in a virtualenv and make sure importing is sane
| author | Jeff Hammel <jhammel@mozilla.com> |
|---|---|
| date | Thu, 01 Mar 2012 15:28:34 -0800 |
| parents | 486a4640fc31 |
| children | 2e60fb704454 |
comparison
equal
deleted
inserted
replaced
| 54:73e6956c670a | 55:143adebe4caa |
|---|---|
| 7 import doctest | 7 import doctest |
| 8 import os | 8 import os |
| 9 import shutil | 9 import shutil |
| 10 import sys | 10 import sys |
| 11 import tempfile | 11 import tempfile |
| 12 import virtualenv | |
| 12 from optparse import OptionParser | 13 from optparse import OptionParser |
| 14 | |
| 15 def create_virtualenv(path): | |
| 16 """create a virtualenv and return the path to the python interpreter therein""" | |
| 17 virtualenv.create_environment(path) | |
| 18 for python in (('bin', 'python'), ('Scripts', 'python.exe')): | |
| 19 python = os.path.join(path, *python) | |
| 20 if os.path.exists(python): | |
| 21 return python | |
| 22 raise Exception("Python binary not found in %s" % path) | |
| 13 | 23 |
| 14 def run_tests(raise_on_error=False, report_first=False): | 24 def run_tests(raise_on_error=False, report_first=False): |
| 15 | 25 |
| 16 # add results here | 26 # add results here |
| 17 results = {} | 27 results = {} |
| 18 | 28 |
| 19 # doctest arguments | 29 # doctest arguments |
| 20 directory = os.path.dirname(os.path.abspath(__file__)) | 30 directory = os.path.dirname(os.path.abspath(__file__)) |
| 21 extraglobs = {'here': directory} | 31 extraglobs = {'here': directory, 'create_virtualenv': create_virtualenv} |
| 22 doctest_args = dict(extraglobs=extraglobs, raise_on_error=raise_on_error) | 32 doctest_args = dict(extraglobs=extraglobs, raise_on_error=raise_on_error) |
| 23 if report_first: | 33 if report_first: |
| 24 doctest_args['optionflags'] = doctest.REPORT_ONLY_FIRST_FAILURE | 34 doctest_args['optionflags'] = doctest.REPORT_ONLY_FIRST_FAILURE |
| 25 | 35 |
| 26 # gather tests | 36 # gather tests |
