Пример #1
0
    def setup(self):
        self.mockvim = MockVim()
        self.cache = MockCache()

        sys.modules['vim'] = self.mockvim
        from taskwiki.preset import PresetHeader
        self.PresetHeader = PresetHeader
Пример #2
0
class TestParsingPresetHeader(object):
    def setup(self):
        self.mockvim = MockVim()
        self.cache = MockCache()

        sys.modules['vim'] = self.mockvim
        from taskwiki.preset import PresetHeader
        self.PresetHeader = PresetHeader

    def teardown(self):
        self.mockvim.reset()
        self.cache.reset()

    def test_simple(self):
        self.cache.buffer[0] = "== Test || project:Home =="
        header = self.PresetHeader.from_line(0, self.cache)

        assert header.taskfilter == ["(", "project:Home", ")"]
        assert header.defaults == {'project': 'Home'}

    def test_defaults(self):
        self.cache.buffer[0] = "== Test || project:Home || +home =="
        header = self.PresetHeader.from_line(0, self.cache)

        assert header.taskfilter == ["(", "project:Home", ")"]
        assert header.defaults == {'tags': ['home']}
Пример #3
0
    def setup(self):
        self.mockvim = MockVim()
        self.cache = MockCache()

        # Setup fake entries for custom TaskWarrior instance and Sort order
        self.cache.warriors.update({'T': 'extra'})
        self.mockvim.vars.update({'taskwiki_sort_orders': dict(T='extra')})

        sys.modules['vim'] = self.mockvim
        from taskwiki.viewport import ViewPort
        self.ViewPort = ViewPort
class TestParsingPresetHeader(object):
    def setup(self):
        self.mockvim = MockVim()
        self.cache = MockCache()

        sys.modules['vim'] = self.mockvim
        from taskwiki.preset import PresetHeader
        self.PresetHeader = PresetHeader

    def teardown(self):
        self.mockvim.reset()
        self.cache.reset()

    def process_preset_header(self, preset_header, test_syntax):
        """
        Expands the example preset_header to a syntax of a markup and pass on to
        MockVim to be processed.
        The result of the processed preset_header is collected.
        """
        markup, header_expand = test_syntax
        formatted_preset_header = header_expand(preset_header)
        print(formatted_preset_header)

        self.cache.markup_syntax = markup
        self.cache.buffer[0] = formatted_preset_header
        header = self.PresetHeader.from_line(0, self.cache)
        return header

    def test_simple(self, test_syntax):
        preset_header = "HEADER2(Test || project:Home)"
        header = self.process_preset_header(preset_header, test_syntax)

        assert header.taskfilter == ["(", "project:Home", ")"]
        assert header.defaults == {'project': 'Home'}

    def test_defaults(self, test_syntax):
        preset_header = "HEADER2(Test || project:Home || +home)"
        header = self.process_preset_header(preset_header, test_syntax)

        assert header.taskfilter == ["(", "project:Home", ")"]
        assert header.defaults == {'tags': ['home']}
