Exemple #1
0
    def ShowDialog(self, selectedText, template, template_path):
        self._recentSnippetPath = template_path
        dirname = os.path.dirname(template_path)
        self._selectedText = selectedText
        self._parser = SnippetParser(template, dirname, self._application)
        variables_list = self._parser.getVariables()

        # Get non builtin variables
        variables = sorted([var for var
                            in variables_list
                            if not var.startswith('__')])

        self.dialog.hideVarPanel()
        self.dialog.setSnippetText(template)
        [*map(lambda var: self.dialog.addStringVariable(var), variables)]

        shortTemplateName = self._getShortTemplateName(template_path)
        self.dialog.templateFileName = shortTemplateName
        self.dialog.wikiCommandChecked = False

        # Show dialog if user must enter variable's values
        self._updateResult()
        if (self._application.selectedPage is not None and
                self._application.selectedPage.getTypeString() == u'wiki'):
            self.dialog.setWikiCommandSetVisible(True)
        else:
            self.dialog.setWikiCommandSetVisible(False)

        self.dialog.setFocusToFirstVariable()
        self.dialog.Show()
Exemple #2
0
    def test_error_02(self):
        from snippets.snippetparser import SnippetParser, SnippetException
        template = u'Переменная = {{переменная}}'

        parser = SnippetParser(template, u'.', self._application)

        self.assertRaises(SnippetException, parser.getVariables)
Exemple #3
0
    def test_error_01(self):
        from snippets.snippetparser import SnippetParser, SnippetException
        template = u'Переменная = {{переменная}}'
        selectedText = u''
        vars = {u'переменная': u'Проверка 123'}

        page = self.testPage
        parser = SnippetParser(template, u'.', self._application)

        self.assertRaises(SnippetException, parser.process, selectedText, page,
                          **vars)
    def test_unicode_02(self):
        from snippets.snippetparser import SnippetParser
        template = 'Переменная = {{переменная}}'
        right_result = 'Переменная = '
        selectedText = ''
        page = self.testPage
        vars = {}

        parser = SnippetParser(template, '.', self.application)
        result = parser.process(selectedText, page, **vars)
        self.assertEqual(result, right_result)
    def test_unicode_01(self):
        from snippets.snippetparser import SnippetParser

        page = self.testPage
        template = 'Переменная = {{переменная}}'
        selectedText = ''
        vars = {'переменная': 'Проверка 123'}
        right_result = 'Переменная = Проверка 123'

        parser = SnippetParser(template, '.', self.application)
        result = parser.process(selectedText, page, **vars)
        self.assertEqual(result, right_result)
    def test_global_var_pageid(self):
        from snippets.snippetparser import SnippetParser
        page = self.testPage
        template = '{{__pageid}}'
        selectedText = ''
        vars = {}

        right_result = self.application.pageUidDepot.createUid(page)

        parser = SnippetParser(template, '.', self.application)
        result = parser.process(selectedText, page, **vars)

        self.assertEqual(result, right_result)
    def test_global_var_type(self):
        from snippets.snippetparser import SnippetParser
        page = self.testPage
        template = '{{__type}}'
        selectedText = ''
        vars = {}

        right_result = 'wiki'

        parser = SnippetParser(template, '.', self.application)
        result = parser.process(selectedText, page, **vars)

        self.assertEqual(result, right_result)
Exemple #8
0
    def test_global_var_folder(self):
        from snippets.snippetparser import SnippetParser
        page = self.testPage
        template = u'{{__folder}}'
        selectedText = u''
        vars = {}

        right_result = page.path

        parser = SnippetParser(template, u'.', self._application)
        result = parser.process(selectedText, page, **vars)

        self.assertEqual(result, right_result)
    def test_global_var_tags_01(self):
        from snippets.snippetparser import SnippetParser
        page = self.testPage
        page.tags = ['проверка', 'test', 'тест']
        template = '{{__tags}}'
        selectedText = ''
        vars = {}

        right_result = 'test, проверка, тест'

        parser = SnippetParser(template, '.', self.application)
        result = parser.process(selectedText, page, **vars)

        self.assertEqual(result, right_result)
