Skip to content

Commit

Permalink
second part of done/undone regexping (needs more tests)
Browse files Browse the repository at this point in the history
  • Loading branch information
KenjiTakahashi committed Nov 14, 2012
1 parent 629da51 commit 9dbf8fb
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 12 deletions.
28 changes: 20 additions & 8 deletions td/model.py
Original file line number Diff line number Diff line change
Expand Up @@ -262,15 +262,27 @@ def modify(self, *, sort=None, purge=False, done=None):
def _mark(v, i):
if done is None:
return v[:4]
index, regexp, du = doneAll
if index is None:
for v_ in v[:3]:
if regexp is None or re.match(regexp, str(v_)):
return v[:3] + [du]

def _mark_(index, regexp, du):
if du is None:
return v[:4]
if index is None:
for v_ in v[:3]:
if regexp is None or re.match(regexp, str(v_)):
return v[:3] + [du]
return v[:4]
if regexp is None or re.match(regexp, str(v[index])):
return v[:3] + [du]
try:
result = _mark_(*doneLevels[i])
if result is not None:
return result
except KeyError:
pass
result = _mark_(*doneAll)
if result is None:
return v[:4]
if regexp is None or re.match(regexp, str(v[index])):
return v[:3] + [du]
return v[:4]
return result

def _modify(submodel, i):
_new = list()
Expand Down
46 changes: 42 additions & 4 deletions tests/test_model.py
Original file line number Diff line number Diff line change
Expand Up @@ -310,15 +310,53 @@ def test_done_all_levels_by_regexp(self):
]]
]

def test_done_all_levels_name_by_regexp(self):
def test_done_all_levels_comment_by_regexp(self):
self.addSecondLevel()
self.addComments()
done = ((0, r'test.*[1|3]', True), {})
done = ((2, r'test.*[2|3]', True), {})
result = self.model.modify(done=done)
assert result == [
["testname1", 4, "testcomment1", True, []],
["testname2", 3, "testcomment2", False, [
["testname3", 2, "", True, []],
["testname2", 3, "testcomment2", True, [
["testname3", 2, "", False, []],
["testname4", 3, "", False, []]
]]
]

def test_done_first_level(self):
self.addSecondLevel()
done = ((None, None, None), {0: (None, None, True)})
result = self.model.modify(done=done)
assert result == [
["testname1", 4, "", True, []],
["testname2", 3, "", True, [
["testname3", 2, "", False, []],
["testname4", 3, "", False, []]
]]
]

def test_done_first_level_by_regexp(self):
self.addSecondLevel()
self.addComments()
done = ((None, None, None), {0: (None, r'test.*[2|3]', True)})
result = self.model.modify(done=done)
assert result == [
["testname1", 4, "testcomment1", True, []],
["testname2", 3, "testcomment2", True, [
["testname3", 2, "", False, []],
["testname4", 3, "", False, []]
]]
]

def test_done_first_level_comment_by_regexp(self):
self.addSecondLevel()
self.addComments()
done = ((None, None, None), {0: (2, r'test.*[2|3]', True)})
result = self.model.modify(done=done)
assert result == [
["testname1", 4, "testcomment1", True, []],
["testname2", 3, "testcomment2", True, [
["testname3", 2, "", False, []],
["testname4", 3, "", False, []]
]]
]
Expand Down

0 comments on commit 9dbf8fb

Please sign in to comment.