Пример #5
0
class TestParsingVimwikiTask(object):
    def setup(self):
        self.mockvim = MockVim()
        self.cache = MockCache()

        # Setup fake entries for custom TaskWarrior instance and Sort order
        self.cache.warriors.update({'T': 'extra'})
        self.mockvim.vars.update({'taskwiki_sort_orders': dict(T='extra')})

        sys.modules['vim'] = self.mockvim
        from taskwiki.viewport import ViewPort
        self.ViewPort = ViewPort

    def teardown(self):
        self.mockvim.reset()
        self.cache.reset()

    def process_viewport(self, viewport, test_syntax):
        """
        Expands the example viewport to a syntax of a markup and pass on to
        MockVim to be processed.
        The result of the processed viewport is collected.
        """
        markup, header_expand = test_syntax
        formatted_viewport = header_expand(viewport)

        self.cache.markup_syntax = markup
        self.cache.buffer[0] = formatted_viewport
        port = self.ViewPort.from_line(0, self.cache)
        return port

    def test_simple(self, test_syntax):
        example_viewport = "HEADER2(Test | project:Home)"
        port = self.process_viewport(example_viewport, test_syntax)

        assert port.taskfilter == list(DEFAULT_VIEWPORT_VIRTUAL_TAGS) + [
            "(", "project:Home", ")"
        ]
        assert port.name == "Test"
        assert port.sort == DEFAULT_SORT_ORDER
        assert port.tw == 'default'

    def test_defaults(self, test_syntax):
        example_viewport = "HEADER2(Test | project:Home | +home)"
        port = self.process_viewport(example_viewport, test_syntax)

        assert port.taskfilter == list(DEFAULT_VIEWPORT_VIRTUAL_TAGS) + [
            "(", "project:Home", ")"
        ]
        assert port.name == "Test"
        assert port.defaults == {'tags': ['home']}
        assert port.sort == DEFAULT_SORT_ORDER
        assert port.tw == 'default'

    def test_different_tw(self, test_syntax):
        example_viewport = "HEADER2(Test | project:Home #T)"
        port = self.process_viewport(example_viewport, test_syntax)

        assert port.taskfilter == list(DEFAULT_VIEWPORT_VIRTUAL_TAGS) + [
            "(", "project:Home", ")"
        ]
        assert port.name == "Test"
        assert port.sort == DEFAULT_SORT_ORDER
        assert port.tw == 'extra'

    def test_different_sort(self, test_syntax):
        example_viewport = "HEADER2(Test | project:Home $T)"
        port = self.process_viewport(example_viewport, test_syntax)

        assert port.taskfilter == list(DEFAULT_VIEWPORT_VIRTUAL_TAGS) + [
            "(", "project:Home", ")"
        ]
        assert port.name == "Test"
        assert port.sort == 'extra'
        assert port.tw == 'default'

    def test_different_sort_with_complex_filter(self, test_syntax):
        example_viewport = "HEADER2(Test | project:Home or project:Work $T)"
        port = self.process_viewport(example_viewport, test_syntax)

        assert port.taskfilter == list(DEFAULT_VIEWPORT_VIRTUAL_TAGS) + [
            "(", "project:Home", "or", "project:Work", ")"
        ]
        assert port.name == "Test"
        assert port.sort == 'extra'
        assert port.tw == 'default'

    def test_different_sort_tw(self, test_syntax):
        example_viewport = "HEADER2(Test | project:Home #T $T)"
        port = self.process_viewport(example_viewport, test_syntax)

        assert port.taskfilter == list(DEFAULT_VIEWPORT_VIRTUAL_TAGS) + [
            "(", "project:Home", ")"
        ]
        assert port.name == "Test"
        assert port.sort == 'extra'
        assert port.tw == 'extra'

    def test_defaults_different_tw(self, test_syntax):
        example_viewport = "HEADER2(Test | project:Home | +home #T)"
        port = self.process_viewport(example_viewport, test_syntax)

        assert port.taskfilter == list(DEFAULT_VIEWPORT_VIRTUAL_TAGS) + [
            "(", "project:Home", ")"
        ]
        assert port.name == "Test"
        assert port.defaults == {'tags': ['home']}
        assert port.sort == DEFAULT_SORT_ORDER
        assert port.tw == 'extra'

    def test_defaults_different_tw_sort(self, test_syntax):
        example_viewport = "HEADER2(Test | project:Home | +home #T $T)"
        port = self.process_viewport(example_viewport, test_syntax)

        assert port.taskfilter == list(DEFAULT_VIEWPORT_VIRTUAL_TAGS) + [
            "(", "project:Home", ")"
        ]
        assert port.name == "Test"
        assert port.defaults == {'tags': ['home']}
        assert port.sort == 'extra'
        assert port.tw == 'extra'

    def test_override_default_virtual_tags_neutral(self, test_syntax):
        example_viewport = "HEADER2(Test | project:Home !?DELETED)"
        port = self.process_viewport(example_viewport, test_syntax)

        assert port.taskfilter == ["-PARENT", "(", "project:Home", ")"]
        assert port.name == "Test"
        assert port.defaults == {'project': 'Home'}
        assert port.sort == DEFAULT_SORT_ORDER
        assert port.tw == 'default'

    def test_override_default_virtual_tags_positive(self, test_syntax):
        example_viewport = "HEADER2(Test | project:Home !+DELETED)"
        port = self.process_viewport(example_viewport, test_syntax)

        assert port.taskfilter == [
            "+DELETED", "-PARENT", "(", "project:Home", ")"
        ]
        assert port.name == "Test"
        assert port.defaults == {'project': 'Home'}
        assert port.sort == DEFAULT_SORT_ORDER
        assert port.tw == 'default'

    def test_override_default_virtual_tags_negative(self, test_syntax):
        example_viewport = "HEADER2(Test | project:Home !-DELETED)"
        port = self.process_viewport(example_viewport, test_syntax)

        assert port.taskfilter == [
            "-DELETED", "-PARENT", "(", "project:Home", ")"
        ]
        assert port.name == "Test"
        assert port.defaults == {'project': 'Home'}
        assert port.sort == DEFAULT_SORT_ORDER
        assert port.tw == 'default'

    def test_override_default_virtual_tags_positive_without_forcing(
            self, test_syntax):
        example_viewport = "HEADER2(Test | project:Home +DELETED)"
        port = self.process_viewport(example_viewport, test_syntax)

        assert port.taskfilter == [
            "-PARENT", "(", "project:Home", "+DELETED", ")"
        ]
        assert port.name == "Test"
        assert port.defaults == {'project': 'Home'}
        assert port.sort == DEFAULT_SORT_ORDER
        assert port.tw == 'default'
Пример #6
0
 def setup(self):
     self.mockvim = MockVim()
     self.cache = MockCache()
     sys.modules['vim'] = self.mockvim
     from taskwiki.vwtask import VimwikiTask
     self.VimwikiTask = VimwikiTask
Пример #7
0
import sys
from tests.base import MockVim

sys.modules['vim'] = MockVim()

from taskwiki import util


class TestParsingModstrings(object):
    def test_modstring_to_args(self):
        assert util.tw_modstring_to_args("") == []
        assert util.tw_modstring_to_args("project:Random") == [
            "project:Random"
        ]
        assert util.tw_modstring_to_args("project:Random area:admin") == [
            "project:Random", "area:admin"
        ]
        assert util.tw_modstring_to_args("project:Random +test") == [
            "project:Random", "+test"
        ]
        assert util.tw_modstring_to_args("project:'Random +test'") == [
            "project:Random +test"
        ]

    def test_modstring_to_args_with_spaces(self):
        assert util.tw_modstring_to_args("project:Random  +test") == [
            "project:Random", "+test"
        ]
        assert util.tw_modstring_to_args("project:Random    due:now") == [
            "project:Random", "due:now"
        ]