1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
# -*- coding: utf-8 -*-
# vim: sw=4 ts=4 fenc=utf-8
# =============================================================================
# $Id$
# =============================================================================
# $URL$
# $LastChangedDate$
# $Rev$
# $LastChangedBy$
# =============================================================================
# Copyright (C) 2007 Ufsoft.org - Pedro Algarvio <ufs@ufsoft.org>
#
# Please view LICENSE for additional licensing information.
# =============================================================================
import os
import unittest
from babelglade.extract import extract_glade
# from babel.messages.extract import DEFAULT_KEYWORDS
DEFAULT_KEYWORDS = ("gettext", "pgettext")
GLADE2_FILE = "test_extract.glade2.xml"
GTKBUILDER_FILE = "test_extract.gtkbuilder.xml"
def relative(test_file):
return os.path.join(os.path.dirname(__file__), test_file)
class GladeExtractTests(unittest.TestCase):
def test_glade2_yield_four_item_tuples_with_keywords(self):
with open(relative(GLADE2_FILE), "r") as fp:
extracted = extract_glade(fp, DEFAULT_KEYWORDS, None, {})
extracted = list(extracted)
assert len(extracted) > 0, "extract_glade is not respecting presence of keywords"
for entry in extracted:
assert len(entry) == 4, "extract_glade did not return a tuple of length 4"
def test_glade2_yield_no_tuples_without_keywords(self):
with open(relative(GLADE2_FILE), "r") as fp:
extracted = extract_glade(fp, (), None, {})
extracted = list(extracted)
assert len(extracted) == 0, "extract_glade is not respecting absence of keywords"
def test_gtkbuilder_yield_pgettext_tuples_for_elems_with_context(self):
with open(relative(GTKBUILDER_FILE), "r") as fp:
extracted = extract_glade(fp, ["pgettext"], None, {})
extracted = list(extracted)
assert len(extracted) == 2, "extract_glade is not handling elems with context like pgettext"
for entry in extracted:
assert len(entry) == 4, "extract_glade did not return a tuple of length 4"
lineno, funcname, message, comments = entry
assert funcname == "pgettext", "extract_glade is not returning the right funcname (pgettext) for elems with context"
assert isinstance(message, tuple) or isinstance(message, list), "extract_glade is not returning a tuple or a list when pretending it extracted from pgettext()"
assert len(message) == 2, "extract_glade is not returning (ctx, msg) when pretending it extracted from pgettext()"
def test_gtkbuilder_yield_gettext_tuples_for_elems_without_context(self):
with open(relative(GTKBUILDER_FILE), "r") as fp:
extracted = extract_glade(fp, ["gettext"], None, {})
extracted = list(extracted)
assert len(extracted) == 1, "extract_glade is not handling elems without context like gettext"
for entry in extracted:
assert len(entry) == 4, "extract_glade did not return a tuple of length 4"
lineno, funcname, message, comments = entry
assert funcname == "gettext", "extract_glade is not returning the right funcname (gettext) for elems without any context"
|