Пример #1
0
    def test_parse_custom_element(self):
        tmpl = b"""
        <root>
            <example attr1="1" attr2="sdf" />
        </root>
        """

        @registry.element('example')
        class Example(BaseElement):
            pass

        parser = Parser(environment=Environment(loader=None))
        template = parser.parse(tmpl, template_name='test')

        self.assertIsInstance(template.root_element, BaseElement)
        self.assertIsInstance(template.root_element.children[0], Example)
Пример #2
0
    def test_parse_attributes(self):
        tmpl = b"""
        <root xmlns:c="http://example.org">
            <child attr1="val1" c:attr2="val2" />
            <child2></child2>
        </root>
        """
        parser = Parser(environment=Environment(loader=None))
        template = parser.parse(tmpl, template_name='test')

        child1 = template.root_element.children[0]
        self.assertSequenceEqual(list(child1.xml_attrs.keys()),
                                 ['attr1', '{http://example.org}attr2'])
        self.assertSequenceEqual(list(child1.xml_attrs.values()),
                                 ['val1', 'val2'])

        child2 = template.root_element.children[1]
        self.assertEqual(child2.xml_attrs, {})
Пример #3
0
    def test_parse_tree(self):
        tmpl = b"""
        <root>
            <child1>
                <subchild></subchild>
            </child1>
            <child2>
                <subchild></subchild>
                <subchildd></subchildd>
            </child2>
        </root>
        """
        parser = Parser(environment=Environment(loader=None))
        template = parser.parse(tmpl, template_name='test')

        root = template.root_element
        self.assertIsInstance(root, BaseElement)
        self.assertEqual(root.parent, None)
        self.assertEqual(len(root.children), 2)
        self.assertEqual(root.children[0].xml_tag, 'child1')
        self.assertEqual(root.children[1].xml_tag, 'child2')
        self.assertEqual(len(root.children[0].children), 1)
        self.assertEqual(len(root.children[1].children), 2)
Пример #4
0
    def test_parse_text(self):
        tmpl = b"""
        <root>
            some 
            example text
            <child1>child1</child1>
            exmaple2
            <child2>child2</child2>
        </root>
        """
        parser = Parser(environment=Environment(loader=None))
        template = parser.parse(tmpl, template_name='test')

        root = template.root_element
        self.assertEqual(len(root.children), 5)
        self.assertIsInstance(root.children[0], AnonymusElement)
        self.assertEqual(root.children[0].text, 'some')
        self.assertIsInstance(root.children[1], AnonymusElement)
        self.assertEqual(root.children[1].text, 'example text')
        self.assertIsInstance(root.children[3], AnonymusElement)
        self.assertEqual(root.children[3].text, 'exmaple2')

        self.assertEqual(root.children[2].children[0].text, 'child1')
        self.assertEqual(root.children[4].children[0].text, 'child2')
