diff options
Diffstat (limited to 'setup.py')
-rwxr-xr-x | setup.py | 104 |
1 files changed, 39 insertions, 65 deletions
@@ -1,73 +1,40 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- +import codecs import os import re import sys -from distutils.core import setup -from distutils import cmd -root = os.path.abspath(os.path.dirname(__file__)) +from setuptools import setup -def get_version(*module_dir_components): - version_re = re.compile(r"^__version__ = ['\"](.*)['\"]$") - module_root = os.path.join(root, *module_dir_components) - module_init = os.path.join(module_root, '__init__.py') - with open(module_init, 'r') as f: +root_dir = os.path.abspath(os.path.dirname(__file__)) + + +def get_version(package_name): + version_re = re.compile(r"^__version__ = [\"']([\w_.-]+)[\"']$") + package_components = package_name.split('.') + init_path = os.path.join(root_dir, *(package_components + ['__init__.py'])) + with codecs.open(init_path, 'r', 'utf-8') as f: for line in f: match = version_re.match(line[:-1]) if match: return match.groups()[0] return '0.1.0' -VERSION = get_version('factory') - - -class test(cmd.Command): - """Run the tests for this package.""" - command_name = 'test' - description = 'run the tests associated with the package' - - user_options = [ - ('test-suite=', None, "A test suite to run (defaults to 'tests')"), - ] - - def initialize_options(self): - self.test_runner = None - self.test_suite = None - def finalize_options(self): - self.ensure_string('test_suite', 'tests') +if sys.version_info[0:2] < (2, 7): # pragma: no cover + test_loader = 'unittest2:TestLoader' +else: + test_loader = 'unittest:TestLoader' - def run(self): - """Run the test suite.""" - try: - import unittest2 as unittest - except ImportError: - import unittest - if self.verbose: - verbosity=1 - else: - verbosity=0 - - loader = unittest.TestLoader() - suite = unittest.TestSuite() - - if self.test_suite == 'tests': - for test_module in loader.discover('.'): - suite.addTest(test_module) - else: - suite.addTest(loader.loadTestsFromName(self.test_suite)) - - result = unittest.TextTestRunner(verbosity=verbosity).run(suite) - if not result.wasSuccessful(): - sys.exit(1) +PACKAGE = 'factory' setup( name='factory_boy', - version=VERSION, + version=get_version(PACKAGE), description="A verstile test fixtures replacement based on thoughtbot's factory_girl for Ruby.", author='Mark Sandstrom', author_email='mark@deliciouslynerdy.com', @@ -77,22 +44,29 @@ setup( keywords=['factory_boy', 'factory', 'fixtures'], packages=['factory'], license='MIT', + setup_requires=[ + 'setuptools>=0.8', + ], + tests_require=[ + 'mock', + ], classifiers=[ - 'Development Status :: 5 - Production/Stable', - 'Intended Audience :: Developers', - 'Framework :: Django', - 'License :: OSI Approved :: MIT License', - 'Operating System :: OS Independent', - 'Programming Language :: Python', - 'Programming Language :: Python :: 2', - 'Programming Language :: Python :: 2.6', - 'Programming Language :: Python :: 2.7', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.2', - 'Programming Language :: Python :: 3.3', - 'Programming Language :: Python :: Implementation :: PyPy', - 'Topic :: Software Development :: Testing', - 'Topic :: Software Development :: Libraries :: Python Modules' + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "Framework :: Django", + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.6", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.2", + "Programming Language :: Python :: 3.3", + "Programming Language :: Python :: Implementation :: PyPy", + "Topic :: Software Development :: Testing", + "Topic :: Software Development :: Libraries :: Python Modules" ], - cmdclass={'test': test}, + test_suite='tests', + test_loader=test_loader, ) |