def test_vtodo_serialization(todo_factory): """Test VTODO serialization: one field of each type.""" description = 'A tea would be nice, thanks.' todo = todo_factory( categories=['tea', 'drinking', 'hot'], description=description, due=datetime(3000, 3, 21), start=date(3000, 3, 21), priority=7, status='IN-PROCESS', summary='Some tea', rrule='FREQ=MONTHLY', ) writer = VtodoWritter(todo) vtodo = writer.serialize() assert ( [str(c) for c in vtodo.get('categories').cats] == ['tea', 'drinking', 'hot'] ) assert str(vtodo.get('description')) == description assert vtodo.get('priority') == 7 assert vtodo.decoded('due') == datetime(3000, 3, 21, tzinfo=tzlocal()) assert vtodo.decoded('dtstart') == date(3000, 3, 21) assert str(vtodo.get('status')) == 'IN-PROCESS' assert vtodo.get('rrule') == icalendar.vRecur.from_ical('FREQ=MONTHLY')
def test_vtodo_serialization(todo_factory): """Test VTODO serialization: one field of each type.""" description = 'A tea would be nice, thanks.' todo = todo_factory( categories=['tea', 'drinking', 'hot'], description=description, due=datetime(3000, 3, 21), priority=7, status='IN-PROCESS', summary='Some tea', ) writer = VtodoWritter(todo) vtodo = writer.serialize() assert str(vtodo.get('categories')) == 'tea,drinking,hot' assert str(vtodo.get('description')) == description assert vtodo.get('priority') == 7 assert vtodo.decoded('due') == datetime(3000, 3, 21, tzinfo=tzlocal()) assert str(vtodo.get('status')) == 'IN-PROCESS'
def test_normalize_datetime(): writter = VtodoWritter(None) assert ( writter.normalize_datetime(date(2017, 6, 17)) == date(2017, 6, 17) ) assert ( writter.normalize_datetime(datetime(2017, 6, 17)) == datetime( 2017, 6, 17, tzinfo=tzlocal() ) ) assert ( writter.normalize_datetime(datetime(2017, 6, 17, 12, 19)) == datetime( 2017, 6, 17, 12, 19, tzinfo=tzlocal() ) ) assert ( writter.normalize_datetime( datetime(2017, 6, 17, 12, tzinfo=tzlocal()) ) == datetime(2017, 6, 17, 12, tzinfo=tzlocal()) )
def test_serializer_raises(todo_factory): todo = todo_factory() writter = VtodoWritter(todo) with pytest.raises(Exception): writter.serialize_field('nonexistant', 7)
def test_serialize_dtstart(todo_factory): now = datetime.now(tz=pytz.UTC) todo = todo_factory(start=now) vtodo = VtodoWritter(todo).serialize() assert vtodo.get('dtstart') is not None
def test_serialize_created_at(todo_factory): now = datetime.now(tz=pytz.UTC) todo = todo_factory(created_at=now) vtodo = VtodoWritter(todo).serialize() assert vtodo.get('created') is not None