@@ -48,11 +48,38 @@ def test_closing(self):
48
48
srv ._keep_alive_handle = keep_alive_handle
49
49
timeout_handle = unittest .mock .Mock ()
50
50
srv ._timeout_handle = timeout_handle
51
- srv .transport = unittest .mock .Mock ()
51
+ transport = srv .transport = unittest .mock .Mock ()
52
52
srv .writer = unittest .mock .Mock ()
53
53
54
54
srv .closing ()
55
- self .assertTrue (srv .transport .close .called )
55
+ self .assertTrue (transport .close .called )
56
+ self .assertIsNone (srv .transport )
57
+
58
+ self .assertIsNotNone (srv ._keep_alive_handle )
59
+ self .assertFalse (keep_alive_handle .cancel .called )
60
+
61
+ self .assertIsNotNone (srv ._timeout_handle )
62
+ self .assertFalse (timeout_handle .cancel .called )
63
+
64
+ def test_double_closing (self ):
65
+ srv = server .ServerHttpProtocol (loop = self .loop )
66
+ srv ._keep_alive = True
67
+
68
+ keep_alive_handle = unittest .mock .Mock ()
69
+ srv ._keep_alive_handle = keep_alive_handle
70
+ timeout_handle = unittest .mock .Mock ()
71
+ srv ._timeout_handle = timeout_handle
72
+ transport = srv .transport = unittest .mock .Mock ()
73
+ srv .writer = unittest .mock .Mock ()
74
+
75
+ srv .closing ()
76
+ self .assertTrue (transport .close .called )
77
+ self .assertIsNone (srv .transport )
78
+
79
+ transport .reset_mock ()
80
+ srv .closing ()
81
+ self .assertFalse (transport .close .called )
82
+ self .assertIsNone (srv .transport )
56
83
57
84
self .assertIsNotNone (srv ._keep_alive_handle )
58
85
self .assertFalse (keep_alive_handle .cancel .called )
0 commit comments