コード例 #1
0
ファイル: test_helpers.py プロジェクト: apineux/py3o.template
    def test_convertor(self):
        source_odt_filename = pkg_resources.resource_filename(
            'py3o.template', 'tests/templates/py3o_if_parser.odt')
        outfilename = get_secure_filename()

        template = Template(source_odt_filename, outfilename)

        user_vars = template.get_user_variables()
        expressions = template.get_all_user_python_expression()
        py_expression = template.convert_py3o_to_python_ast(expressions)
        convertor = Py3oConvertor()
        data_struct = convertor(py_expression)

        assert 'objects' in data_struct
        objs = data_struct['objects']
        assert 'company_label' in objs
        assert 'name' in objs
        assert isinstance(objs['company_label'], Py3oName)
        assert isinstance(objs['name'], Py3oName)
        #         assert data_struct == Py3oModule(
        #             {
        #                 'objects': Py3oArray(
        #                             {
        #                                 'company_label': Py3oName({}),
        #                                 'name': Py3oName({})
        #                             }
        #                 )
        #             }
        #         )
        expected_vars = [
            'registration.name',
            'registration.company_label',
        ]
        assert set(user_vars) == set(expected_vars)
コード例 #2
0
 def __load_and_convert_template(self, path):
     template_xml = pkg_resources.resource_filename(
         'py3o.template',
         path
     )
     t = Template(template_xml, get_secure_filename())
     expressions = t.get_all_user_python_expression()
     py_expr = t.convert_py3o_to_python_ast(expressions)
     return py_expr
コード例 #3
0
ファイル: test_helpers.py プロジェクト: zeroincombenze/VME
    def test_calc(self):
        """Test date source extraction in ods files"""
        source_ods_filename = pkg_resources.resource_filename(
            "py3o.template", "tests/templates/py3o_simple_calc.ods"
        )
        outfilename = get_secure_filename()

        template = Template(source_ods_filename, outfilename)

        expressions = template.get_all_user_python_expression()
        expected_expressions = [
            'for="item in items"',
            "item.col1",
            "item.col2",
            "item.col3",
            "item.col4",
            "/for",
        ]
        self.assertEqual(expressions, expected_expressions)

        py_expr = Template.convert_py3o_to_python_ast(expressions)
        p = Py3oConvertor()
        res = p(py_expr)
        user_data = {
            "items": [
                Mock(col0="0", col1=1, col2=2.0, col3="?", col4="!"),
                Mock(col0=0, col1=1.0, col2="2", col3="?", col4="!"),
                Mock(col0=0.0, col1="1", col2=2, col3="?", col4="!"),
            ]
        }

        json_dict = res.render(user_data)
        self.assertEqual(
            json_dict,
            {
                "items": [
                    dict(col1=1, col2=2.0, col3="?", col4="!"),
                    dict(col1=1.0, col2="2", col3="?", col4="!"),
                    dict(col1="1", col2=2, col3="?", col4="!"),
                ]
            },
        )
コード例 #4
0
ファイル: test_helpers.py プロジェクト: apineux/py3o.template
    def test_calc(self):
        """Test date source extraction in ods files"""
        source_ods_filename = pkg_resources.resource_filename(
            'py3o.template', 'tests/templates/py3o_simple_calc.ods')
        outfilename = get_secure_filename()

        template = Template(source_ods_filename, outfilename)

        expressions = template.get_all_user_python_expression()
        expected_expressions = [
            'for="item in items"',
            'item.col1',
            'item.col2',
            'item.col3',
            'item.col4',
            '/for',
        ]
        self.assertEqual(expressions, expected_expressions)

        py_expr = Template.convert_py3o_to_python_ast(expressions)
        p = Py3oConvertor()
        res = p(py_expr)
        user_data = {
            'items': [
                Mock(col0='0', col1=1, col2=2.0, col3='?', col4='!'),
                Mock(col0=0, col1=1.0, col2='2', col3='?', col4='!'),
                Mock(col0=0.0, col1='1', col2=2, col3='?', col4='!'),
            ]
        }

        json_dict = res.render(user_data)
        self.assertEqual(
            json_dict, {
                'items': [
                    dict(col1=1, col2=2.0, col3='?', col4='!'),
                    dict(col1=1.0, col2='2', col3='?', col4='!'),
                    dict(col1='1', col2=2, col3='?', col4='!'),
                ]
            })