File: test_extract.py

package info (click to toggle)
python-babelgladeextractor 0.7.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 156 kB
  • sloc: python: 248; xml: 101; makefile: 6
file content (66 lines) | stat: -rw-r--r-- 3,314 bytes parent folder | download | duplicates (2)
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"