trytond-nereid-zz/setup.py

162 lines
4.8 KiB
Python

#!/usr/bin/env python
#This file is part of Tryton and Nereid. The COPYRIGHT file at the top level of
#this repository contains the full copyright notices and license terms.
import re
import os
import ConfigParser
from setuptools import setup, Command
class XMLTests(Command):
"""Runs the tests and save the result to an XML file
Running this requires unittest-xml-reporting which can
be installed using::
pip install unittest-xml-reporting
"""
description = "Run tests with coverage and produce jUnit style report"
user_options = []
def initialize_options(self):
pass
def finalize_options(self):
pass
def run(self):
import coverage
import xmlrunner
cov = coverage.coverage(source=["trytond.modules.nereid"])
cov.start()
from tests import suite
xmlrunner.XMLTestRunner(output="xml-test-results").run(suite())
cov.stop()
cov.save()
cov.xml_report(outfile="coverage.xml")
class RunAudit(Command):
"""Audits source code using PyFlakes for following issues:
- Names which are used but not defined or used before they are defined.
- Names which are redefined without having been used.
"""
description = "Audit source code with PyFlakes"
user_options = []
def initialize_options(self):
pass
def finalize_options(self):
pass
def run(self):
import sys
try:
import pyflakes.scripts.pyflakes as flakes
except ImportError:
print "Audit requires PyFlakes installed in your system."
sys.exit(-1)
warns = 0
# Define top-level directories
dirs = ('.')
for dir in dirs:
for root, _, files in os.walk(dir):
if root.startswith(('./build')):
continue
for file in files:
if file != '__init__.py' and file.endswith('.py'):
warns += flakes.checkPath(os.path.join(root, file))
if warns > 0:
print "Audit finished with total %d warnings." % warns
else:
print "No problems found in sourcecode."
def read(fname):
return open(os.path.join(os.path.dirname(__file__), fname)).read()
config = ConfigParser.ConfigParser()
config.readfp(open('tryton.cfg'))
info = dict(config.items('tryton'))
for key in ('depends', 'extras_depend', 'xml'):
if key in info:
info[key] = info[key].strip().splitlines()
major_version, minor_version, _ = info.get('version', '0.0.1').split('.', 2)
major_version = int(major_version)
minor_version = int(minor_version)
requires = [
'pytz',
]
# Add nereid of the same series as a requirement
requires.append(
'nereid >= %s.%s, < %s.%s' % (
major_version, minor_version, major_version, minor_version + 1
)
)
for dep in info.get('depends', []):
if not re.match(r'(ir|res|webdav)(\W|$)', dep):
requires.append('trytond_%s >= %s.%s, < %s.%s' %
(dep, major_version, minor_version, major_version,
minor_version + 1))
requires.append('trytond >= %s.%s, < %s.%s' %
(major_version, minor_version, major_version, minor_version + 1))
setup(
name='trytond_nereid',
version=info.get('version'),
url='http://nereid.openlabs.co.in/docs/',
license='GPLv3',
author='Openlabs Technologies & Consulting (P) Limited',
author_email='info@openlabs.co.in',
description='Tryton - Web Framework',
long_description=read('README.rst'),
classifiers=[
'Development Status :: 4 - Beta',
'Environment :: Web Environment',
'Intended Audience :: Developers',
'License :: OSI Approved :: GNU General Public License v3 (GPLv3)',
'Operating System :: OS Independent',
'Programming Language :: Python',
'Framework :: Tryton',
'Topic :: Internet :: WWW/HTTP :: Dynamic Content',
'Topic :: Software Development :: Libraries :: Python Modules',
],
install_requires=requires,
packages=[
'trytond.modules.nereid',
'trytond.modules.nereid.tests',
],
package_dir={
'trytond.modules.nereid': '.',
'trytond.modules.nereid.tests': 'tests',
},
package_data = {
'trytond.modules.nereid': info.get('xml', []) \
+ ['tryton.cfg', 'locale/*.po', 'tests/*.rst']
+ ['i18n/*.pot', 'i18n/pt_BR/LC_MESSAGES/*']
+ ['templates/*.*', 'templates/tests/*.*'],
},
zip_safe=False,
platforms='any',
entry_points="""
[trytond.modules]
nereid = trytond.modules.nereid
""",
test_suite='tests',
test_loader='trytond.test_loader:Loader',
tests_require=[
'mock',
'pycountry',
],
cmdclass={
'xmltests': XMLTests,
'audit': RunAudit,
},
)