12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- package doc
- import (
- "bytes"
- "io/ioutil"
- "os"
- "path/filepath"
- "testing"
- "github.com/spf13/cobra"
- )
- func TestGenRSTDoc(t *testing.T) {
- // We generate on a subcommand so we have both subcommands and parents
- buf := new(bytes.Buffer)
- if err := GenReST(echoCmd, buf); err != nil {
- t.Fatal(err)
- }
- output := buf.String()
- checkStringContains(t, output, echoCmd.Long)
- checkStringContains(t, output, echoCmd.Example)
- checkStringContains(t, output, "boolone")
- checkStringContains(t, output, "rootflag")
- checkStringContains(t, output, rootCmd.Short)
- checkStringContains(t, output, echoSubCmd.Short)
- checkStringOmits(t, output, deprecatedCmd.Short)
- }
- func TestGenRSTNoTag(t *testing.T) {
- rootCmd.DisableAutoGenTag = true
- defer func() { rootCmd.DisableAutoGenTag = false }()
- buf := new(bytes.Buffer)
- if err := GenReST(rootCmd, buf); err != nil {
- t.Fatal(err)
- }
- output := buf.String()
- unexpected := "Auto generated"
- checkStringOmits(t, output, unexpected)
- }
- func TestGenRSTTree(t *testing.T) {
- c := &cobra.Command{Use: "do [OPTIONS] arg1 arg2"}
- tmpdir, err := ioutil.TempDir("", "test-gen-rst-tree")
- if err != nil {
- t.Fatalf("Failed to create tmpdir: %s", err.Error())
- }
- defer os.RemoveAll(tmpdir)
- if err := GenReSTTree(c, tmpdir); err != nil {
- t.Fatalf("GenReSTTree failed: %s", err.Error())
- }
- if _, err := os.Stat(filepath.Join(tmpdir, "do.rst")); err != nil {
- t.Fatalf("Expected file 'do.rst' to exist")
- }
- }
- func BenchmarkGenReSTToFile(b *testing.B) {
- file, err := ioutil.TempFile("", "")
- if err != nil {
- b.Fatal(err)
- }
- defer os.Remove(file.Name())
- defer file.Close()
- b.ResetTimer()
- for i := 0; i < b.N; i++ {
- if err := GenReST(rootCmd, file); err != nil {
- b.Fatal(err)
- }
- }
- }
|