def setUp(self): self.parser = HPCStatsArgumentParser('hpcstats') self.parser.add_args()
def setUp(self): self.parser = HPCStatsArgumentParser('hpcstats') self.parser.add_args()
class TestsHPCStatsArgumentParser(HPCStatsTestCase): def setUp(self): self.parser = HPCStatsArgumentParser('hpcstats') self.parser.add_args() def test_init(self): """HPCStatsArgumentParser.__init__() + add_args() run w/o problem """ pass def test_report(self): """HPCStatsArgumentParser.parse_args() w/ report action """ argv = ['report', '--cluster', 'test'] args = self.parser.parse_args(argv) self.assertEquals(args.action, 'report') def test_import(self): """HPCStatsArgumentParser.parse_args() w/ import action """ argv = ['import', '--cluster', 'test'] args = self.parser.parse_args(argv) self.assertEquals(args.action, 'import') def test_modify(self): """HPCStatsArgumentParser.parse_args() w/ modify action """ # All of these are acceptable combinations of params argvs = [ ['modify', '--business-code', 'B1', '--set-description', 'desc1'], ['modify', '--project-code', 'P1', '--set-description', 'desc1'], ['modify', '--project-code', 'P1', '--set-domain', 'D1'], ['modify', '--new-domain', 'D1', '--domain-name', 'domain D1'] ] for argv in argvs: args = self.parser.parse_args(argv) self.assertEquals(args.action, 'modify') def test_modify_missing_param(self): """HPCStatsArgumentParser.parse_args() raise exception when the main param are missing """ argv = ['modify'] self.assertRaisesRegexp( HPCStatsArgumentException, "either --business-code, --project-code or --new-domain parameters must be set with modify action", self.parser.parse_args, argv) def test_modify_params_mutually_exclusive(self): """HPCStatsArgumentParser.parse_args() raise exception in case of conflict w/ mutually exclusive main params """ argvs = [['modify', '--business-code', 'B1', '--project-code', 'P1'], ['modify', '--business-code', 'B1', '--new-domain', 'D1'], ['modify', '--project-code', 'P1', '--new-domain', 'D1']] for argv in argvs: self.assertRaisesRegexp( HPCStatsArgumentException, "parameters --business-code, --project-code and --new-domain are mutually exclusive", self.parser.parse_args, argv) def test_modify_business_missing_desc(self): """HPCStatsArgumentParser.parse_args() raise exception when modify business code w/o description """ argv = ['modify', '--business-code', 'B1'] self.assertRaisesRegexp( HPCStatsArgumentException, "--set-description parameter is required to modify a business code", self.parser.parse_args, argv) def test_modify_project_missing_param(self): """HPCStatsArgumentParser.parse_args() raise exception when modify project w/o param """ argv = ['modify', '--project-code', 'P1'] self.assertRaisesRegexp( HPCStatsArgumentException, "--set-description or --set-domain parameters are required to modify a project", self.parser.parse_args, argv) def test_modify_project_conflict_params(self): """HPCStatsArgumentParser.parse_args() raise exception when modify project w/ conflicting params """ argv = [ 'modify', '--project-code', 'P1', '--set-description', 'desc P1', '--set-domain', 'D1' ] self.assertRaisesRegexp( HPCStatsArgumentException, "--set-description and --set-domain parameters are mutually exclusive to modify a project", self.parser.parse_args, argv) def test_modify_domain_missing_name(self): """HPCStatsArgumentParser.parse_args() raise exception when modify domain w/o name """ argv = ['modify', '--new-domain', 'D1'] self.assertRaisesRegexp( HPCStatsArgumentException, "--domain-name parameter is required to create a new domain", self.parser.parse_args, argv)
class TestsHPCStatsArgumentParser(HPCStatsTestCase): def setUp(self): self.parser = HPCStatsArgumentParser('hpcstats') self.parser.add_args() def test_init(self): """HPCStatsArgumentParser.__init__() + add_args() run w/o problem """ pass def test_report(self): """HPCStatsArgumentParser.parse_args() w/ report action """ argv = ['report', '--cluster', 'test'] args = self.parser.parse_args(argv) self.assertEquals(args.action, 'report') def test_import(self): """HPCStatsArgumentParser.parse_args() w/ import action """ argv = ['import', '--cluster', 'test'] args = self.parser.parse_args(argv) self.assertEquals(args.action, 'import') def test_modify(self): """HPCStatsArgumentParser.parse_args() w/ modify action """ # All of these are acceptable combinations of params argvs = [ [ 'modify', '--business-code', 'B1', '--set-description', 'desc1' ], [ 'modify', '--project-code', 'P1', '--set-description', 'desc1' ], [ 'modify', '--project-code', 'P1', '--set-domain', 'D1' ], [ 'modify', '--new-domain', 'D1', '--domain-name', 'domain D1' ] ] for argv in argvs: args = self.parser.parse_args(argv) self.assertEquals(args.action, 'modify') def test_modify_missing_param(self): """HPCStatsArgumentParser.parse_args() raise exception when the main param are missing """ argv = [ 'modify' ] self.assertRaisesRegexp( HPCStatsArgumentException, "either --business-code, --project-code or --new-domain parameters must be set with modify action", self.parser.parse_args, argv) def test_modify_params_mutually_exclusive(self): """HPCStatsArgumentParser.parse_args() raise exception in case of conflict w/ mutually exclusive main params """ argvs = [ [ 'modify', '--business-code', 'B1', '--project-code', 'P1'], [ 'modify', '--business-code', 'B1', '--new-domain', 'D1' ], [ 'modify', '--project-code', 'P1', '--new-domain', 'D1' ] ] for argv in argvs: self.assertRaisesRegexp( HPCStatsArgumentException, "parameters --business-code, --project-code and --new-domain are mutually exclusive", self.parser.parse_args, argv) def test_modify_business_missing_desc(self): """HPCStatsArgumentParser.parse_args() raise exception when modify business code w/o description """ argv = [ 'modify', '--business-code', 'B1' ] self.assertRaisesRegexp( HPCStatsArgumentException, "--set-description parameter is required to modify a business code", self.parser.parse_args, argv) def test_modify_project_missing_param(self): """HPCStatsArgumentParser.parse_args() raise exception when modify project w/o param """ argv = [ 'modify', '--project-code', 'P1' ] self.assertRaisesRegexp( HPCStatsArgumentException, "--set-description or --set-domain parameters are required to modify a project", self.parser.parse_args, argv) def test_modify_project_conflict_params(self): """HPCStatsArgumentParser.parse_args() raise exception when modify project w/ conflicting params """ argv = [ 'modify', '--project-code', 'P1', '--set-description', 'desc P1', '--set-domain', 'D1' ] self.assertRaisesRegexp( HPCStatsArgumentException, "--set-description and --set-domain parameters are mutually exclusive to modify a project", self.parser.parse_args, argv) def test_modify_domain_missing_name(self): """HPCStatsArgumentParser.parse_args() raise exception when modify domain w/o name """ argv = [ 'modify', '--new-domain', 'D1' ] self.assertRaisesRegexp( HPCStatsArgumentException, "--domain-name parameter is required to create a new domain", self.parser.parse_args, argv)