Improve track.t

- use interval asserts
- use configure_exclusions
This commit is contained in:
Thomas Lauf 2018-08-09 22:21:24 +02:00
parent 08323c6157
commit c483568e50

View file

@ -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)