@@ -61,6 +61,9 @@ def setUp(self):
6161 '' ,
6262 'def pre_install_hook(self):' ,
6363 ' print("this is run before install step")' ,
64+ '' ,
65+ 'def pre_single_extension_hook(ext):' ,
66+ ' print("this is run before installing an extension")' ,
6467 ])
6568 write_file (self .test_hooks_pymod , test_hooks_pymod_txt )
6669
@@ -71,8 +74,15 @@ def test_load_hooks(self):
7174
7275 hooks = load_hooks (self .test_hooks_pymod )
7376
74- self .assertEqual (len (hooks ), 4 )
75- self .assertEqual (sorted (hooks .keys ()), ['parse_hook' , 'post_configure_hook' , 'pre_install_hook' , 'start_hook' ])
77+ self .assertEqual (len (hooks ), 5 )
78+ expected = [
79+ 'parse_hook' ,
80+ 'post_configure_hook' ,
81+ 'pre_install_hook' ,
82+ 'pre_single_extension_hook' ,
83+ 'start_hook' ,
84+ ]
85+ self .assertEqual (sorted (hooks .keys ()), expected )
7686 self .assertTrue (all (callable (h ) for h in hooks .values ()))
7787
7888 # test caching of hooks
@@ -101,6 +111,7 @@ def test_find_hook(self):
101111
102112 post_configure_hook = [hooks [k ] for k in hooks if k == 'post_configure_hook' ][0 ]
103113 pre_install_hook = [hooks [k ] for k in hooks if k == 'pre_install_hook' ][0 ]
114+ pre_single_extension_hook = [hooks [k ] for k in hooks if k == 'pre_single_extension_hook' ][0 ]
104115 start_hook = [hooks [k ] for k in hooks if k == 'start_hook' ][0 ]
105116
106117 self .assertEqual (find_hook ('configure' , hooks ), None )
@@ -111,6 +122,14 @@ def test_find_hook(self):
111122 self .assertEqual (find_hook ('install' , hooks , pre_step_hook = True ), pre_install_hook )
112123 self .assertEqual (find_hook ('install' , hooks , post_step_hook = True ), None )
113124
125+ self .assertEqual (find_hook ('single_extension' , hooks ), None )
126+ self .assertEqual (find_hook ('single_extension' , hooks , pre_step_hook = True ), pre_single_extension_hook )
127+ self .assertEqual (find_hook ('single_extension' , hooks , post_step_hook = True ), None )
128+
129+ self .assertEqual (find_hook ('extensions' , hooks ), None )
130+ self .assertEqual (find_hook ('extensions' , hooks , pre_step_hook = True ), None )
131+ self .assertEqual (find_hook ('extensions' , hooks , post_step_hook = True ), None )
132+
114133 self .assertEqual (find_hook ('build' , hooks ), None )
115134 self .assertEqual (find_hook ('build' , hooks , pre_step_hook = True ), None )
116135 self .assertEqual (find_hook ('build' , hooks , post_step_hook = True ), None )
@@ -136,6 +155,11 @@ def test_run_hook(self):
136155 run_hook ('build' , hooks , post_step_hook = True , args = [None ])
137156 run_hook ('install' , hooks , pre_step_hook = True , args = [None ])
138157 run_hook ('install' , hooks , post_step_hook = True , args = [None ])
158+ run_hook ('extensions' , hooks , pre_step_hook = True , args = [None ])
159+ for _ in range (3 ):
160+ run_hook ('single_extension' , hooks , pre_step_hook = True , args = [None ])
161+ run_hook ('single_extension' , hooks , post_step_hook = True , args = [None ])
162+ run_hook ('extensions' , hooks , post_step_hook = True , args = [None ])
139163 stdout = self .get_stdout ()
140164 stderr = self .get_stderr ()
141165 self .mock_stdout (False )
@@ -151,6 +175,12 @@ def test_run_hook(self):
151175 "running foo helper method" ,
152176 "== Running pre-install hook..." ,
153177 "this is run before install step" ,
178+ "== Running pre-single_extension hook..." ,
179+ "this is run before installing an extension" ,
180+ "== Running pre-single_extension hook..." ,
181+ "this is run before installing an extension" ,
182+ "== Running pre-single_extension hook..." ,
183+ "this is run before installing an extension" ,
154184 ])
155185
156186 self .assertEqual (stdout .strip (), expected_stdout )
0 commit comments