Exemple #10
0
 def _parseSnippet(self,
                   snippet_text,
                   current_dir,
                   params_dict,
                   selected_text=u''):
     snippet_parser = SnippetParser(snippet_text, current_dir,
                                    self._application)
     try:
         result = snippet_parser.process(selected_text, self.parser.page,
                                         **params_dict)
     except SnippetException as e:
         text = _(u'Snippet error: \n') + e.message
         return self._format_error(text)
     return self.parser.parseWikiMarkup(result)
Exemple #11
0
    def test_global_var_tags_03_empty(self):
        from snippets.snippetparser import SnippetParser
        page = self.testPage
        page.tags = []
        template = u'{{__tags}}'
        selectedText = u''
        vars = {}

        right_result = u''

        parser = SnippetParser(template, u'.', self._application)
        result = parser.process(selectedText, page, **vars)

        self.assertEqual(result, right_result)
Exemple #12
0
    def test_global_var_tags_02(self):
        from snippets.snippetparser import SnippetParser
        page = self.testPage
        page.tags = ['проверка', 'test', 'тест']
        template = '{% for tag in __tags %}{{tag}}---{% endfor %}'
        selectedText = ''
        vars = {}

        right_result = 'test---проверка---тест---'

        parser = SnippetParser(template, '.', self.application)
        result = parser.process(selectedText, page, **vars)

        self.assertEqual(result, right_result)
Exemple #13
0
    def test_global_var_attach(self):
        from snippets.snippetparser import SnippetParser
        page = self.testPage
        template = '{{__attach}}'
        selectedText = ''
        vars = {}

        right_result = Attachment(page).getAttachPath(False)

        parser = SnippetParser(template, '.', self.application)
        result = parser.process(selectedText, page, **vars)

        self.assertEqual(result, right_result)
        self.assertTrue(os.path.exists(right_result))
Exemple #14
0
    def test_global_var_crdate(self):
        from snippets.snippetparser import SnippetParser
        date = datetime(2016, 12, 9, 14, 0)
        page = self.testPage
        page.creationdatetime = date
        template = '{{__crdate}}'
        selectedText = ''
        vars = {}

        right_result = str(date)

        parser = SnippetParser(template, '.', self.application)
        result = parser.process(selectedText, page, **vars)

        self.assertEqual(result, right_result)
Exemple #15
0
    def test_global_var_eddate(self):
        from snippets.snippetparser import SnippetParser
        date = datetime(2016, 12, 9, 14, 23)
        page = self.testPage
        page.datetime = date
        template = u'{{__eddate}}'
        selectedText = u''
        vars = {}

        right_result = unicode(date)

        parser = SnippetParser(template, u'.', self._application)
        result = parser.process(selectedText, page, **vars)

        self.assertEqual(result, right_result)
Exemple #16
0
    def test_vars_01(self):
        from snippets.snippetparser import SnippetParser
        template = '{{varname}}'
        selectedText = ''
        vars = {'varname': 'Проверка 123'}

        right_result = 'Проверка 123'
        right_variables = {'varname'}

        page = self.testPage
        parser = SnippetParser(template, '.', self.application)
        result = parser.process(selectedText, page, **vars)
        variables = parser.getVariables()

        self.assertEqual(result, right_result)
        self.assertEqual(variables, right_variables)
Exemple #17
0
    def test_empty(self):
        from snippets.snippetparser import SnippetParser
        template = ''
        selectedText = ''
        vars = {}

        right_result = ''
        right_variables = set()

        page = self.testPage
        parser = SnippetParser(template, '.', self.application)
        result = parser.process(selectedText, page, **vars)
        variables = parser.getVariables()

        self.assertEqual(result, right_result)
        self.assertEqual(variables, right_variables)
