~andrewjbeach/juju-ci-tools/make-local-patcher

« back to all changes in this revision

Viewing changes to tests/test_logbreakdown.py

  • Committer: Curtis Hovey
  • Date: 2016-06-15 20:52:35 UTC
  • Revision ID: curtis@canonical.com-20160615205235-cf6hu9xt1qmbo1a4
Escape vars in run-unit-tests.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
"""Tests for assess_perf_test_simple module."""
2
 
 
3
 
from datetime import datetime, timedelta
4
 
 
5
 
import logbreakdown as lb
6
 
from generate_perfscale_results import TimingData
7
 
from tests import (
8
 
    TestCase,
9
 
)
10
 
 
11
 
 
12
 
class TestExtractDateFromLine(TestCase):
13
 
 
14
 
    def test_returns_just_date(self):
15
 
        example_line = '2016-09-01 02:51:31 INFO juju.apiserver ...'
16
 
        self.assertEqual(
17
 
            '2016-09-01 02:51:31', lb.extract_date_from_line(example_line))
18
 
 
19
 
 
20
 
class TestLogLineWithinStartRange(TestCase):
21
 
 
22
 
    def test_returns_false_when_line_isnt_dated(self):
23
 
        line = 'Warning some undated line.'
24
 
        self.assertFalse(lb.log_line_within_start_range(line, None))
25
 
 
26
 
    def test_returns_true_when_line_is_after_start_date(self):
27
 
        line = '2016-09-01 02:51:31 INFO testing.'
28
 
        end_date = datetime.strptime('2016-09-01 02:51:20', lb.dt_format)
29
 
        self.assertTrue(
30
 
            lb.log_line_within_start_range(line, end_date))
31
 
 
32
 
    def test_returns_true_when_line_is_same_as_start_date(self):
33
 
        line = '2016-09-01 02:51:31 INFO testing.'
34
 
        end_date = datetime.strptime('2016-09-01 02:51:31', lb.dt_format)
35
 
        self.assertTrue(
36
 
            lb.log_line_within_start_range(line, end_date))
37
 
 
38
 
    def test_returns_false_when_line_is_newer_then_start_date(self):
39
 
        line = '2016-09-01 02:51:20 INFO testing.'
40
 
        end_date = datetime.strptime('2016-09-01 02:51:31', lb.dt_format)
41
 
        self.assertFalse(
42
 
            lb.log_line_within_start_range(line, end_date))
43
 
 
44
 
 
45
 
class TestLogLineWithinEndRange(TestCase):
46
 
 
47
 
    def test_returns_true_when_line_isnt_dated(self):
48
 
        line = 'Warning some undated line.'
49
 
        self.assertTrue(lb.log_line_within_end_range(line, None))
50
 
 
51
 
    def test_returns_true_when_line_is_before_end_date(self):
52
 
        line = '2016-09-01 02:51:31 INFO testing.'
53
 
        end_date = datetime.strptime('2016-09-01 02:51:35', lb.dt_format)
54
 
        self.assertTrue(
55
 
            lb.log_line_within_end_range(line, end_date))
56
 
 
57
 
    def test_returns_true_when_line_is_same_as_end_date(self):
58
 
        line = '2016-09-01 02:51:31 INFO testing.'
59
 
        end_date = datetime.strptime('2016-09-01 02:51:31', lb.dt_format)
60
 
        self.assertTrue(
61
 
            lb.log_line_within_end_range(line, end_date))
62
 
 
63
 
    def test_returns_false_when_line_is_older_then_end_date(self):
64
 
        line = '2016-09-01 02:51:31 INFO testing.'
65
 
        end_date = datetime.strptime('2016-09-01 02:51:20', lb.dt_format)
66
 
        self.assertFalse(
67
 
            lb.log_line_within_end_range(line, end_date))
68
 
 
69
 
 
70
 
class TestChunkEventRange(TestCase):
71
 
    def test_returns_start_and_end_when_period_less_than_time_step(self):
72
 
        """If the start and end period is less than the default step (20
73
 
        seconds) only the start and end should be considered.
74
 
        """
75
 
        start = datetime.utcnow()
76
 
        end = start + timedelta(seconds=5)
77
 
        event = TimingData(start, end)
78
 
 
79
 
        start_dt = datetime.strptime(event.start, lb.dt_format)
80
 
        end_dt = datetime.strptime(event.end, lb.dt_format)
81
 
 
82
 
        self.assertEqual(lb._chunk_event_range(event), [(start_dt, end_dt)])
83
 
 
84
 
    def test_chunks_event_spanning_multiple_periods(self):
85
 
        start = datetime.utcnow().replace(microsecond=0)
86
 
        end = start + timedelta(seconds=2*lb.LOG_BREAKDOWN_SECONDS)
87
 
        event = TimingData(start, end)
88
 
 
89
 
        first_end = start + timedelta(seconds=lb.LOG_BREAKDOWN_SECONDS)
90
 
        second_start = start + timedelta(seconds=lb.LOG_BREAKDOWN_SECONDS + 1)
91
 
 
92
 
        expected_chunks = [(start, first_end), (second_start, end)]
93
 
        self.assertEqual(
94
 
            lb._chunk_event_range(event),
95
 
            expected_chunks)