22
33from mock import Mock , patch , call
44
5- from plugin_manager import PluginManager
5+ from plugin_manager import PluginManager , route
66
77
88class PluginManagetTestCase (TestCase ):
@@ -62,6 +62,7 @@ def test_get_plugin_name_from_file(self):
6262 self .assertTrue (mock_f .isdir .called )
6363 self .assertFalse (mock_f .basename .called )
6464
65+ @patch .object (PluginManager , 'de_map_plugin_packets' )
6566 @patch ('plugin_manager.reversed' )
6667 @patch ('plugin_manager.sys' )
6768 @patch ('plugin_manager.path' )
@@ -71,7 +72,8 @@ def test_deactivate_plugins(
7172 mock_config ,
7273 mock_path ,
7374 mock_sys ,
74- mock_reversed
75+ mock_reversed ,
76+ mock_de_map
7577 ):
7678 mock_reversed .side_effect = reversed
7779 pm = PluginManager (Mock ())
@@ -84,6 +86,7 @@ def test_deactivate_plugins(
8486
8587 mock_reversed .assert_called_with ([1 ])
8688 self .assertTrue (pm .plugins [1 ].deactivate .called )
89+ mock_de_map .assert_called_with (pm .plugins [1 ])
8790
8891 @patch ('plugin_manager.sys' )
8992 @patch ('plugin_manager.path' )
@@ -101,3 +104,51 @@ def test_installed_plugins(self, mock_config, mock_path, mock_sys):
101104 result = pm .installed_plugins ()
102105
103106 self .assertListEqual (result , ['plugin' ])
107+
108+
109+ class RouteTestCase (TestCase ):
110+ @patch ('plugin_manager.reactor' )
111+ @patch ('plugin_manager.deferLater' )
112+ @patch ('plugin_manager.logging' )
113+ def test_route_response_true (self , mock_logging , mock_defer , mock_reactor ):
114+ test_func = Mock ()
115+ mock_pm = Mock ()
116+ mock_self = Mock ()
117+ mock_self .plugin_manager = mock_pm
118+ add_err_back = Mock ()
119+ mock_defer .return_value = add_err_back
120+ logger = Mock ()
121+ mock_logging .getLogger .return_value = logger
122+
123+ test_f = route (test_func )
124+ test_f (mock_self , 'data' )
125+
126+ mock_pm .do .assert_called_with (mock_self , 'on' , 'data' )
127+ mock_defer .assert_called_with (
128+ mock_reactor , .01 , mock_pm .do , mock_self , 'after' , 'data'
129+ )
130+ self .assertTrue (add_err_back .addErrback .called )
131+ self .assertTrue (mock_logging .getLogger .called )
132+
133+ error_callback = add_err_back .addErrback .call_args [0 ][0 ]
134+ self .assertFalse (logger .error .called )
135+ error_callback ('test' )
136+ self .assertTrue (logger .error .called )
137+
138+ @patch ('plugin_manager.reactor' )
139+ @patch ('plugin_manager.deferLater' )
140+ @patch ('plugin_manager.logging' )
141+ def test_route_response_false (
142+ self , mock_logging , mock_defer , mock_reactor
143+ ):
144+ test_func = Mock ()
145+ mock_pm = Mock ()
146+ mock_pm .do .return_value = False
147+ mock_self = Mock ()
148+ mock_self .plugin_manager = mock_pm
149+
150+ test_f = route (test_func )
151+ test_f (mock_self , 'data' )
152+
153+ mock_pm .do .assert_called_with (mock_self , 'on' , 'data' )
154+ self .assertFalse (mock_defer .called )
0 commit comments