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
|
#!/usr/bin/env python
# ClusterShell.NodeSet.RangeSet error handling test suite
# Written by S. Thiell 2008-09-28
"""Unit test for RangeSet errors"""
import copy
import sys
import unittest
sys.path.insert(0, '../lib')
from ClusterShell.NodeSet import RangeSet
from ClusterShell.NodeSet import RangeSetParseError
class RangeSetErrorTest(unittest.TestCase):
def _testRS(self, r, exc):
try:
rset = RangeSet(r)
print rset
except RangeSetParseError, e:
self.assertEqual(RangeSetParseError, exc)
return
except:
raise
self.assert_(0, "error not detected/no exception raised")
def testBadUsages(self):
"""test parse errors"""
self._testRS("", RangeSetParseError)
self._testRS("-", RangeSetParseError)
self._testRS("A", RangeSetParseError)
self._testRS("2-5/a", RangeSetParseError)
self._testRS("3/2", RangeSetParseError)
self._testRS("3-/2", RangeSetParseError)
self._testRS("-3/2", RangeSetParseError)
self._testRS("-/2", RangeSetParseError)
self._testRS("4-a/2", RangeSetParseError)
self._testRS("4-3/2", RangeSetParseError)
self._testRS("4-5/-2", RangeSetParseError)
self._testRS("4-2/-2", RangeSetParseError)
self._testRS("004-002", RangeSetParseError)
self._testRS("3-59/2,102a", RangeSetParseError)
if __name__ == '__main__':
suite = unittest.TestLoader().loadTestsFromTestCase(RangeSetErrorTest)
unittest.TextTestRunner(verbosity=2).run(suite)
|