Add tests for configurable report range, update man page

Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
This commit is contained in:
Thomas Lauf 2022-12-30 14:26:48 +01:00
parent c8eee25f5b
commit 55ad661e0d
3 changed files with 70 additions and 6 deletions

View file

@ -1,4 +1,9 @@
#!/usr/bin/env python3
import json
import os
import sys
import unittest
from datetime import datetime, timedelta
###############################################################################
#
@ -26,11 +31,6 @@
#
###############################################################################
import os
import unittest
import sys
# Ensure python finds the local simpletap module
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
@ -57,6 +57,58 @@ class TestExtensions(TestCase):
code, out, err = self.t('report ext')
self.assertIn('test works', out)
def test_default_range_is_applied_when_no_range_given_on_command_line(self):
"""Default range is applied when no range is given on the command line"""
self.t.add_default_extension("debug.py")
self.t.config("reports.debug.range", "':day'")
now = datetime.now()
now_utc = now.utcnow()
yesterday_one_hour_before_utc = now_utc - timedelta(hours=1, days=1)
yesterday_two_hours_before_utc = now_utc - timedelta(hours=2, days=1)
self.t("track {:%Y-%m-%dT%H:%M:%S}Z - {:%Y-%m-%dT%H:%M:%S}Z foo".format(yesterday_two_hours_before_utc, yesterday_one_hour_before_utc))
self.t("track {:%Y-%m-%dT%H:%M:%S}Z bar".format(now_utc))
code, out, err = self.t("debug")
j = json.loads(out)
self.assertEqual(len(j), 1)
self.assertOpenInterval(j[0],
expectedStart="{:%Y%m%dT%H%M%S}Z".format(now_utc),
expectedTags=["bar"])
def test_default_range_is_overridden_when_range_given_on_command_line(self):
"""Default range is overridden when range is given on the command line"""
self.t.add_default_extension("debug.py")
self.t.config("reports.debug.range", "':day'")
now = datetime.now()
now_utc = now.utcnow()
yesterday_one_hour_before_utc = now_utc - timedelta(hours=1, days=1)
yesterday_two_hours_before_utc = now_utc - timedelta(hours=2, days=1)
self.t("track {:%Y-%m-%dT%H:%M:%S}Z - {:%Y-%m-%dT%H:%M:%S}Z foo".format(yesterday_two_hours_before_utc, yesterday_one_hour_before_utc))
self.t("track {:%Y-%m-%dT%H:%M:%S}Z bar".format(now_utc))
code, out, err = self.t("debug :all")
j = json.loads(out)
self.assertEqual(len(j), 2)
self.assertClosedInterval(j[0],
expectedStart="{:%Y%m%dT%H%M%S}Z".format(yesterday_two_hours_before_utc),
expectedEnd="{:%Y%m%dT%H%M%S}Z".format(yesterday_one_hour_before_utc),
expectedTags=["foo"])
self.assertOpenInterval(j[1],
expectedStart="{:%Y%m%dT%H%M%S}Z".format(now_utc),
expectedTags=["bar"])
if __name__ == "__main__":
from simpletap import TAPTestRunner