MCPcopy Create free account
hub / github.com/stretchr/testify / generateCode

Function generateCode

_codegen/main.go:56–96  ·  view source on GitHub ↗
(importer imports.Importer, funcs []testFunc)

Source from the content-addressed store, hash-verified

54}
55
56func generateCode(importer imports.Importer, funcs []testFunc) error {
57 buff := bytes.NewBuffer(nil)
58
59 tmplHead, tmplFunc, err := parseTemplates()
60 if err != nil {
61 return err
62 }
63
64 // Generate header
65 if err := tmplHead.Execute(buff, struct {
66 Name string
67 Imports map[string]string
68 }{
69 *outputPkg,
70 importer.Imports(),
71 }); err != nil {
72 return err
73 }
74
75 // Generate funcs
76 for _, fn := range funcs {
77 buff.Write([]byte("\n\n"))
78 if err := tmplFunc.Execute(buff, &fn); err != nil {
79 return err
80 }
81 }
82
83 code, err := format.Source(buff.Bytes())
84 if err != nil {
85 return err
86 }
87
88 // Write file
89 output, err := outputFile()
90 if err != nil {
91 return err
92 }
93 defer output.Close()
94 _, err = io.Copy(output, bytes.NewReader(code))
95 return err
96}
97
98func parseTemplates() (*template.Template, *template.Template, error) {
99 tmplHead, err := template.New("header").Parse(headerTemplate)

Callers 1

mainFunction · 0.85

Calls 4

parseTemplatesFunction · 0.85
outputFileFunction · 0.85
WriteMethod · 0.80
CopyMethod · 0.80

Tested by

no test coverage detected