def process_data(self,data,username_and_repo_name): '''analyze the data and generate the test code''' self.trace_data = data ''' source_code source_lines_and_number per_line_dependencies AST file_name type_recording lines assigns globals kw arg return_value per_line_locals function_name ''' parsed = ast.parse(self.trace_data['source_code']) p = CodeParser() p.visit(parsed) #print self.trace_data['function_name'] self.trace_data['username_and_repo_name'] = username_and_repo_name self.trace_data['AST'] = ast.dump(parsed) self.trace_data['assigns'] = p.get_assigns() self.trace_data['decorators'] = p.get_decorators() self.trace_data['loops'] = p.get_loops() self.trace_data['calls'] = p.get_calls() #print self.trace_data['assigns'] #print self.trace_data['calls'] """for local in self.trace_data['per_line_locals']: print local print '\n\n'""" self.trace_data['return_calls'] = p.get_returns() self.trace_data['imports'] = p.get_imports() self.trace_data['mocked_out_functions'] = [] self.test_code['function']['def'] = "def test_" + self.trace_data['function_name'] self.test_data = {'mocked_out_calls':[],'fixtures':[],'imports':[]} self.specify_parameters() self.specify_parameter_values() self.specify_return_value() self.specify_patches() self.specify_mock_return_values()