MCPcopy
hub / github.com/cweill/gotests / Process

Method Process

internal/output/options.go:40–76  ·  view source on GitHub ↗

Process generates formatted test code from the header and function signatures.

(head *models.Header, funcs []*models.Function)

Source from the content-addressed store, hash-verified

38
39// Process generates formatted test code from the header and function signatures.
40func (o *Options) Process(head *models.Header, funcs []*models.Function) ([]byte, error) {
41 o.render = render.New()
42
43 switch {
44 case o.providesTemplateDir():
45 if err := o.render.LoadCustomTemplates(o.TemplateDir); err != nil {
46 return nil, fmt.Errorf("loading custom templates: %v", err)
47 }
48 case o.providesTemplate():
49 if err := o.render.LoadCustomTemplatesName(o.Template); err != nil {
50 return nil, fmt.Errorf("loading custom templates of name: %v", err)
51 }
52 case o.providesTemplateData():
53 o.render.LoadFromData(o.TemplateData)
54 }
55
56 //
57 tf, err := ioutil.TempFile("", "gotests_")
58 if err != nil {
59 return nil, fmt.Errorf("ioutil.TempFile: %v", err)
60 }
61 defer tf.Close()
62 defer os.Remove(tf.Name())
63
64 // create physical copy of test
65 b := &bytes.Buffer{}
66 if err := o.writeTests(b, head, funcs); err != nil {
67 return nil, err
68 }
69
70 // format file
71 out, err := imports.Process(tf.Name(), b.Bytes(), nil)
72 if err != nil {
73 return nil, fmt.Errorf("imports.Process: %v", err)
74 }
75 return out, nil
76}
77
78func (o *Options) providesTemplateData() bool {
79 return o != nil && len(o.TemplateData) > 0

Calls 9

providesTemplateDirMethod · 0.95
providesTemplateMethod · 0.95
providesTemplateDataMethod · 0.95
writeTestsMethod · 0.95
NewFunction · 0.92
LoadCustomTemplatesMethod · 0.80
LoadFromDataMethod · 0.80
NameMethod · 0.65