[ADD] setup.py and basic tests

This commit is contained in:
Guillem Barba 2012-12-18 18:34:36 +01:00
parent 2a1c8b6b22
commit 5ac583caa7
3 changed files with 155 additions and 0 deletions

73
setup.py Normal file
View File

@ -0,0 +1,73 @@
#!/usr/bin/env python
#This file is part of Tryton. The COPYRIGHT file at the top level of
#this repository contains the full copyright notices and license terms.
from setuptools import setup
import re
import os
import ConfigParser
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 = []
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='trytonnan_module_source',
version=info.get('version', '0.0.1'),
description='Tryton module to manage sources of Tryton modules',
long_description=read('README'),
author='Tryton',
url='http://www.nan-tic.com/',
download_url="https://bitbucket.org/nantic/python-pypi_client/downloads",
package_dir={'trytond.modules.module_source': '.'},
packages=[
'trytond.modules.module_source',
'trytond.modules.module_source.tests',
],
package_data={
'trytond.modules.module_source': info.get('xml', []) \
+ ['tryton.cfg', 'locale/*.po', '*.odt', 'icons/*.svg'],
},
classifiers=[
# 'Development Status :: 5 - Production/Stable',
'Environment :: Plugins',
'Framework :: Tryton',
'Intended Audience :: Developers',
'License :: OSI Approved :: GNU General Public License (GPL)',
'Natural Language :: English',
'Operating System :: OS Independent',
'Programming Language :: Python :: 2.6',
'Programming Language :: Python :: 2.7',
'Topic :: Office/Business',
],
license='GPL-3',
install_requires=requires,
extras_require={
'PypiClient': ['pypi_client'],
},
zip_safe=False,
entry_points="""
[trytond.modules]
module_source = trytond.modules.module_source
""",
test_suite='tests',
test_loader='trytond.test_loader:Loader',
)

4
tests/__init__.py Normal file
View File

@ -0,0 +1,4 @@
#This file is part of Tryton. The COPYRIGHT file at the top level of
#this repository contains the full copyright notices and license terms.
from .test_module_source import suite

View File

@ -0,0 +1,78 @@
#!/usr/bin/env python
#This file is part of Tryton. The COPYRIGHT file at the top level of
#this repository contains the full copyright notices and license terms.
import sys
import os
DIR = os.path.abspath(os.path.normpath(os.path.join(__file__,
'..', '..', '..', '..', '..', 'trytond')))
if os.path.isdir(DIR):
sys.path.insert(0, os.path.dirname(DIR))
import unittest
import trytond.tests.test_tryton
from trytond.tests.test_tryton import POOL, DB_NAME, USER, CONTEXT, test_view,\
test_depends
from trytond.transaction import Transaction
class ModuleSourceTestCase(unittest.TestCase):
'''
Test Module Source module.
'''
def setUp(self):
trytond.tests.test_tryton.install_module('module_source')
self.module_source_serie = POOL.get('ir.module.source.serie')
self.module_source = POOL.get('ir.module.source')
self.party = POOL.get('party.party')
def test0005views(self):
'''
Test views.
'''
test_view('module_source')
def test0006depends(self):
'''
Test depends.
'''
test_depends()
def test0010serie(self):
'''
Create serie.
'''
with Transaction().start(DB_NAME, USER,
context=CONTEXT) as transaction:
serie28 = self.module_source_serie.create({
'name': '2.8',
'stable': False,
})
self.assert_(serie28.id)
transaction.cursor.commit()
def test0020source(self):
'''
Create source.
'''
with Transaction().start(DB_NAME, USER,
context=CONTEXT) as transaction:
party1 = self.party.search([], limit=1)
serie1 = self.module_source_serie.search([], limit=1)
source1 = self.module_source.create({
'name': 'Source 1',
'author': party1 and party1[0].id,
'server_serie': serie1[0].id,
})
self.assert_(source1.id)
transaction.cursor.commit()
def suite():
suite = trytond.tests.test_tryton.suite()
suite.addTests(unittest.TestLoader()\
.loadTestsFromTestCase(ModuleSourceTestCase))
return suite
if __name__ == '__main__':
unittest.TextTestRunner(verbosity=2).run(suite())