Skip to content

Commit

Permalink
Tests pass with i18n ckan#39
Browse files Browse the repository at this point in the history
  • Loading branch information
KrzysztofMadejski committed Mar 21, 2017
1 parent 440def1 commit 7651399
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 8 deletions.
29 changes: 21 additions & 8 deletions ckanext/archiver/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,19 +42,34 @@ def load_config(ckan_ini_filepath):
request_config.host = parsed.netloc + parsed.path
request_config.protocol = parsed.scheme

load_translations(conf.get('ckan.locale_default', 'en'))

def register_translator():

def load_translations(lang):
# Register a translator in this thread so that
# the _() functions in logic layer can work

import ckan.lib.i18n
from paste.registry import Registry
from pylons import translator
from ckan.lib.cli import MockTranslator
global registry
from pylons import request

registry = Registry()
registry.prepare()
global translator_obj
translator_obj = MockTranslator()
registry.register(translator, translator_obj)

class FakePylons:
translator = None
fakepylons = FakePylons()
class FakeRequest:
# Stores details of the translator
environ = {'pylons.pylons': fakepylons}
registry.register(request, FakeRequest())

# create translator
ckan.lib.i18n.set_lang(lang)

# pull out translator and register it
registry.register(translator, fakepylons.translator)

class ArchiverError(Exception):
pass
Expand Down Expand Up @@ -92,7 +107,6 @@ def update_resource(ckan_ini_filepath, resource_id, queue='bulk'):
Archive a resource.
'''
load_config(ckan_ini_filepath)
register_translator()

log = update_resource.get_logger()
log.info('Starting update_resource task: res_id=%r queue=%s', resource_id, queue)
Expand Down Expand Up @@ -120,7 +134,6 @@ def update_package(ckan_ini_filepath, package_id, queue='bulk'):
Archive a package.
'''
load_config(ckan_ini_filepath)
register_translator()

log = update_package.get_logger()
log.info('Starting update_package task: package_id=%r queue=%s',
Expand Down
10 changes: 10 additions & 0 deletions tests/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import mock
from ckan.lib.cli import MockTranslator

def setup():
# Register a mock translator instead of having ckan domain translations defined
patcher = mock.patch('pylons.i18n.translation._get_translator', return_value=MockTranslator())
patcher.start()

def teardown():
mock.patch.stopall()

0 comments on commit 7651399

Please sign in to comment.