Exemple #18
0
    def test_global_var_childlist_01(self):
        from snippets.snippetparser import SnippetParser
        page = self.testPage
        WikiPageFactory().create(page, "Страница 1", [])
        WikiPageFactory().create(page, "Страница 2", [])
        WikiPageFactory().create(page, "Страница 3", [])

        template = '{{__childlist}}'
        selectedText = ''
        vars = {}

        right_result = 'Страница 1, Страница 2, Страница 3'

        parser = SnippetParser(template, '.', self.application)
        result = parser.process(selectedText, page, **vars)

        self.assertEqual(result, right_result)
Exemple #19
0
    def test_include_01(self):
        from snippets.snippetparser import SnippetParser
        template = '{{varname}} {% include "included" %}'
        selectedText = ''
        vars = {
            'varname': 'Проверка 123',
            'var_inc': 'Абырвалг',
        }

        right_result = 'Проверка 123 Включенный шаблон Абырвалг'
        right_variables = {'varname', 'var_inc'}

        page = self.testPage
        parser = SnippetParser(template, 'testdata/snippets', self.application)
        result = parser.process(selectedText, page, **vars)
        variables = parser.getVariables()

        self.assertEqual(result, right_result)
        self.assertEqual(variables, right_variables)
Exemple #20
0
    def test_vars_02(self):
        from snippets.snippetparser import SnippetParser
        template = u'{{varname}}'
        selectedText = u''
        vars = {
            u'varname': u'Проверка 123',
            u'varname_2': u'Абырвалг',
        }

        right_result = u'Проверка 123'
        right_variables = {u'varname'}

        page = self.testPage
        parser = SnippetParser(template, u'.', self._application)
        result = parser.process(selectedText, page, **vars)
        variables = parser.getVariables()

        self.assertEqual(result, right_result)
        self.assertEqual(variables, right_variables)
Exemple #21
0
    def _onSnippetEditIdle(self, event):
        if not self._snippetChanged:
            return

        path = self._getSelectedItemData().path
        if os.path.isdir(path):
            return

        snippet_text = self._dialog.currentSnippet
        parser = SnippetParser(snippet_text, os.path.dirname(path),
                               self._application)
        try:
            parser.getVariables()
        except SnippetException as e:
            self._dialog.setError(e.message)
        else:
            self._dialog.setError(_(u'No snippet errors'))

        self._snippetChanged = False
Exemple #22
0
    def test_global_var_childlist_02(self):
        from snippets.snippetparser import SnippetParser
        page = self.testPage
        subpage1 = WikiPageFactory().create(page, u"Страница 1", [])
        subpage2 = WikiPageFactory().create(page, u"Страница 2", [])
        subpage3 = WikiPageFactory().create(page, u"Страница 3", [])

        subpage2.order = 1
        subpage3.order = 4
        subpage1.order = 10

        template = u'{{__childlist}}'
        selectedText = u''
        vars = {}

        right_result = u'Страница 2, Страница 3, Страница 1'

        parser = SnippetParser(template, u'.', self._application)
        result = parser.process(selectedText, page, **vars)

        self.assertEqual(result, right_result)
Exemple #23
0
    def test_global_var_attachilist(self):
        from snippets.snippetparser import SnippetParser
        fnames = ['ccc.png', 'aaa.tmp', 'zzz.doc']
        page = self.testPage
        attachdir = Attachment(page).getAttachPath(True)
        for fname in fnames:
            fullpath = os.path.join(attachdir, fname)
            with open(fullpath, 'w'):
                pass

        page = self.testPage
        template = '{{__attachlist}}'
        selectedText = ''
        vars = {}

        right_result = 'aaa.tmp, ccc.png, zzz.doc'

        parser = SnippetParser(template, '.', self.application)
        result = parser.process(selectedText, page, **vars)

        self.assertEqual(result, right_result)