forked from wershlak/nagios_plugins
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRangeTests.py
125 lines (105 loc) · 2.79 KB
/
RangeTests.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#!/usr/bin/env python
import unittest
from check_cisco_stack import Range, RangeValueError
class RangeTests(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.doDebug = False
cls.firstPrint = False
def t(self, r, n, b):
if(self.doDebug):
if(not(self.firstPrint)):
print
self.firstPrint = True
print(" Testing {0} with {1} is {2}...".format(r.str, n, b))
self.assertEqual(r.test(n), b)
def testExact(self):
r = Range("10")
self.t(r, 9, False)
self.t(r, 10, True)
self.t(r, 11, False)
self.t(r, None, False)
def testInclusive(self):
r = Range("[10,20]")
self.t(r, 9, False)
self.t(r, 10, True)
self.t(r, 11, True)
self.t(r, 19, True)
self.t(r, 20, True)
self.t(r, 21, False)
def testExclusive(self):
r = Range("(10,20)")
self.t(r, 9, False)
self.t(r, 10, False)
self.t(r, 11, True)
self.t(r, 19, True)
self.t(r, 20, False)
self.t(r, 21, False)
def testInfInclusive(self):
r = Range("[,]")
self.t(r, float("-inf"), True)
self.t(r, 0, True)
self.t(r, float("inf"), True)
def testInfInclusiveStart(self):
r = Range("[,10]")
self.t(r, float("-inf"), True)
self.t(r, 0, True)
self.t(r, 10, True)
self.t(r, float("inf"), False)
def testInfInclusiveEnd(self):
r = Range("[10,]")
self.t(r, 9, False)
self.t(r, 10, True)
self.t(r, float("inf"), True)
def testInfExclusive(self):
r = Range("(,)")
self.t(r, float("-inf"), False)
self.t(r, -1, True)
self.t(r, 0, True)
self.t(r, 1, True)
self.t(r, float("inf"), False)
def testInclExcl(self):
r = Range("[10,20)")
self.t(r, 9, False)
self.t(r, 10, True)
self.t(r, 11, True)
self.t(r, 19, True)
self.t(r, 20, False)
self.t(r, 21, False)
def testExclIncl(self):
r = Range("(10,20]")
self.t(r, 9, False)
self.t(r, 10, False)
self.t(r, 11, True)
self.t(r, 19, True)
self.t(r, 20, True)
self.t(r, 21, False)
def testEmptyRangeError(self):
with self.assertRaises(ValueError):
Range("")
def testOnlyCommaError(self):
with self.assertRaises(RangeValueError):
Range(",")
def testTooManyValuesError(self):
with self.assertRaises(RangeValueError):
Range("[1,2,3]")
def testInvalidStartError(self):
with self.assertRaises(RangeValueError):
Range("1,2]")
with self.assertRaises(RangeValueError):
Range("x1,2]")
with self.assertRaises(RangeValueError):
Range(",2]")
def testInvalidEndError(self):
with self.assertRaises(RangeValueError):
Range("[1,2")
with self.assertRaises(RangeValueError):
Range("[1,2x")
with self.assertRaises(RangeValueError):
Range("[1,")
def testBackwardsError(self):
with self.assertRaises(RangeValueError):
Range("[2,1]")
if __name__ == '__main__':
suite = unittest.TestLoader().loadTestsFromTestCase(RangeTests)
unittest.TextTestRunner(verbosity=2).run(suite)