tests: Refactor module mocks for parsing tests

This commit is contained in:
Tomas Babej 2015-08-15 16:29:04 +02:00
parent 00711bbb63
commit 1b5a19924e
3 changed files with 50 additions and 32 deletions

View file

@ -256,21 +256,31 @@ class MultipleSourceTest(IntegrationTest):
else:
return line
# Mock vim to test vim-nonrelated functions
class MockVim(object):
def eval(*args, **kwargs):
return 42
class current(object):
buffer = ['']
vars = dict(taskwiki_sort_orders=dict(T='extra'))
vars = dict()
warriors = dict()
def eval(*args, **kwargs):
return 42
def reset(self):
self.current.buffer = ['']
self.vars.clear()
self.warriors.clear()
# Mock Cache object
class MockCache(object):
warriors = {'default': 'default', 'T': 'extra'}
warriors = {'default': 'default'}
buffer_has_authority = True
def reset(self):
self.warriors.clear()
self.warriors.update({'default': 'default'})
self.buffer_has_authority = True

View file

@ -3,10 +3,6 @@ from datetime import datetime
from base import MockVim, MockCache
import sys
mockvim = MockVim()
sys.modules['vim'] = mockvim
from taskwiki.viewport import ViewPort
from taskwiki.constants import DEFAULT_SORT_ORDER, DEFAULT_VIEWPORT_VIRTUAL_TAGS
@ -14,11 +10,22 @@ 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 test_simple(self):
self.mockvim.current.buffer[0] = "== Test | project:Home =="
port = ViewPort.from_line(0, self.cache)
port = self.ViewPort.from_line(0, self.cache)
assert port.taskfilter == list(DEFAULT_VIEWPORT_VIRTUAL_TAGS) + ["project:Home"]
assert port.name == "Test"
@ -27,7 +34,7 @@ class TestParsingVimwikiTask(object):
def test_defaults(self):
self.mockvim.current.buffer[0] = "== Test | project:Home | +home =="
port = ViewPort.from_line(0, self.cache)
port = self.ViewPort.from_line(0, self.cache)
assert port.taskfilter == list(DEFAULT_VIEWPORT_VIRTUAL_TAGS) + ["project:Home"]
assert port.name == "Test"
@ -37,7 +44,7 @@ class TestParsingVimwikiTask(object):
def test_different_tw(self):
self.mockvim.current.buffer[0] = "== Test | project:Home #T =="
port = ViewPort.from_line(0, self.cache)
port = self.ViewPort.from_line(0, self.cache)
assert port.taskfilter == list(DEFAULT_VIEWPORT_VIRTUAL_TAGS) + ["project:Home"]
assert port.name == "Test"
@ -46,7 +53,7 @@ class TestParsingVimwikiTask(object):
def test_different_sort(self):
self.mockvim.current.buffer[0] = "== Test | project:Home $T =="
port = ViewPort.from_line(0, self.cache)
port = self.ViewPort.from_line(0, self.cache)
assert port.taskfilter == list(DEFAULT_VIEWPORT_VIRTUAL_TAGS) + ["project:Home"]
assert port.name == "Test"
@ -55,7 +62,7 @@ class TestParsingVimwikiTask(object):
def test_different_sort_with_complex_filter(self):
self.mockvim.current.buffer[0] = "== Test | project:Home or project:Work $T =="
port = ViewPort.from_line(0, self.cache)
port = self.ViewPort.from_line(0, self.cache)
assert port.taskfilter == list(DEFAULT_VIEWPORT_VIRTUAL_TAGS) + ["project:Home", "or", "project:Work"]
assert port.name == "Test"
@ -64,7 +71,7 @@ class TestParsingVimwikiTask(object):
def test_different_sort_tw(self):
self.mockvim.current.buffer[0] = "== Test | project:Home #T $T =="
port = ViewPort.from_line(0, self.cache)
port = self.ViewPort.from_line(0, self.cache)
assert port.taskfilter == list(DEFAULT_VIEWPORT_VIRTUAL_TAGS) + ["project:Home"]
assert port.name == "Test"
@ -73,7 +80,7 @@ class TestParsingVimwikiTask(object):
def test_defaults_different_tw(self):
self.mockvim.current.buffer[0] = "== Test | project:Home | +home #T =="
port = ViewPort.from_line(0, self.cache)
port = self.ViewPort.from_line(0, self.cache)
assert port.taskfilter == list(DEFAULT_VIEWPORT_VIRTUAL_TAGS) + ["project:Home"]
assert port.name == "Test"
@ -83,7 +90,7 @@ class TestParsingVimwikiTask(object):
def test_defaults_different_tw_sort(self):
self.mockvim.current.buffer[0] = "== Test | project:Home | +home #T $T =="
port = ViewPort.from_line(0, self.cache)
port = self.ViewPort.from_line(0, self.cache)
assert port.taskfilter == list(DEFAULT_VIEWPORT_VIRTUAL_TAGS) + ["project:Home"]
assert port.name == "Test"