Пример #5
0
 def test_first(self):
     tmpl = {
         'tagName':
         'body',
         'attrs': {},
         'children': [
             '\n        ', {
                 'tagName':
                 'DS-CHAPTER',
                 'attrs': {
                     'style': 'width: 170mm; display: block;',
                     'b:valami': 'document.ugyfelnev'
                 },
                 'children': [
                     '\n            ', {
                         'tagName':
                         'DS-HEADERS',
                         'attrs': {},
                         'children': [
                             '\n                ', {
                                 'tagName':
                                 'DS-HEADER',
                                 'attrs': {
                                     'page-sequence': 'all'
                                 },
                                 'children': [
                                     '\n                    ', {
                                         'tagName': 'IMG',
                                         'attrs': {
                                             'src':
                                             'assets/img/cib_logo.png',
                                             'style':
                                             'width: 48mm; margin-top: 10mm;'
                                         },
                                         'children': []
                                     }, '\n                '
                                 ]
                             }, '\n            '
                         ]
                     }, '\n            ', {
                         'tagName':
                         'DS-BODY',
                         'attrs': {
                             'style': 'border: 1px solid black;'
                         },
                         'children': [
                             '\n                ', {
                                 'tagName':
                                 'DS-TEXTBOX',
                                 'attrs': {
                                     'style': 'width: 100%; margin: 1mm 0;'
                                 },
                                 'children': [
                                     '\n                    ', {
                                         'tagName':
                                         'H3',
                                         'attrs': {},
                                         'children': [
                                             'Tisztelt ', {
                                                 'tagName': 'DS-VAR',
                                                 'attrs': {
                                                     'b:text':
                                                     'document.ugyfelnev'
                                                 },
                                                 'children':
                                                 ['[Ügyfélnév]']
                                             }, '! '
                                         ]
                                     }, '\n                    ', {
                                         'tagName':
                                         'P',
                                         'attrs': {
                                             'style': 'margin-top: 1cm;'
                                         },
                                         'children': [
                                             '\n                        Ezúton értesítjük, hogy a ',
                                             {
                                                 'tagName': 'DS-VAR',
                                                 'attrs': {
                                                     'b:text':
                                                     'document.szerzodesszam'
                                                 },
                                                 'children':
                                                 ['[Szerződésszám]']
                                             },
                                             ' számon nyilvántartott szerződése\n                        ',
                                             {
                                                 'tagName':
                                                 'B',
                                                 'attrs': {},
                                                 'children': [{
                                                     'tagName':
                                                     'DS-VAR',
                                                     'attrs': {
                                                         'b:text':
                                                         'document.szerzodes_lejarat_datum'
                                                     },
                                                     'children': [
                                                         '[Szerződés lejárat dátum]'
                                                     ]
                                                 }, ' napon lejár.']
                                             },
                                             '\n                        ', {
                                                 'tagName': 'BR',
                                                 'attrs': {},
                                                 'children': []
                                             },
                                             'Kérjük keresse fel bankfiókunkat.\n                    '
                                         ]
                                     }, '\n                '
                                 ]
                             }, '\n            '
                         ]
                     }, '\n            ', {
                         'tagName':
                         'DS-FOOTERS',
                         'attrs': {},
                         'children': [
                             '\n                ', {
                                 'tagName':
                                 'DS-FOOTER',
                                 'attrs': {
                                     'page-sequence': 'all'
                                 },
                                 'children': [
                                     '\n                    ', {
                                         'tagName': 'DIV',
                                         'attrs': {
                                             'class': 'page_n_of_m'
                                         },
                                         'children': []
                                     }, '\n                    ', {
                                         'tagName':
                                         'DIV',
                                         'attrs': {
                                             'style':
                                             'border-top: 0.8pt solid black; width: 100%; padding-top: 2pt;'
                                         },
                                         'children': [
                                             '\n                        ', {
                                                 'tagName':
                                                 'B',
                                                 'attrs': {},
                                                 'children': [
                                                     '\n                            CIB Bank Zrt. CIB Bank Ltd.\n                        '
                                                 ]
                                             },
                                             '\n                        H-1027 Budapest, Medve utca 4–14. H-1995 Budapest Telefon: (06 1) 423 1000 Fax: (06 1) 489\n                        6500 Nyilvántartó cégbíróság: Fővárosi Törvényszék Cégbírósága Cégjegyzékszám: Cg. 01-10-041004 Adószám: 10136915-4-44\n                        CSASZ: 17781028-5-44 Csoport közösségi adószám: HU17781028 Tőzsdetagság: Budapesti Értéktőzsde Zrt. Tevékenységi\n                        engedély száma: 957/1997/F, III/41. 044-10/2002. BIC (SWIFT) kód: CIBHHUHB\n                    '
                                         ]
                                     }, '\n                    ', {
                                         'tagName': 'IMG',
                                         'attrs': {
                                             'src':
                                             'assets/img/intesa_logo.png',
                                             'style':
                                             'width: 48mm; float: right; margin-top: -3mm;'
                                         },
                                         'children': []
                                     }, '\n                '
                                 ]
                             }, '\n            '
                         ]
                     }, '\n        '
                 ]
             }, '\n    '
         ]
     }
     parser = DictParser(environment=Environment(loader=None))
     template = parser.parse(tmpl, template_name='test')
Пример #6
0
def get_base_environment():
    loader = FileSystemLoader(Path(__file__).parent / 'assets/base')
    env = Environment(loader=loader)
    return env
Пример #7
0
 def test_parse_result(self):
     parser = Parser(environment=Environment(loader=None))
     template = parser.parse(b'<root></root>', template_name='test')
     self.assertIsInstance(template, Template)
     self.assertIsInstance(template.root_element, BaseElement)
Пример #8
0
 def test_initialize(self):
     env = Environment(loader=FileSystemLoader('~'))
     self.assertEqual(env.loader.search_path, [Path.home()])