Revision d971402f test/ganeti.cli_unittest.py

b/test/ganeti.cli_unittest.py
922 922
      self.assertEqual(cli.FormatTimestamp(i), "?")
923 923

  
924 924

  
925
if __name__ == '__main__':
925
class TestFormatUsage(unittest.TestCase):
926
  def test(self):
927
    binary = "gnt-unittest"
928
    commands = {
929
      "cmdA":
930
        (NotImplemented, NotImplemented, NotImplemented, NotImplemented,
931
         "description of A"),
932
      "bbb":
933
        (NotImplemented, NotImplemented, NotImplemented, NotImplemented,
934
         "Hello World," * 10),
935
      "longname":
936
        (NotImplemented, NotImplemented, NotImplemented, NotImplemented,
937
         "Another description"),
938
      }
939

  
940
    self.assertEqual(list(cli._FormatUsage(binary, commands)), [
941
      "Usage: gnt-unittest {command} [options...] [argument...]",
942
      "gnt-unittest <command> --help to see details, or man gnt-unittest",
943
      "",
944
      "Commands:",
945
      (" bbb      - Hello World,Hello World,Hello World,Hello World,Hello"
946
       " World,Hello"),
947
      "            World,Hello World,Hello World,Hello World,Hello World,",
948
      " cmdA     - description of A",
949
      " longname - Another description",
950
      "",
951
      ])
952

  
953

  
954
class TestParseArgs(unittest.TestCase):
955
  def testNoArguments(self):
956
    for argv in [[], ["gnt-unittest"]]:
957
      try:
958
        cli._ParseArgs("gnt-unittest", argv, {}, {}, set())
959
      except cli._ShowUsage, err:
960
        self.assertTrue(err.exit_error)
961
      else:
962
        self.fail("Did not raise exception")
963

  
964
  def testVersion(self):
965
    for argv in [["test", "--version"], ["test", "--version", "somethingelse"]]:
966
      try:
967
        cli._ParseArgs("test", argv, {}, {}, set())
968
      except cli._ShowVersion:
969
        pass
970
      else:
971
        self.fail("Did not raise exception")
972

  
973
  def testHelp(self):
974
    for argv in [["test", "--help"], ["test", "--help", "somethingelse"]]:
975
      try:
976
        cli._ParseArgs("test", argv, {}, {}, set())
977
      except cli._ShowUsage, err:
978
        self.assertFalse(err.exit_error)
979
      else:
980
        self.fail("Did not raise exception")
981

  
982
  def testUnknownCommandOrAlias(self):
983
    for argv in [["test", "list"], ["test", "somethingelse", "--help"]]:
984
      try:
985
        cli._ParseArgs("test", argv, {}, {}, set())
986
      except cli._ShowUsage, err:
987
        self.assertTrue(err.exit_error)
988
      else:
989
        self.fail("Did not raise exception")
990

  
991
  def testInvalidAliasList(self):
992
    cmd = {
993
      "list": NotImplemented,
994
      "foo": NotImplemented,
995
      }
996
    aliases = {
997
      "list": NotImplemented,
998
      "foo": NotImplemented,
999
      }
1000
    assert sorted(cmd.keys()) == sorted(aliases.keys())
1001
    self.assertRaises(AssertionError, cli._ParseArgs, "test",
1002
                      ["test", "list"], cmd, aliases, set())
1003

  
1004
  def testAliasForNonExistantCommand(self):
1005
    cmd = {}
1006
    aliases = {
1007
      "list": NotImplemented,
1008
      }
1009
    self.assertRaises(errors.ProgrammerError, cli._ParseArgs, "test",
1010
                      ["test", "list"], cmd, aliases, set())
1011

  
1012

  
1013
if __name__ == "__main__":
926 1014
  testutils.GanetiTestProgram()

Also available in: Unified diff