Esempio n. 1
0
func (s *MainSuite) TestAllCommandsPurposeDocCapitalization(c *gc.C) {
	// Verify each command that:
	// - the Purpose field is not empty
	// - if set, the Doc field either begins with the name of the
	// command or and uppercase letter.
	//
	// The first makes Purpose a required documentation. Also, makes
	// both "help commands"'s output and "help <cmd>"'s header more
	// uniform. The second makes the Doc content either start like a
	// sentence, or start godoc-like by using the command's name in
	// lowercase.
	var commands commands
	registerCommands(&commands, testing.Context(c))
	for _, cmd := range commands {
		info := cmd.Info()
		c.Logf("%v", info.Name)
		purpose := strings.TrimSpace(info.Purpose)
		doc := strings.TrimSpace(info.Doc)
		comment := func(message string) interface{} {
			return gc.Commentf("command %q %s", info.Name, message)
		}

		c.Check(purpose, gc.Not(gc.Equals), "", comment("has empty Purpose"))
		// TODO (cherylj) Add back in the check for capitalization of
		// purpose, but check for upper case.  This requires all commands
		// to have been updated first.
		if doc != "" && !strings.HasPrefix(doc, info.Name) {
			prefix := string(doc[0])
			c.Check(prefix, gc.Equals, strings.ToUpper(prefix),
				comment("expected uppercase first-letter Doc"),
			)
		}
	}
}
Esempio n. 2
0
func (s *MainSuite) TestEnvironCommands(c *gc.C) {
	var commands commands
	registerCommands(&commands, testing.Context(c))
	// There should not be any EnvironCommands registered.
	// EnvironCommands must be wrapped using envcmd.Wrap.
	for _, cmd := range commands {
		c.Logf("%v", cmd.Info().Name)
		c.Check(cmd, gc.Not(gc.FitsTypeOf), envcmd.EnvironCommand(&BootstrapCommand{}))
	}
}
Esempio n. 3
0
func (s *MainSuite) TestObsoleteRegistration(c *gc.C) {
	var commands commands
	s.PatchValue(&version.Current.Number, version.MustParse("3.0-alpha1"))
	registerCommands(&commands, testing.Context(c))

	cmdSet := set.NewStrings(obsoleteCommandNames...)
	registeredCmdSet := set.NewStrings()
	for _, cmd := range commands {
		registeredCmdSet.Add(cmd.Info().Name)
	}

	intersection := registeredCmdSet.Intersection(cmdSet)
	c.Logf("Registered obsolete commands: %s", intersection.Values())
	c.Assert(intersection.IsEmpty(), gc.Equals, true)
}