def test_activate_deactivate(monkeypatch, setdt): setdt(2012, 10, 24) tracker = Tracker(nodecreator=FakeNodeCreator(tasks.Task), skeleton=False) tracker.deserialize({"life": "task: \xfc1\n" " @active\n" "task: \xfc2\n" "task: \xfc3\n" }) setdt(2012, 10, 24, 0, 5) navigation._cmd("done", tracker.root) navigation._cmd("done", tracker.root) assert match(tracker.serialize()["life"], ( "task#?????: \xfc1\n" " @finished: 5m after October 24, 2012 12:00:00 AM\n" "task#?????: \xfc2\n" " @finished: 0s after October 24, 2012 12:05:00 AM\n" "task#?????: \xfc3\n" " @started: October 24, 2012 12:05:00 AM\n" " @active\n" ))
def test_archival(): tracker = Tracker(False) tracker.deserialize( { "life": "archived: task#abcde: \xfctest\n" " task#zxcvb: \xfcderp\n" " task#qwert: \xfcderk\n" " task#hjklo: \xfcherp\n" } ) assert tracker.serialize()["life"] == ( "archived#abcde: task#abcde: \xfctest\n" " @_af\n" " archived#zxcvb: task#zxcvb: \xfcderp\n" " @_af\n" " archived#qwert: task#qwert: \xfcderk\n" " @_af\n" " archived#hjklo: task#hjklo: \xfcherp\n" " @_af\n" ) tracker.deserialize( { "life": "unarchive: archived#abcde: task#abcde: \xfctest\n" " @_af\n" " archived#zxcvb: task#zxcvb: \xfcderp\n" " @_af\n" " archived#qwert: task#qwert: \xfcderk\n" " @_af\n" " archived#hjklo: task#hjklo: \xfcherp\n" " @_af\n" } ) assert tracker.serialize()["life"] == ( "task#abcde: \xfctest\n" " task#zxcvb: \xfcderp\n" " task#qwert: \xfcderk\n" " task#hjklo: \xfcherp\n" )
def test_out_of_order(setdt): tracker = Tracker(skeleton=False) days_node = Days("days", None, tracker.root) tracker.root.addchild(days_node) setdt(2013, 12, 29, 12) days_node.createchild("day", "December 19, 2012") days_node.addchild(GenericActivate("archived", "19 a")) days_node.addchild(GenericActivate("archived", "19 b")) ignoreme = days_node.createchild("day", "December 21, 2012") days_node.addchild(GenericActivate("archived", "21 a")) days_node.addchild(GenericActivate("archived", "21 b")) days_node.createchild("day", "December 23, 2012", before=ignoreme) days_node.addchild(GenericActivate("archived", "23 a")) days_node.addchild(GenericActivate("archived", "23 b")) days_node.createchild("day", "December 22, 2012") days_node.addchild(GenericActivate("archived", "22 out of order a")) days_node.addchild(GenericActivate("archived", "22 out of order b")) days_node.createchild("day", "December 20, 2012") days_node.addchild(GenericActivate("archived", "20 out of order a")) days_node.addchild(GenericActivate("archived", "20 out of order b")) result = tracker.serialize()["life"] assert match(result, ( "days#?????\n" " day#?????: December 19, 2012 (Wednesday, *)\n" " archived#?????: 19 a\n" " archived#?????: 19 b\n" " day#?????: December 20, 2012 (Thursday, *)\n" " day#?????: December 21, 2012 (Friday, *)\n" " archived#?????: 21 a\n" " archived#?????: 21 b\n" # December 22 was moved back to before 23, leaving # its archived nodes behind " day#?????: December 22, 2012 (Saturday, *)\n" " day#?????: December 23, 2012 (Sunday, *)\n" " archived#?????: 23 a\n" " archived#?????: 23 b\n" " archived#?????: 22 out of order a\n" " archived#?????: 22 out of order b\n" " archived#?????: 20 out of order a\n" " archived#?????: 20 out of order b\n" ))
def test_empty_line(self): tracker = Tracker(skeleton=False) tracker.deserialize({"life": "\n" "task#12345: whatever\n" " \n" " task#abcde: whatever again\n" "\n" " task#hijkl: some other thing\n" "\n" "\n" }) assert tracker.serialize()["life"] == ( "\n" "task#12345: whatever\n" " \n" " task#abcde: whatever again\n" " \n" " task#hijkl: some other thing\n" " \n" " \n" )