7
7
from saml2 .time_util import str_to_time , instant , valid , in_a_while
8
8
from saml2 .time_util import before , after , not_before , not_on_or_after
9
9
10
+
10
11
def test_f_quotient ():
11
- assert f_quotient (- 1 ,3 ) == - 1
12
- assert f_quotient (0 ,3 ) == 0
13
- assert f_quotient (1 ,3 ) == 0
14
- assert f_quotient (2 ,3 ) == 0
15
- assert f_quotient (3 ,3 ) == 1
16
- assert f_quotient (3.123 ,3 ) == 1
12
+ assert f_quotient (- 1 , 3 ) == - 1
13
+ assert f_quotient (0 , 3 ) == 0
14
+ assert f_quotient (1 , 3 ) == 0
15
+ assert f_quotient (2 , 3 ) == 0
16
+ assert f_quotient (3 , 3 ) == 1
17
+ assert f_quotient (3.123 , 3 ) == 1
18
+
17
19
18
20
def test_modulo ():
19
- assert modulo (- 1 ,3 ) == 2
20
- assert modulo (0 ,3 ) == 0
21
- assert modulo (1 ,3 ) == 1
22
- assert modulo (2 ,3 ) == 2
23
- assert modulo (3 ,3 ) == 0
21
+ assert modulo (- 1 , 3 ) == 2
22
+ assert modulo (0 , 3 ) == 0
23
+ assert modulo (1 , 3 ) == 1
24
+ assert modulo (2 , 3 ) == 2
25
+ assert modulo (3 , 3 ) == 0
24
26
x = 3.123
25
- assert modulo (3.123 ,3 ) == x - 3
27
+ assert modulo (3.123 , 3 ) == x - 3
28
+
26
29
27
30
def test_f_quotient_2 ():
28
31
assert f_quotient (0 , 1 , 13 ) == - 1
29
- for i in range (1 ,13 ):
32
+ for i in range (1 , 13 ):
30
33
assert f_quotient (i , 1 , 13 ) == 0
31
34
assert f_quotient (13 , 1 , 13 ) == 1
32
35
assert f_quotient (13.123 , 1 , 13 ) == 1
33
36
37
+
34
38
def test_modulo_2 ():
35
39
assert modulo (0 , 1 , 13 ) == 12
36
- for i in range (1 ,13 ):
40
+ for i in range (1 , 13 ):
37
41
assert modulo (i , 1 , 13 ) == i
38
42
assert modulo (13 , 1 , 13 ) == 1
39
43
#x = 0.123
40
44
#assert modulo(13+x, 1, 13) == 1+x
41
45
46
+
42
47
def test_parse_duration ():
43
48
(sign , d ) = parse_duration ("P1Y3M5DT7H10M3.3S" )
44
49
assert sign == "+"
@@ -48,7 +53,19 @@ def test_parse_duration():
48
53
assert d ['tm_mday' ] == 5
49
54
assert d ['tm_year' ] == 1
50
55
assert d ['tm_min' ] == 10
51
-
56
+
57
+
58
+ def test_parse_duration2 ():
59
+ (sign , d ) = parse_duration ("PT30M" )
60
+ assert sign == "+"
61
+ assert d ['tm_sec' ] == 0
62
+ assert d ['tm_mon' ] == 0
63
+ assert d ['tm_hour' ] == 0
64
+ assert d ['tm_mday' ] == 0
65
+ assert d ['tm_year' ] == 0
66
+ assert d ['tm_min' ] == 30
67
+
68
+
52
69
def test_add_duration_1 ():
53
70
#2000-01-12T12:13:14Z P1Y3M5DT7H10M3S 2001-04-17T19:23:17Z
54
71
t = add_duration (str_to_time ("2000-01-12T12:13:14Z" ), "P1Y3M5DT7H10M3S" )
@@ -58,17 +75,19 @@ def test_add_duration_1():
58
75
assert t .tm_hour == 19
59
76
assert t .tm_min == 23
60
77
assert t .tm_sec == 17
61
-
78
+
79
+
62
80
def test_add_duration_2 ():
63
81
#2000-01-12 PT33H 2000-01-13
64
- t = add_duration (str_to_time ("2000-01-12T00:00:00Z" ),"PT33H" )
82
+ t = add_duration (str_to_time ("2000-01-12T00:00:00Z" ), "PT33H" )
65
83
assert t .tm_year == 2000
66
84
assert t .tm_mon == 1
67
85
assert t .tm_mday == 14
68
86
assert t .tm_hour == 9
69
87
assert t .tm_min == 0
70
88
assert t .tm_sec == 0
71
-
89
+
90
+
72
91
def test_str_to_time ():
73
92
t = calendar .timegm (str_to_time ("2000-01-12T00:00:00Z" ))
74
93
#TODO: Find all instances of time.mktime(.....)
@@ -78,22 +97,25 @@ def test_str_to_time():
78
97
# do this as an external method in the
79
98
assert t == 947635200
80
99
100
+
81
101
def test_instant ():
82
102
inst = str_to_time (instant ())
83
103
now = time .gmtime ()
84
104
85
105
assert now >= inst
86
-
106
+
107
+
87
108
def test_valid ():
88
109
assert valid ("2000-01-12T00:00:00Z" ) == False
89
110
current_year = datetime .datetime .today ().year
90
111
assert valid ("%d-01-12T00:00:00Z" % (current_year + 1 )) == True
91
112
this_instance = instant ()
92
113
time .sleep (1 )
93
- assert valid (this_instance ) == False # unless on a very fast machine :-)
114
+ assert valid (this_instance ) == False # unless on a very fast machine :-)
94
115
soon = in_a_while (seconds = 10 )
95
116
assert valid (soon ) == True
96
-
117
+
118
+
97
119
def test_timeout ():
98
120
soon = in_a_while (seconds = 1 )
99
121
time .sleep (2 )
@@ -122,3 +144,6 @@ def test_not_on_or_after():
122
144
current_year = datetime .datetime .today ().year
123
145
assert not_on_or_after ("%d-01-01T00:00:00Z" % (current_year + 1 )) == True
124
146
assert not_on_or_after ("%d-01-01T00:00:00Z" % (current_year - 1 )) == False
147
+
148
+ if __name__ == "__main__" :
149
+ test_parse_duration2 ()
0 commit comments