1# Test message extraction 2from gettext import gettext as _ 3 4# Empty string 5_("") 6 7# Extra parentheses 8(_("parentheses")) 9((_("parentheses"))) 10 11# Multiline strings 12_("Hello, " 13 "world!") 14 15_("""Hello, 16 multiline! 17""") 18 19# Invalid arguments 20_() 21_(None) 22_(1) 23_(False) 24_(x="kwargs are not allowed") 25_("foo", "bar") 26_("something", x="something else") 27 28# .format() 29_("Hello, {}!").format("world") # valid 30_("Hello, {}!".format("world")) # invalid 31 32# Nested structures 33_("1"), _("2") 34arr = [_("A"), _("B")] 35obj = {'a': _("A"), 'b': _("B")} 36{{{_('set')}}} 37 38 39# Nested functions and classes 40def test(): 41 _("nested string") # XXX This should be extracted but isn't. 42 [_("nested string")] 43 44 45class Foo: 46 def bar(self): 47 return _("baz") 48 49 50def bar(x=_('default value')): # XXX This should be extracted but isn't. 51 pass 52 53 54def baz(x=[_('default value')]): # XXX This should be extracted but isn't. 55 pass 56 57 58# Shadowing _() 59def _(x): 60 pass 61 62 63def _(x="don't extract me"): 64 pass 65