mirror of
https://github.com/GothenburgBitFactory/timewarrior.git
synced 2025-07-07 20:06:39 +02:00
Improve track.t
- use interval asserts - use configure_exclusions
This commit is contained in:
parent
08323c6157
commit
c483568e50
1 changed files with 16 additions and 30 deletions
46
test/track.t
46
test/track.t
|
@ -2,7 +2,7 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
###############################################################################
|
||||
#
|
||||
# Copyright 2006 - 2018, Paul Beckingham, Federico Hernandez.
|
||||
# Copyright 2006 - 2018, Thomas Lauf, Paul Beckingham, Federico Hernandez.
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
# of this software and associated documentation files (the "Software"), to deal
|
||||
|
@ -30,7 +30,7 @@ import os
|
|||
import sys
|
||||
import unittest
|
||||
|
||||
from datetime import datetime, timedelta
|
||||
from datetime import datetime, timedelta, time
|
||||
|
||||
# Ensure python finds the local simpletap module
|
||||
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
||||
|
@ -53,56 +53,40 @@ class TestTrack(TestCase):
|
|||
self.t("track 20160101T080000 - 20160101T090000 foo")
|
||||
|
||||
j = self.t.export()
|
||||
|
||||
self.assertEqual(len(j), 1)
|
||||
self.assertTrue('start' in j[0])
|
||||
self.assertTrue('end' in j[0])
|
||||
self.assertTrue('tags' in j[0])
|
||||
self.assertEqual(j[0]['tags'][0], 'foo')
|
||||
self.assertClosedInterval(j[0], expectedTags=["foo"])
|
||||
|
||||
def test_single_interval_enclosing_exclusion(self):
|
||||
"""Add one interval that encloseѕ an exclusion, and is therefore flattened"""
|
||||
self.t.config("exclusions.monday", "<9:00 12:00-13:00 >18:00")
|
||||
self.t.config("exclusions.tuesday", "<9:00 12:00-13:00 >18:00")
|
||||
self.t.config("exclusions.wednesday", "<9:00 12:00-13:00 >18:00")
|
||||
self.t.config("exclusions.thursday", "<9:00 12:00-13:00 >18:00")
|
||||
self.t.config("exclusions.friday", "<9:00 12:00-13:00 >18:00")
|
||||
self.t.config("exclusions.saturday", "<9:00 12:00-13:00 >18:00")
|
||||
self.t.config("exclusions.sunday", "<9:00 12:00-13:00 >18:00")
|
||||
self.t.configure_exclusions([(time(18, 0, 0), time(9, 0, 0)),
|
||||
(time(12, 0, 0), time(13, 0, 0))])
|
||||
|
||||
self.t("track 20160101T100000 - 20160101T150000 foo")
|
||||
|
||||
j = self.t.export()
|
||||
self.assertEqual(len(j), 2)
|
||||
|
||||
self.assertTrue('start' in j[0])
|
||||
self.assertTrue('end' in j[0])
|
||||
self.assertTrue('tags' in j[0])
|
||||
self.assertEqual(j[0]['tags'][0], 'foo')
|
||||
|
||||
self.assertTrue('start' in j[1])
|
||||
self.assertTrue('end' in j[1])
|
||||
self.assertTrue('tags' in j[1])
|
||||
self.assertEqual(j[1]['tags'][0], 'foo')
|
||||
self.assertClosedInterval(j[0], expectedTags=["foo"])
|
||||
self.assertClosedInterval(j[1], expectedTags=["foo"])
|
||||
|
||||
def test_single_interval_extending_into_exclusions(self):
|
||||
"""Add one interval that extends at either end into exclusions"""
|
||||
self.t.config("exclusions.monday", "<9:00 >18:00")
|
||||
self.t.config("exclusions.tuesday", "<9:00 >18:00")
|
||||
self.t.config("exclusions.wednesday", "<9:00 >18:00")
|
||||
self.t.config("exclusions.thursday", "<9:00 >18:00")
|
||||
self.t.config("exclusions.friday", "<9:00 >18:00")
|
||||
self.t.config("exclusions.saturday", "<9:00 >18:00")
|
||||
self.t.config("exclusions.sunday", "<9:00 >18:00")
|
||||
self.t.configure_exclusions([(time(18, 0, 0), time(9, 0, 0))])
|
||||
|
||||
self.t("track 20160527T085959 - 20160527T180101 foo")
|
||||
|
||||
j = self.t.export()
|
||||
self.assertEqual(len(j), 1)
|
||||
self.assertClosedInterval(j[0])
|
||||
self.assertIn('5959', j[0]['start'])
|
||||
self.assertIn('0101', j[0]['end'])
|
||||
|
||||
def test_overlap_prevention(self):
|
||||
"""Test adding an overlapping interval fails"""
|
||||
self.t("track 20160709T1400 - 20160709T1500 foo")
|
||||
|
||||
code, out, err = self.t.runError("track 20160709T1430 - 20160709T1530 foo")
|
||||
|
||||
self.assertIn('You cannot overlap intervals. Correct the start/end time, or specify the :adjust hint.', err)
|
||||
|
||||
def test_track_at_time(self):
|
||||
|
@ -110,7 +94,9 @@ class TestTrack(TestCase):
|
|||
one_hour_before = datetime.now() - timedelta(hours=1)
|
||||
|
||||
self.t('track {0:%Y-%m-%dT%H}:01:00 - {0:%Y-%m-%dT%H}:02:00 "Test track interval"'.format(one_hour_before))
|
||||
|
||||
j = self.t.export()
|
||||
|
||||
self.assertTrue(len(j) > 0)
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue