summaryrefslogtreecommitdiff
path: root/tests/test_build_gettext.py
diff options
context:
space:
mode:
authorTakayuki Shimizukawa <shimizukawa@gmail.com>2013-01-05 23:38:21 +0900
committerTakayuki Shimizukawa <shimizukawa@gmail.com>2013-01-05 23:38:21 +0900
commitb17c588b0d9c61ba71d299c91c1ac06684f9ebb0 (patch)
treed74f983ea2a76a753490ba0f9cca9d4c18a00dc2 /tests/test_build_gettext.py
parent42c90ee178e5cbc266d7b0406735f0cae6f2d860 (diff)
downloadsphinx-git-b17c588b0d9c61ba71d299c91c1ac06684f9ebb0.tar.gz
Closes #976: Fix gettext does not extract index entries.
Diffstat (limited to 'tests/test_build_gettext.py')
-rw-r--r--tests/test_build_gettext.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/test_build_gettext.py b/tests/test_build_gettext.py
index ab68289e3..dcbff4849 100644
--- a/tests/test_build_gettext.py
+++ b/tests/test_build_gettext.py
@@ -11,6 +11,7 @@
import gettext
import os
+import re
from subprocess import Popen, PIPE
from util import *
@@ -79,3 +80,49 @@ def test_gettext(app):
_ = gettext.translation('test_root', app.outdir, languages=['en']).gettext
assert _("Testing various markup") == u"Testing various markup"
+
+
+@with_app(buildername='gettext',
+ confoverrides={'gettext_compact': False})
+def test_gettext_index_entries(app):
+ # regression test for #976
+ app.builder.build(['i18n/index_entries'])
+
+ _msgid_getter = re.compile(r'msgid "(.*)"').search
+ def msgid_getter(msgid):
+ m = _msgid_getter(msgid)
+ if m:
+ return m.groups()[0]
+ return None
+
+ pot = (app.outdir / 'i18n' / 'index_entries.pot').text(encoding='utf-8')
+ msgids = filter(None, map(msgid_getter, pot.splitlines()))
+
+ expected_msgids = [
+ "i18n with index entries",
+ "index target section",
+ "this is :index:`Newsletter` target paragraph.",
+ "various index entries",
+ "That's all.",
+ "Mailing List",
+ "Newsletter",
+ "Recipients List",
+ "First",
+ "Second",
+ "Third",
+ "Entry",
+ "See",
+ "Module",
+ "Keyword",
+ "Operator",
+ "Object",
+ "Exception",
+ "Statement",
+ "Builtin",
+ ]
+ for expect in expected_msgids:
+ assert expect in msgids
+ msgids.remove(expect)
+
+ # unexpected msgid existent
+ assert msgids == []