162 lines
4.8 KiB
Python
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,
|
|
},
|
|
)
|