@@ -48,11 +48,38 @@ def test_closing(self):
4848 srv ._keep_alive_handle = keep_alive_handle
4949 timeout_handle = unittest .mock .Mock ()
5050 srv ._timeout_handle = timeout_handle
51- srv .transport = unittest .mock .Mock ()
51+ transport = srv .transport = unittest .mock .Mock ()
5252 srv .writer = unittest .mock .Mock ()
5353
5454 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 )
5683
5784 self .assertIsNotNone (srv ._keep_alive_handle )
5885 self .assertFalse (keep_alive_handle .cancel .called )
0 commit comments