View file

@ -3,22 +3,23 @@ from datetime import datetime
from base import MockVim, MockCache
import sys
mockvim = MockVim()
sys.modules['vim'] = mockvim
from taskwiki.vwtask import VimwikiTask
from tasklib import local_zone
cache = MockCache()
class TestParsingVimwikiTask(object):
def setup(self):
self.mockvim = MockVim()
self.cache = MockCache()
sys.modules['vim'] = self.mockvim
from taskwiki.vwtask import VimwikiTask
self.VimwikiTask = VimwikiTask
def teardown(self):
self.mockvim.reset()
self.cache.reset()
def test_simple(self):
self.mockvim.current.buffer[0] = "* [ ] This is task description"
vwtask = VimwikiTask.from_line(cache, 0)
vwtask = self.VimwikiTask.from_line(self.cache, 0)
assert vwtask['description'] == "This is task description"
assert vwtask['uuid'] == None
@ -28,7 +29,7 @@ class TestParsingVimwikiTask(object):
def test_simple_with_unicode(self):
self.mockvim.current.buffer[0] = "* [ ] This is täsk description"
vwtask = VimwikiTask.from_line(cache, 0)
vwtask = self.VimwikiTask.from_line(self.cache, 0)
assert vwtask['description'] == u"This is täsk description"
assert vwtask['uuid'] == None
@ -38,7 +39,7 @@ class TestParsingVimwikiTask(object):
def test_due_full(self):
self.mockvim.current.buffer[0] = "* [ ] Random task (2015-08-08 15:15)"
vwtask = VimwikiTask.from_line(cache, 0)
vwtask = self.VimwikiTask.from_line(self.cache, 0)
assert vwtask['description'] == u"Random task"
assert vwtask['due'] == local_zone.localize(datetime(2015,8,8,15,15))
@ -48,7 +49,7 @@ class TestParsingVimwikiTask(object):
def test_due_short(self):
self.mockvim.current.buffer[0] = "* [ ] Random task (2015-08-08)"
vwtask = VimwikiTask.from_line(cache, 0)
vwtask = self.VimwikiTask.from_line(self.cache, 0)
assert vwtask['description'] == u"Random task"
assert vwtask['due'] == local_zone.localize(datetime(2015,8,8,0,0))
@ -58,7 +59,7 @@ class TestParsingVimwikiTask(object):
def test_priority_low(self):
self.mockvim.current.buffer[0] = "* [ ] Semi-Important task !"
vwtask = VimwikiTask.from_line(cache, 0)
vwtask = self.VimwikiTask.from_line(self.cache, 0)
assert vwtask['description'] == u"Semi-Important task"
assert vwtask['priority'] == 'L'
@ -66,7 +67,7 @@ class TestParsingVimwikiTask(object):
def test_priority_medium(self):
self.mockvim.current.buffer[0] = "* [ ] Important task !!"
vwtask = VimwikiTask.from_line(cache, 0)
vwtask = self.VimwikiTask.from_line(self.cache, 0)
assert vwtask['description'] == u"Important task"
assert vwtask['priority'] == 'M'
@ -74,7 +75,7 @@ class TestParsingVimwikiTask(object):
def test_priority_high(self):
self.mockvim.current.buffer[0] = "* [ ] Very important task !!!"
vwtask = VimwikiTask.from_line(cache, 0)
vwtask = self.VimwikiTask.from_line(self.cache, 0)
assert vwtask['description'] == u"Very important task"
assert vwtask['priority'] == 'H'
@ -83,7 +84,7 @@ class TestParsingVimwikiTask(object):
def test_priority_and_due(self):
self.mockvim.current.buffer[0] = "* [ ] Due today !!! (2015-08-08)"
vwtask = VimwikiTask.from_line(cache, 0)
vwtask = self.VimwikiTask.from_line(self.cache, 0)
assert vwtask['description'] == u"Due today"
assert vwtask['priority'] == 'H'