Skip to content

Commit

Permalink
add rough implementation of parse_date
Browse files Browse the repository at this point in the history
  • Loading branch information
wilczynskia3mobile committed Oct 5, 2016
1 parent 380ae22 commit e648d0a
Show file tree
Hide file tree
Showing 3 changed files with 360 additions and 72 deletions.
103 changes: 90 additions & 13 deletions tests/test_parse_date.py
@@ -1,27 +1,104 @@
import unittest
import datetime

from todoflow.parse_date import Lexer
from todoflow.parse_date import iterate_parts
from freezegun import freeze_time

from todoflow.parse_date import parse_date

print(Lexer().tokenize('2014-12 jan week'))

date = datetime.datetime(2016, 10, 4, 22, 39)


class TestParseDatE(unittest.TestCase):
def assertDate(self, date, date_string):
self.assertEqual(date.strftime('%F'), date_string)

class TestTypes(unittest.TestCase):
def parts(self, l, size):
self._parts = iterate_parts(l, 3)
return self
def assertDatetime(self, date, date_string):
self.assertEqual(date.strftime('%F %R'), date_string)

def are(self, l):
self.assertEqual(list(self._parts), l)
def test_01(self):
self.assertDate(parse_date('jan', date), '2016-01-01')

def test_1(self):
self.parts([1, 2, 3], 3).are([[1, 2, 3]])
def test_02(self):
self.assertDate(parse_date('mon', date), '2016-10-03')

def test_2(self):
self.parts([1, 2, 3, 4], 3).are([[1, 2, 3], [2, 3, 4]])
def test_03(self):
self.assertDate(parse_date('next mon', date), '2016-10-10')

def test_04(self):
self.assertDate(parse_date('last mon', date), '2016-09-26')

def test_05(self):
self.assertDate(parse_date('last mon + 1day', date), '2016-09-27')

def test_06(self):
self.assertDate(parse_date('2016', date), '2016-01-01')

def test_07(self):
self.assertDate(parse_date('today 1day', date), '2016-10-05')

def test_08(self):
self.assertDate(parse_date('today -1day', date), '2016-10-03')

def test_09(self):
self.assertDate(parse_date('today 1year', date), '2017-10-04')

def test_10(self):
self.assertDate(parse_date('2016-05', date), '2016-05-01')

def test_11(self):
self.assertDate(parse_date('2016-05-13years', date), '2016-05-13')

def test_12(self):
self.assertDate(parse_date('today + 1 week', date), '2016-10-11')

def test_13(self):
self.assertDate(parse_date('sun', date), '2016-10-09')

def test_14(self):
self.assertDate(parse_date('fri', date), '2016-10-07')

def test_15(self):
self.assertDate(parse_date('2016', date), '2016-01-01')

def test_16(self):
self.assertDate(parse_date('today +1month', date), '2016-11-04')

def test_17(self):
self.assertDate(parse_date('2016-12-1 +1month', date), '2017-01-01')

def test_18(self):
self.assertDate(parse_date('2016-12-1 +28month', date), '2019-04-01')

def test_19(self):
self.assertDate(parse_date('next week', date), '2016-10-10')

def test_20(self):
self.assertDate(parse_date('next may', date), '2017-05-01')

def test_20(self):
self.assertDate(parse_date('last may', date), '2015-05-01')

def test_21(self):
self.assertDate(parse_date('next day', date), '2016-10-05')

def test_22(self):
self.assertDate(parse_date('next month', date), '2016-11-01')

def test_23(self):
self.assertDate(parse_date('next year', date), '2017-01-01')

def test_24(self):
self.assertDatetime(parse_date('now', date), '2016-10-04 22:39')

def test_25(self):
self.assertDatetime(parse_date('next hour', date), '2016-10-04 23:00')

def test_26(self):
self.assertDatetime(parse_date('next min', date), '2016-10-04 22:40')

def test_27(self):
self.assertDatetime(parse_date('last min', date), '2016-10-04 22:38')


if __name__ == '__main__':
Expand Down
20 changes: 1 addition & 19 deletions todo.taskpaper
Expand Up @@ -6,31 +6,13 @@ Query:
- tests, tests, tests...


2016-10-04 22:39
jan - @q(2016-01-01)
mon - @q(2016-10-03)
next mon - @q(2016-10-10)
last mon - @q(2016-09-26)
last mon + 1day - @q(2016-09-27)
@q =[d] 2016 - @q(2016-01-01)
@q =[d] today 1day - @q(2016-10-05)
@q =[d] today -1day - @q(2016-10-03)
@q =[d] today 1year - @q(2017-10-04)
@q =[d] 2016-05 -@q(2016-05-01)
@q =[d] 2016-05-13years -@q(2016-05-13)
@q = [d] today + 1 week - @q(2016-10-11)
@q = [d] sun - @q(2016-10-02)
@q = [d] fri - @q(2016-10-07)
@q =[d] 2016 - @q(2016-01-01)


r[0:3] -

- r 0
- r 1
- q 2
- r 3

/d/@q[0] -

d:
Expand Down

0 comments on commit e648d0a

Please sign in to comment.