1+ import unittest
2+ from pydeepskylog .validation import (
3+ validate_number , validate_positive , validate_in_range , validate_sequence
4+ )
5+ from pydeepskylog .exceptions import InvalidParameterError
6+
7+ class TestValidation (unittest .TestCase ):
8+ def test_validate_number_valid (self ):
9+ validate_number (1 , "test" )
10+ validate_number (1.5 , "test" )
11+ validate_number (None , "test" , allow_none = True )
12+
13+ def test_validate_number_invalid (self ):
14+ with self .assertRaises (InvalidParameterError ):
15+ validate_number ("a" , "test" )
16+ with self .assertRaises (InvalidParameterError ):
17+ validate_number (None , "test" , allow_none = False )
18+
19+ def test_validate_positive_valid (self ):
20+ validate_positive (1 , "test" )
21+ validate_positive (1.5 , "test" )
22+ validate_positive (0.1 , "test" )
23+ validate_positive (None , "test" , allow_none = True )
24+
25+ def test_validate_positive_invalid (self ):
26+ with self .assertRaises (InvalidParameterError ):
27+ validate_positive (- 1 , "test" )
28+ with self .assertRaises (InvalidParameterError ):
29+ validate_positive (0 , "test" )
30+ with self .assertRaises (InvalidParameterError ):
31+ validate_positive ("a" , "test" )
32+ with self .assertRaises (InvalidParameterError ):
33+ validate_positive (None , "test" , allow_none = False )
34+
35+ def test_validate_in_range_valid (self ):
36+ validate_in_range (5 , "test" , 0 , 10 )
37+ validate_in_range (0 , "test" , 0 , 10 )
38+ validate_in_range (10 , "test" , 0 , 10 )
39+
40+ def test_validate_in_range_invalid (self ):
41+ with self .assertRaises (InvalidParameterError ):
42+ validate_in_range (- 1 , "test" , 0 , 10 )
43+ with self .assertRaises (InvalidParameterError ):
44+ validate_in_range (11 , "test" , 0 , 10 )
45+ with self .assertRaises (InvalidParameterError ):
46+ validate_in_range ("a" , "test" , 0 , 10 )
47+
48+ def test_validate_sequence_valid (self ):
49+ validate_sequence ([1.0 , 2.0 , 3.0 ], "test" )
50+ validate_sequence ((1.0 , 2.0 ), "test" )
51+ validate_sequence ([], "test" )
52+ validate_sequence ([1 , 2 ], "test" , item_type = int )
53+
54+ def test_validate_sequence_invalid (self ):
55+ with self .assertRaises (InvalidParameterError ):
56+ validate_sequence ("not a sequence" , "test" )
57+ with self .assertRaises (InvalidParameterError ):
58+ validate_sequence ([1 , "a" ], "test" )
59+ with self .assertRaises (InvalidParameterError ):
60+ validate_sequence ([1.0 , 2 ], "test" , item_type = int )
61+
62+ if __name__ == "__main__" :
63+ unittest .main ()
0 commit comments