Source code for glideinwms.unittests.test_lib_servicePerformance

#!/usr/bin/env python3

# SPDX-FileCopyrightText: 2009 Fermi Research Alliance, LLC
# SPDX-License-Identifier: Apache-2.0

"""
Project:
   glideinWMS

 Description:
   unit test for glideinwms/lib/servicePerformance.py

 Author:
   Dennis Box dbox@fnal.gov
"""


import unittest

import xmlrunner

from glideinwms.lib.servicePerformance import (
    endPerfMetricEvent,
    getPerfMetric,
    getPerfMetricEventLifetime,
    PerfMetric,
    startPerfMetricEvent,
)

# define these globally for convenience
name = "timing_test"
expected_repr = "{'timing_test': {}}"
event_name = "test_start"
event_begin = 1518767040
event_begin_repr = "{'timing_test': {'test_start': {'start_time': 1518767040}}}"
event_end = 1518768040
event_end_repr = "{'timing_test': {'test_start': {'start_time': 1518767040, 'end_time': 1518768040}}}"
t_tag = "t_tag"
tagged_event_repr = "{'timing_test': {'test_start': {'t_tag': 1518767040}}}"


[docs] class TestPerfMetric(unittest.TestCase):
[docs] def test___init__(self): perf_metric = PerfMetric(name) self.assertNotEqual(perf_metric, None)
[docs] def test___repr__(self): perf_metric = PerfMetric(name) self.assertEqual(expected_repr, perf_metric.__repr__())
[docs] def test___str__(self): perf_metric = PerfMetric(name) self.assertEqual(expected_repr, perf_metric.__str__())
[docs] def test_deregister_event(self): perf_metric = PerfMetric(name) perf_metric.register_event_time(event_name, t_tag, event_begin) perf_metric.deregister_event(event_name) self.assertEqual(expected_repr, perf_metric.__repr__())
[docs] def test_event_end(self): perf_metric = PerfMetric(name) perf_metric.event_start(event_name, event_begin) perf_metric.event_end(event_name, event_end) self.assertEqual(event_end_repr, perf_metric.__repr__())
[docs] def test_event_lifetime(self): perf_metric = PerfMetric(name) perf_metric.event_start(event_name, event_begin) perf_metric.event_end(event_name, event_end) self.assertEqual(1000, perf_metric.event_lifetime(event_name, check_active_event=True))
[docs] def test_event_start(self): perf_metric = PerfMetric(name) perf_metric.event_start(event_name, event_begin) self.assertEqual(event_begin_repr, perf_metric.__repr__())
[docs] def test_register_event_time(self): perf_metric = PerfMetric(name) perf_metric.register_event_time(event_name, t_tag, event_begin) self.assertEqual(tagged_event_repr, perf_metric.__repr__())
[docs] class TestGetPerfMetricEventLifetime(unittest.TestCase):
[docs] def test_get_perf_metric_event_lifetime(self): startPerfMetricEvent(name, event_name, event_begin) endPerfMetricEvent(name, event_name, event_end) self.assertEqual(1000, getPerfMetricEventLifetime(name, event_name))
[docs] class TestGetPerfMetric(unittest.TestCase):
[docs] def test_get_perf_metric(self): startPerfMetricEvent(name, event_name, event_begin) endPerfMetricEvent(name, event_name, event_end) self.assertEqual(event_end_repr, getPerfMetric(name).__repr__())
if __name__ == "__main__": unittest.main(testRunner=xmlrunner.XMLTestRunner(output="unittests-reports"))