Use entrypoint console scripts
and tests scripts with scenario. issue8662 review258231002
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
# This file is part of Tryton. The COPYRIGHT file at the top level of
|
||||
# this repository contains the full copyright notices and license terms.
|
||||
@@ -44,7 +44,7 @@ def get_countries():
|
||||
|
||||
|
||||
def update_countries(countries):
|
||||
print("Update countries")
|
||||
print("Update countries", file=sys.stderr)
|
||||
Country = Model.get('country.country')
|
||||
|
||||
records = []
|
||||
@@ -73,7 +73,7 @@ def translate_countries(countries):
|
||||
'iso3166', pycountry.LOCALES_DIR, languages=[code])
|
||||
except IOError:
|
||||
continue
|
||||
print("Update countries %s" % code)
|
||||
print("Update countries %s" % code, file=sys.stderr)
|
||||
with current_config.set_context(language=code):
|
||||
records = []
|
||||
for country in _progress(pycountry.countries):
|
||||
@@ -91,7 +91,7 @@ def get_subdivisions():
|
||||
|
||||
|
||||
def update_subdivisions(countries, subdivisions):
|
||||
print("Update subdivisions")
|
||||
print("Update subdivisions", file=sys.stderr)
|
||||
Subdivision = Model.get('country.subdivision')
|
||||
|
||||
records = []
|
||||
@@ -111,7 +111,7 @@ def update_subdivisions(countries, subdivisions):
|
||||
|
||||
|
||||
def update_subdivisions_parent(subdivisions):
|
||||
print("Update subdivisions parent")
|
||||
print("Update subdivisions parent", file=sys.stderr)
|
||||
Subdivision = Model.get('country.subdivision')
|
||||
|
||||
records = []
|
||||
@@ -119,9 +119,9 @@ def update_subdivisions_parent(subdivisions):
|
||||
code = subdivision.code
|
||||
country_code = subdivision.country_code
|
||||
record = subdivisions[(country_code, code)]
|
||||
if subdivision.parent_code:
|
||||
if subdivision.parent:
|
||||
record.parent = subdivisions[
|
||||
(country_code, subdivision.parent_code)]
|
||||
(country_code, subdivision.parent.code)]
|
||||
else:
|
||||
record.parent = None
|
||||
records.append(record)
|
||||
@@ -138,7 +138,7 @@ def translate_subdivisions(subdivisions):
|
||||
'iso3166-2', pycountry.LOCALES_DIR, languages=[code])
|
||||
except IOError:
|
||||
continue
|
||||
print("Update subdivisions %s" % code)
|
||||
print("Update subdivisions %s" % code, file=sys.stderr)
|
||||
with current_config.set_context(language=code):
|
||||
records = []
|
||||
for subdivision in _progress(pycountry.subdivisions):
|
||||
@@ -151,7 +151,10 @@ def translate_subdivisions(subdivisions):
|
||||
|
||||
def main(database, config_file=None):
|
||||
config.set_trytond(database, config_file=config_file)
|
||||
do_import()
|
||||
|
||||
|
||||
def do_import():
|
||||
countries = get_countries()
|
||||
countries = update_countries(countries)
|
||||
translate_countries(countries)
|
||||
@@ -161,7 +164,7 @@ def main(database, config_file=None):
|
||||
translate_subdivisions(subdivisions)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
def run():
|
||||
parser = ArgumentParser()
|
||||
parser.add_argument('-d', '--database', dest='database')
|
||||
parser.add_argument('-c', '--config', dest='config_file',
|
||||
@@ -171,3 +174,7 @@ if __name__ == '__main__':
|
||||
if not args.database:
|
||||
parser.error('Missing database')
|
||||
main(args.database, args.config_file)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
run()
|
||||
@@ -94,7 +94,10 @@ _fieldnames = ['country', 'postal', 'place', 'name1', 'code1',
|
||||
|
||||
def main(database, codes, config_file=None):
|
||||
config.set_trytond(database, config_file=config_file)
|
||||
do_import(codes)
|
||||
|
||||
|
||||
def do_import(codes):
|
||||
for code in codes:
|
||||
print(code, file=sys.stderr)
|
||||
code = code.upper()
|
||||
@@ -102,7 +105,7 @@ def main(database, codes, config_file=None):
|
||||
import_(fetch(code))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
def run():
|
||||
parser = ArgumentParser()
|
||||
parser.add_argument('-d', '--database', dest='database')
|
||||
parser.add_argument('-c', '--config', dest='config_file',
|
||||
@@ -113,3 +116,7 @@ if __name__ == '__main__':
|
||||
if not args.database:
|
||||
parser.error('Missing database')
|
||||
main(args.database, args.codes, args.config_file)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
run()
|
||||
@@ -51,6 +51,7 @@ for dep in info.get('depends', []):
|
||||
requires.append(get_require_version('trytond_%s' % dep))
|
||||
requires.append(get_require_version('trytond'))
|
||||
|
||||
tests_require = [get_require_version('proteus'), 'pycountry']
|
||||
dependency_links = []
|
||||
if minor_version % 2:
|
||||
dependency_links.append('https://trydevpi.tryton.org/')
|
||||
@@ -79,10 +80,6 @@ setup(name=name,
|
||||
'trytond.modules.country': (info.get('xml', [])
|
||||
+ ['tryton.cfg', 'view/*.xml', 'locale/*.po', 'icons/*.svg']),
|
||||
},
|
||||
scripts=[
|
||||
'scripts/trytond_import_countries',
|
||||
'scripts/trytond_import_zip',
|
||||
],
|
||||
classifiers=[
|
||||
'Development Status :: 5 - Production/Stable',
|
||||
'Environment :: Plugins',
|
||||
@@ -131,7 +128,11 @@ setup(name=name,
|
||||
entry_points="""
|
||||
[trytond.modules]
|
||||
country = trytond.modules.country
|
||||
[console_scripts]
|
||||
trytond_import_countries = trytond.modules.country.scripts.import_countries:run [data]
|
||||
trytond_import_zip = trytond.modules.country.scripts.import_zip:run [GeoNames]
|
||||
""",
|
||||
test_suite='tests',
|
||||
test_loader='trytond.test_loader:Loader',
|
||||
tests_require=tests_require,
|
||||
)
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
==============
|
||||
Country Import
|
||||
==============
|
||||
|
||||
Imports::
|
||||
|
||||
>>> from trytond.tests.tools import activate_modules
|
||||
>>> from trytond.modules.country.scripts import import_countries, import_zip
|
||||
|
||||
Install currency::
|
||||
|
||||
>>> config = activate_modules('country')
|
||||
|
||||
Import countries::
|
||||
|
||||
>>> import_countries.do_import()
|
||||
|
||||
Import ZIP::
|
||||
|
||||
>>> import_zip.do_import(['us'])
|
||||
@@ -1,8 +1,11 @@
|
||||
# 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 doctest
|
||||
import unittest
|
||||
import trytond.tests.test_tryton
|
||||
from trytond.tests.test_tryton import ModuleTestCase
|
||||
from trytond.tests.test_tryton import doctest_teardown
|
||||
from trytond.tests.test_tryton import doctest_checker
|
||||
|
||||
|
||||
class CountryTestCase(ModuleTestCase):
|
||||
@@ -14,4 +17,9 @@ def suite():
|
||||
suite = trytond.tests.test_tryton.suite()
|
||||
suite.addTests(unittest.TestLoader().loadTestsFromTestCase(
|
||||
CountryTestCase))
|
||||
suite.addTests(doctest.DocFileSuite(
|
||||
'scenario_country_import.rst',
|
||||
tearDown=doctest_teardown, encoding='utf-8',
|
||||
checker=doctest_checker,
|
||||
optionflags=doctest.REPORT_ONLY_FIRST_FAILURE))
|
||||
return suite
|
||||
|
||||
Reference in New Issue
Block a user