1 | #!/usr/bin/env python
|
---|
2 | """Distutils installer for testtools."""
|
---|
3 |
|
---|
4 | from distutils.core import setup
|
---|
5 | import email
|
---|
6 | import os
|
---|
7 |
|
---|
8 | import testtools
|
---|
9 |
|
---|
10 |
|
---|
11 | def get_revno():
|
---|
12 | import bzrlib.workingtree
|
---|
13 | t = bzrlib.workingtree.WorkingTree.open_containing(__file__)[0]
|
---|
14 | return t.branch.revno()
|
---|
15 |
|
---|
16 |
|
---|
17 | def get_version_from_pkg_info():
|
---|
18 | """Get the version from PKG-INFO file if we can."""
|
---|
19 | pkg_info_path = os.path.join(os.path.dirname(__file__), 'PKG-INFO')
|
---|
20 | try:
|
---|
21 | pkg_info_file = open(pkg_info_path, 'r')
|
---|
22 | except (IOError, OSError):
|
---|
23 | return None
|
---|
24 | try:
|
---|
25 | pkg_info = email.message_from_file(pkg_info_file)
|
---|
26 | except email.MessageError:
|
---|
27 | return None
|
---|
28 | return pkg_info.get('Version', None)
|
---|
29 |
|
---|
30 |
|
---|
31 | def get_version():
|
---|
32 | """Return the version of testtools that we are building."""
|
---|
33 | version = '.'.join(
|
---|
34 | str(component) for component in testtools.__version__[0:3])
|
---|
35 | phase = testtools.__version__[3]
|
---|
36 | if phase == 'final':
|
---|
37 | return version
|
---|
38 | pkg_info_version = get_version_from_pkg_info()
|
---|
39 | if pkg_info_version:
|
---|
40 | return pkg_info_version
|
---|
41 | revno = get_revno()
|
---|
42 | if phase == 'alpha':
|
---|
43 | # No idea what the next version will be
|
---|
44 | return 'next-r%s' % revno
|
---|
45 | else:
|
---|
46 | # Preserve the version number but give it a revno prefix
|
---|
47 | return version + '-r%s' % revno
|
---|
48 |
|
---|
49 |
|
---|
50 | def get_long_description():
|
---|
51 | manual_path = os.path.join(os.path.dirname(__file__), 'MANUAL')
|
---|
52 | return open(manual_path).read()
|
---|
53 |
|
---|
54 |
|
---|
55 | setup(name='testtools',
|
---|
56 | author='Jonathan M. Lange',
|
---|
57 | author_email='jml+testtools@mumak.net',
|
---|
58 | url='https://launchpad.net/testtools',
|
---|
59 | description=('Extensions to the Python standard library unit testing '
|
---|
60 | 'framework'),
|
---|
61 | long_description=get_long_description(),
|
---|
62 | version=get_version(),
|
---|
63 | classifiers=["License :: OSI Approved :: MIT License"],
|
---|
64 | packages=['testtools', 'testtools.testresult', 'testtools.tests'])
|
---|