221
223
self.assertContainsRe(self.get_log(), "String 'not there' not found")
226
class TestWriteOption(tests.TestCase):
227
"""Tests for writing texts extracted from options in pot format"""
229
def pot_from_option(self, opt, context=None, note="test"):
231
exporter = export_pot._PotExporter(sio)
233
context = export_pot._ModuleContext("nowhere", 0)
234
export_pot._write_option(exporter, context, opt, note)
235
return sio.getvalue()
237
def test_option_without_help(self):
238
opt = option.Option("helpless")
239
self.assertEqual("", self.pot_from_option(opt))
241
def test_option_with_help(self):
242
opt = option.Option("helpful", help="Info.")
243
self.assertContainsString(self.pot_from_option(opt), "\n"
244
"# help of 'helpful' test\n"
247
def test_option_hidden(self):
248
opt = option.Option("hidden", help="Unseen.", hidden=True)
249
self.assertEqual("", self.pot_from_option(opt))
251
def test_option_context_missing(self):
252
context = export_pot._ModuleContext("remote.py", 3)
253
opt = option.Option("metaphor", help="Not a literal in the source.")
254
self.assertContainsString(self.pot_from_option(opt, context),
256
"# help of 'metaphor' test\n")
258
def test_option_context_string(self):
260
context = export_pot._ModuleContext("local.py", 3, ({}, {s: 17}))
261
opt = option.Option("example", help=s)
262
self.assertContainsString(self.pot_from_option(opt, context),
264
"# help of 'example' test\n")
266
def test_registry_option_title(self):
267
opt = option.RegistryOption.from_kwargs("group", help="Pick one.",
269
pot = self.pot_from_option(opt)
270
self.assertContainsString(pot, "\n"
271
"# title of 'group' test\n"
272
"msgid \"Choose!\"\n")
273
self.assertContainsString(pot, "\n"
274
"# help of 'group' test\n"
275
"msgid \"Pick one.\"\n")
277
def test_registry_option_title_context_missing(self):
278
context = export_pot._ModuleContext("theory.py", 3)
279
opt = option.RegistryOption.from_kwargs("abstract", title="Unfounded!")
280
self.assertContainsString(self.pot_from_option(opt, context),
282
"# title of 'abstract' test\n")
284
def test_registry_option_title_context_string(self):
286
context = export_pot._ModuleContext("practice.py", 3, ({}, {s: 144}))
287
opt = option.RegistryOption.from_kwargs("concrete", title=s)
288
self.assertContainsString(self.pot_from_option(opt, context),
289
"#: practice.py:144\n"
290
"# title of 'concrete' test\n")
292
def test_registry_option_value_switches(self):
293
opt = option.RegistryOption.from_kwargs("switch", help="Flip one.",
294
value_switches=True, enum_switch=False,
295
red="Big.", green="Small.")
296
pot = self.pot_from_option(opt)
297
self.assertContainsString(pot, "\n"
298
"# help of 'switch' test\n"
299
"msgid \"Flip one.\"\n")
300
self.assertContainsString(pot, "\n"
301
"# help of 'switch=red' test\n"
303
self.assertContainsString(pot, "\n"
304
"# help of 'switch=green' test\n"
305
"msgid \"Small.\"\n")
307
def test_registry_option_value_switches_hidden(self):
308
reg = registry.Registry()
311
reg.register("new", 1, "Current.")
312
reg.register("old", 0, "Legacy.", info=Hider())
313
opt = option.RegistryOption("protocol", "Talking.", reg,
314
value_switches=True, enum_switch=False)
315
pot = self.pot_from_option(opt)
316
self.assertContainsString(pot, "\n"
317
"# help of 'protocol' test\n"
318
"msgid \"Talking.\"\n")
319
self.assertContainsString(pot, "\n"
320
"# help of 'protocol=new' test\n"
321
"msgid \"Current.\"\n")
322
self.assertNotContainsString(pot, "'protocol=old'")
224
325
class PoEntryTestCase(tests.TestCase):