@@ -186,33 +186,42 @@ def __get_mock_methods(self, node, mock_methods, class_decl = ""):
186186 else :
187187 [self .__get_mock_methods (c , mock_methods , class_decl ) for c in node .get_children ()]
188188
189- def __init__ (self , cursor , decl , path , mock_file_hpp , file_template_hpp ):
189+ def __generate_file (self , decl , mock_methods , file_type , file_template_type ):
190+ interface = decl .split ("::" )[- 1 ]
191+ mock_file = {
192+ 'hpp' : self .mock_file_hpp % { 'interface' : interface },
193+ 'cpp' : self .mock_file_cpp % { 'interface' : interface },
194+ }
195+ with open (self .path + "/" + mock_file [file_type ], 'w' ) as file :
196+ file .write (file_template_type % {
197+ 'mock_file_hpp' : mock_file ['hpp' ],
198+ 'mock_file_cpp' : mock_file ['cpp' ],
199+ 'generated_dir' : self .path ,
200+ 'guard' : mock_file [file_type ].replace ('.' , '_' ).upper (),
201+ 'dir' : os .path .dirname (mock_methods [0 ]),
202+ 'file' : os .path .basename (mock_methods [0 ]),
203+ 'namespaces_begin' : self .__pretty_namespaces_begin (decl ),
204+ 'interface' : interface ,
205+ 'mock_methods' : self .__pretty_mock_methods (mock_methods [1 :]),
206+ 'namespaces_end' : self .__pretty_namespaces_end (decl )
207+ })
208+
209+ def __init__ (self , cursor , decl , path , mock_file_hpp , file_template_hpp , mock_file_cpp , file_template_cpp ):
190210 self .cursor = cursor
191211 self .decl = decl
192212 self .path = path
193213 self .mock_file_hpp = mock_file_hpp
194214 self .file_template_hpp = file_template_hpp
215+ self .mock_file_cpp = mock_file_cpp
216+ self .file_template_cpp = file_template_cpp
195217
196218 def generate (self ):
197219 mock_methods = {}
198220 self .__get_mock_methods (self .cursor , mock_methods )
199221 for decl , mock_methods in mock_methods .iteritems ():
200222 if len (mock_methods ) > 0 :
201- interface = decl .split ("::" )[- 1 ]
202-
203- if self .mock_file_hpp != None :
204- mock_file_hpp = self .mock_file_hpp % { 'interface' : interface }
205- with open (self .path + "/" + mock_file_hpp , 'w' ) as file :
206- file .write (self .file_template_hpp % {
207- 'mock_file_hpp' : mock_file_hpp ,
208- 'guard' : mock_file_hpp .replace ('.' , '_' ).upper (),
209- 'dir' : os .path .dirname (mock_methods [0 ]),
210- 'file' : os .path .basename (mock_methods [0 ]),
211- 'namespaces_begin' : self .__pretty_namespaces_begin (decl ),
212- 'interface' : interface ,
213- 'mock_methods' : self .__pretty_mock_methods (mock_methods [1 :]),
214- 'namespaces_end' : self .__pretty_namespaces_end (decl )
215- })
223+ self .file_template_hpp != None and self .__generate_file (decl , mock_methods , 'hpp' , self .file_template_hpp )
224+ self .file_template_cpp != None and self .__generate_file (decl , mock_methods , 'cpp' , self .file_template_cpp )
216225 return 0
217226
218227def main (args ):
@@ -247,7 +256,9 @@ def generate_includes(includes):
247256 decl = options .decl ,
248257 path = options .path ,
249258 mock_file_hpp = config ['mock_file_hpp' ],
250- file_template_hpp = config ['file_template_hpp' ]
259+ file_template_hpp = config ['file_template_hpp' ],
260+ mock_file_cpp = config ['mock_file_cpp' ],
261+ file_template_cpp = config ['file_template_cpp' ]
251262 ).generate ()
252263
253264if __name__ == "__main__" :
0 commit comments