Skip to content

Commit 133d267

Browse files
committed
Merge pull request #335 from edx/asadiqbal08/WL-376
WL-376 move i18n runtime logic in parent XBlock
2 parents 0115220 + 2f8c69c commit 133d267

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

xblock/core.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,15 @@ def validate(self):
174174
"""
175175
return Validation(self.scope_ids.usage_id)
176176

177+
def ugettext(self, text):
178+
"""
179+
Translates message/text and returns it in a unicode string.
180+
Using runtime to get i18n service.
181+
"""
182+
runtime_service = self.runtime.service(self, "i18n")
183+
runtime_ugettext = runtime_service.ugettext
184+
return runtime_ugettext(text)
185+
177186

178187
class XBlockAside(XmlSerializationMixin, ScopedStorageMixin, RuntimeServicesMixin, HandlersMixin, SharedBlockBase):
179188
"""

xblock/test/test_runtime.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -581,6 +581,24 @@ def test_service():
581581
runtime.render(tester, 'student_view')
582582

583583

584+
def test_ugettext_calls():
585+
"""
586+
Test ugettext calls in xblock.
587+
"""
588+
runtime = TestRuntime()
589+
block = XBlockWithServices(runtime, scope_ids=Mock(spec=[]))
590+
assert_equals(block.ugettext('test'), u'test')
591+
assert_true(isinstance(block.ugettext('test'), unicode))
592+
593+
# NoSuchServiceError exception should raise if i18n is none/empty.
594+
runtime = TestRuntime(services={
595+
'i18n': None
596+
})
597+
block = XBlockWithServices(runtime, scope_ids=Mock(spec=[]))
598+
with assert_raises(NoSuchServiceError):
599+
block.ugettext('test')
600+
601+
584602
@XBlock.needs("no_such_service_sub")
585603
@XBlock.wants("another_not_service_sub")
586604
class SubXBlockWithServices(XBlockWithServices):

0 commit comments

Comments
 (0)