4
from mock import patch, MagicMock
5
from covlpsync.coverity import (severity_is_greater_than_or_equal,
9
from covlpsync.coverity import Cim
12
class CimTestCase(unittest.TestCase):
14
Cim.__init__ = MagicMock(spec=Cim, return_value=None)
16
self.cim.configuration_client = MagicMock()
17
self.cim.defect_client = MagicMock()
20
class TestSeverityIsGreaterThanOrEqual(unittest.TestCase):
22
def test_greater(self):
23
self.assertTrue(severity_is_greater_than_or_equal('High', 'Low'))
26
self.assertFalse(severity_is_greater_than_or_equal('Low', 'High'))
29
self.assertTrue(severity_is_greater_than_or_equal('Low', 'Low'))
31
def test_no_alert_level_set(self):
32
"""Alert level at None, treat anything as a significant defect."""
33
self.assertTrue(severity_is_greater_than_or_equal('Low', None))
35
def test_defect_no_severity(self):
36
"""Defect type has no severity, lowest possible order."""
37
self.assertFalse(severity_is_greater_than_or_equal(None, 'Low'))
39
def test_defect_no_severity_and_no_alert_level_set(self):
40
"""Even a blank defect will trip if no alert level set."""
41
self.assertTrue(severity_is_greater_than_or_equal(None, None))
43
def test_bogus_severity1_raises(self):
44
with self.assertRaises(CoverityError):
45
severity_is_greater_than_or_equal('Oheck', 'Low')
47
def test_bogus_severity2_raises(self):
48
with self.assertRaises(CoverityError):
49
severity_is_greater_than_or_equal('High', 'Oheck')
51
def test_bogus_severity1_raises_against_none(self):
52
with self.assertRaises(CoverityError):
53
severity_is_greater_than_or_equal('Oheck', None)
55
def test_bogus_severity2_raises_against_none(self):
56
with self.assertRaises(CoverityError):
57
severity_is_greater_than_or_equal(None, 'Oheck')
60
class TestGetLatestSnapshot(CimTestCase):
63
super(TestGetLatestSnapshot, self).setUp()
67
datetime.datetime(2012, 11, 13, 18, 46, 26, 15)},
70
datetime.datetime(2012, 11, 12, 18, 35, 30, 812)}
72
self.cim.configuration_client.get_snapshot_information = \
73
MagicMock(side_effect=self.date_created)
74
self.get_snapshots_for_stream_patch = \
75
patch.object(self.cim.configuration_client, 'get_snapshots_for_stream')
76
self.get_snapshots_for_stream = self.get_snapshots_for_stream_patch.start()
78
def date_created(self, snapshot_id):
79
return self.snapshots[snapshot_id]
81
def test_vanilla_returns_correct_snapshot(self):
82
expected = self.snapshots[10604]
83
self.get_snapshots_for_stream.return_value = self.snapshots.keys()
84
self.assertEqual(expected, self.cim.get_latest_snapshot('dbus-test-runner-12.10'))
86
def test_reversed_returns_correct_snapshot(self):
87
# just for kicks let's reverse the order
88
expected = {'dateCreated': datetime.datetime(2012, 11, 13, 18, 46, 26, 15)}
89
snapshot_ids_list = self.snapshots.keys()
90
snapshot_ids_list.reverse()
91
self.get_snapshots_for_stream.return_value = snapshot_ids_list
92
self.assertEqual(expected, self.cim.get_latest_snapshot('dbus-test-runner-12.10'))
94
def test_no_snapshots_returns_none(self):
95
self.get_snapshots_for_stream.return_value = []
96
self.assertEqual(None, self.cim.get_latest_snapshot('dbus-test-runner-12.10'))
98
def test_gibberish_stream_name_raises(self):
99
WebFault.__init__ = MagicMock(spec=WebFault, return_value=None)
100
self.get_snapshots_for_stream.side_effect = WebFault('BOOM')
101
with self.assertRaises(CoverityError):
102
self.cim.get_latest_snapshot('oheck-infinity')