From 4f9268bfb6c58ca5bfacee1318aa7ae6a58d0afb Mon Sep 17 00:00:00 2001 From: Sharoon Thomas Date: Mon, 29 Jul 2013 13:31:15 +0530 Subject: [PATCH] Merge trytond_nereid into nereid Based on issue #30 the package was separated into the python module nereid and the tryton module trytond_nereid. In retrospective this was a bad idea and the mainteinance of the module became a nightmare with most changes requiring two commits on separate repositories. This patch merges the trytond_nereid package back into nereid. --- .travis.yml | 7 -- MANIFEST.in | 11 +- nereid/tests/__init__.py | 3 + .../tests}/templates/from-local.html | 0 .../localhost/site-specific-template.html | 0 .../tests}/templates/tests/exists-both.html | 0 {tests => nereid/tests}/test_templates.py | 0 setup.py | 113 +++++++++++++++--- tests/__init__.py | 14 ++- 9 files changed, 120 insertions(+), 28 deletions(-) create mode 100644 nereid/tests/__init__.py rename {tests => nereid/tests}/templates/from-local.html (100%) rename {tests => nereid/tests}/templates/localhost/site-specific-template.html (100%) rename {tests => nereid/tests}/templates/tests/exists-both.html (100%) rename {tests => nereid/tests}/test_templates.py (100%) diff --git a/.travis.yml b/.travis.yml index 336100a..17a6d18 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,15 +3,8 @@ python: - "2.6" - "2.7" install: -# Install CCY separately because there seems to be an issue -# in their setup.py which prevents installation as dependency - pip install flake8 - - pip install ccy - - pip install pycountry - - pip install mock - python setup.py install -# Install trytond-nereid from github (only on develop) - - pip install git+https://github.com/openlabs/trytond-nereid.git@develop script: - python setup.py test - flake8 . diff --git a/MANIFEST.in b/MANIFEST.in index 32ef050..037fd12 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -6,9 +6,10 @@ include CHANGELOG include MIGRATION include LICENSE include Makefile -include trytond_nereid/*.xml -include *.odt -include *.txt -include locale/*.po include docs/* -include icons/* +include trytond_nereid/*.xml +include trytond_nereid/*.odt +include trytond_nereid/tryton.cfg +include trytond_nereid/locale/*.po +include trytond_nereid/icons/* +graft trytond_nereid/templates diff --git a/nereid/tests/__init__.py b/nereid/tests/__init__.py new file mode 100644 index 0000000..948d6ff --- /dev/null +++ b/nereid/tests/__init__.py @@ -0,0 +1,3 @@ +#This file is part of Tryton & Nereid. The COPYRIGHT file at the top level of +#this repository contains the full copyright notices and license terms. +from .test_templates import suite # noqa diff --git a/tests/templates/from-local.html b/nereid/tests/templates/from-local.html similarity index 100% rename from tests/templates/from-local.html rename to nereid/tests/templates/from-local.html diff --git a/tests/templates/localhost/site-specific-template.html b/nereid/tests/templates/localhost/site-specific-template.html similarity index 100% rename from tests/templates/localhost/site-specific-template.html rename to nereid/tests/templates/localhost/site-specific-template.html diff --git a/tests/templates/tests/exists-both.html b/nereid/tests/templates/tests/exists-both.html similarity index 100% rename from tests/templates/tests/exists-both.html rename to nereid/tests/templates/tests/exists-both.html diff --git a/tests/test_templates.py b/nereid/tests/test_templates.py similarity index 100% rename from tests/test_templates.py rename to nereid/tests/test_templates.py diff --git a/setup.py b/setup.py index 0d97fbd..f06f8f5 100644 --- a/setup.py +++ b/setup.py @@ -1,17 +1,88 @@ #This file is part of Tryton & 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 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." + + +config = ConfigParser.ConfigParser() +config.readfp(open('trytond_nereid/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) + +install_requires = [ + 'pytz', + 'distribute', + 'flask', + 'wtforms', + 'wtforms-recaptcha', + 'babel', + 'speaklater', + 'Flask-Babel', +] + +for dep in info.get('depends', []): + if not re.match(r'(ir|res|webdav)(\W|$)', dep): + install_requires.append('trytond_%s >= %s.%s, < %s.%s' % + (dep, major_version, minor_version, major_version, + minor_version + 1)) +install_requires.append('trytond >= %s.%s, < %s.%s' % + (major_version, minor_version, major_version, minor_version + 1)) -from setuptools import setup setup( - name='Nereid', - version='2.8.0.3', + 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=__doc__, + long_description=open('trytond_nereid/README.rst').read(), classifiers=[ 'Development Status :: 4 - Beta', 'Environment :: Web Environment', @@ -23,29 +94,41 @@ setup( 'Topic :: Internet :: WWW/HTTP :: Dynamic Content', 'Topic :: Software Development :: Libraries :: Python Modules', ], - install_requires=[ - 'distribute', - 'flask', - 'wtforms', - 'wtforms-recaptcha', - 'babel', - 'speaklater', - 'Flask-Babel', - ], + install_requires=install_requires, packages=[ 'nereid', 'nereid.contrib', 'nereid.tests', + 'trytond.modules.nereid', + 'trytond.modules.nereid.tests', ], package_dir={ 'nereid': 'nereid', 'nereid.contrib': 'nereid/contrib', - 'nereid.tests': 'tests', + 'nereid.tests': 'nereid/tests', + 'trytond.modules.nereid': 'trytond_nereid', + 'trytond.modules.nereid.tests': 'trytond_nereid/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.suite', + test_loader='trytond.test_loader:Loader', tests_require=[ 'trytond_nereid_test>=2.8,<2.9', - ] + 'mock', + 'pycountry', + ], + cmdclass={ + 'audit': RunAudit, + }, ) diff --git a/tests/__init__.py b/tests/__init__.py index 948d6ff..76a2955 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -1,3 +1,15 @@ #This file is part of Tryton & Nereid. The COPYRIGHT file at the top level of #this repository contains the full copyright notices and license terms. -from .test_templates import suite # noqa +import unittest +import trytond.tests.test_tryton # noqa + +from nereid.tests import suite as nereid_test_suite +from trytond_nereid.tests import suite as trytond_nereid_test_suite + + +def suite(): + combined_test_suite = unittest.TestSuite([ + nereid_test_suite(), + trytond_nereid_test_suite(), + ]) + return combined_test_suite