def test_boot_block_free_2(): """ boot-block test run: free_2 """ args = """--free --jobid 1""" cmdout = '' cmderr = \ """ERROR: block not specified as option or in environment. """ stubout = '' stubout_file = "stub.out" expected_results = ( 768, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('boot-block.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_qmove_queu_4(): """ qmove test run: queu_4 """ args = """q1 q2 1 2 3""" cmdout = '' cmderr = \ """jobid must be an integer: q2 """ stubout = '' stubout_file = "stub.out" expected_results = ( 256, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('qmove.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_partlist_argument_1(): """ partlist test run: argument_1 """ args = """arg""" cmdout = '' cmderr = \ """No arguments required """ stubout = '' stubout_file = "stub.out" expected_results = ( 256, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('partlist.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_nodelist_options_4(): """ nodelist test run: options_4 """ args = """--version""" cmdout = \ """version: "nodelist.py " + TBD + , Cobalt + TBD """ cmderr = '' stubout = '' stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('nodelist.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_boot_block_combo(): """ boot-block test run: combo """ args = """--free --reboot --block b --jobid 1""" cmdout = '' cmderr = \ """ERROR: --free may not be specified with --reboot. """ stubout = '' stubout_file = "stub.out" expected_results = ( 768, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('boot-block.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_releaseres_version(): """ releaseres test run: version """ args = """--version""" cmdout = \ """version: "releaseres.py " + $Id: releaseres.py 2146 2011-04-29 16:19:22Z richp $ + , Cobalt + $Version$ """ cmderr = '' stubout = '' stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('releaseres.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_get_bootable_blocks_geometry_10(): """ get-bootable-blocks test run: geometry_10 """ args = """--geometry 90x90x90x90x11 arg""" cmdout = '' cmderr = \ """Invalid Geometry. Geometry must be in the form of AxBxCxDxE """ stubout = '' stubout_file = "stub.out" expected_results = ( 256, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('get-bootable-blocks.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_schedctl_combo_1(): """ schedctl test run: combo_1 """ args = """--start --stop""" cmdout = '' cmderr = \ """Option combinations not allowed with: start option(s) """ stubout = '' stubout_file = "stub.out" expected_results = ( 256, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('schedctl.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_showres_combo(): """ showres test run: combo """ args = """-l -x""" cmdout = '' cmderr = \ """Only use -l or -x not both """ stubout = '' stubout_file = "stub.out" expected_results = ( 256, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('showres.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_schedctl_save_2(): """ schedctl test run: save_2 """ args = """--savestate s""" cmdout = '' cmderr = \ """directory s does not exist """ stubout = '' stubout_file = "stub.out" expected_results = ( 256, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('schedctl.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_qselect_invalid_option(): """ qselect test run: invalid_option """ args = """-k""" cmdout = "" cmderr = """Usage: qselect.py [options] qselect.py: error: no such option: -k """ stubout = "" stubout_file = "stub.out" expected_results = ( 512, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd("qselect.py", args, stubout_file) result = testutils.validate_results(results, expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_qselect_only_arg(): """ qselect test run: only_arg """ args = """1""" cmdout = "" cmderr = """qselect takes no arguments """ stubout = "" stubout_file = "stub.out" expected_results = ( 256, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd("qselect.py", args, stubout_file) result = testutils.validate_results(results, expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_get_bootable_blocks_version(): """ get-bootable-blocks test run: version """ args = """--version""" cmdout = \ """version: "get-bootable-blocks.py " + TBD + , Cobalt + TBD """ cmderr = '' stubout = '' stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('get-bootable-blocks.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_slpstat_version(): """ slpstat test run: version """ args = """--version""" cmdout = \ """version: "slpstat.py " + $Revision: 1221 $ + , Cobalt + $Version$ """ cmderr = '' stubout = '' stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('slpstat.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_partlist_argument_2(): """ partlist test run: argument_2 """ args = '' cmdout = \ """Name Queue State Backfill ============================================================================== P10 zq:kebra:jello:bello:aaa:bbb:hhh:dito:myq:yours:zq idle - P9 yours:kebra:jello:bello:aaa:bbb:hhh:dito:myq:yours:zq idle - P8 myq:kebra:jello:bello:aaa:bbb:hhh:dito:myq:yours:zq idle - P7 dito:kebra:jello:bello:aaa:bbb:hhh:dito:myq:yours:zq idle - P6 hhh:kebra:jello:bello:aaa:bbb:hhh:dito:myq:yours:zq idle - P5 bbb:kebra:jello:bello:aaa:bbb:hhh:dito:myq:yours:zq idle - P4 aaa:kebra:jello:bello:aaa:bbb:hhh:dito:myq:yours:zq idle - P3 bello:kebra:jello:bello:aaa:bbb:hhh:dito:myq:yours:zq idle - P2 jello:kebra:jello:bello:aaa:bbb:hhh:dito:myq:yours:zq idle - P1 kebra:kebra:jello:bello:aaa:bbb:hhh:dito:myq:yours:zq idle - """ cmderr = '' stubout = \ """ GET_PARTITIONS plist: [{'queue': '*', 'scheduled': '*', 'state': '*', 'tag': 'partition', 'name': '*', 'backfill_time': '*', 'children': '*', 'functional': '*', 'draining': '*', 'size': '*'}] GET_RESERVATIONS active:True active type: <type 'bool'> partitions:* partitions type: <type 'str'> queue:* queue type: <type 'str'> """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('partlist.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_releaseres_arg_3(): """ releaseres test run: arg_3 """ args = """s1 s2""" cmdout = \ """Released reservation 's1' for partitions: ['p1', 'p2'] Released reservation 's2' for partitions: ['p1', 'p2'] """ cmderr = '' stubout = \ """ GET_RESERVATIONS name:s1 name type: <type 'str'> partitions:* partitions type: <type 'str'> name:s2 name type: <type 'str'> partitions:* partitions type: <type 'str'> \RELEASE_RESERVATIONS name:s1 name type: <type 'str'> partitions:* partitions type: <type 'str'> name:s2 name type: <type 'str'> partitions:* partitions type: <type 'str'> user: gooduser """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('releaseres.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_boot_block_nofree_noreboot_3(): """ boot-block test run: nofree_noreboot_3 """ args = """--jobid 1 --block b""" cmdout = \ """status 1 status 2 status 3 Boot for locaiton b complete. """ cmderr = '' stubout = \ """ INITIATE_PROXY_BOOT block: b, type = <type 'str'> user: gooduser jobid: 1, type = <type 'int'> GET_BOOT_STATUSES_AND_STRINGS block: b, type = <type 'str'> GET_BOOT_STATUSES_AND_STRINGS block: b, type = <type 'str'> REAP_BOOT block: b, type = <type 'str'> """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('boot-block.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_slpstat_debug_2(): """ slpstat test run: debug_2 """ args = """-d""" cmdout = \ """no services registered """ cmderr = \ """ slpstat.py -d component: "service-location.get_services", defer: False get_services( [{'stamp': '*', 'tag': 'service', 'name': '*', 'location': '*'}], ) """ stubout = \ """ GET_SERVICES location:* location type: <type 'str'> name:* name type: <type 'str'> stamp:* stamp type: <type 'str'> tag:service tag type: <type 'str'> """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("NO SERVICES") results = testutils.run_cmd('slpstat.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_userres_arg_2(): """ userres test run: arg_2 """ args = """s1""" cmdout = \ """Setting new start time for for reservation 's1': Tue Mar 26 17:01:40 2013 """ cmderr = '' stubout = \ """ GET_RESERVATIONS cycle:* cycle type: <type 'str'> duration:* duration type: <type 'str'> name:s1 name type: <type 'str'> start:* start type: <type 'str'> users:* users type: <type 'str'> SET_RESERVATIONS name:s1 name type: <type 'str'> start:1364335300.0 start type: <type 'float'> user: gooduser """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('userres.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_nodeadm_down_1(): """ nodeadm test run: down_1 """ args = """--down p1 p2 p3""" cmdout = \ """nodes marked down: D1 D2 D3 D4 D5 unknown nodes: p1 p2 p3 """ cmderr = '' stubout = \ """ GET_IMPLEMENTATION NODES_DOWN whoami: gooduser p1 p2 p3 """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('nodeadm.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_slpstat_arg_3(): """ slpstat test run: arg_3 """ args = """arg1""" cmdout = \ """Name Location Update Time ========================================== S0 P0 Mon Apr 22 17:06:10 2013 S1 P1 Mon Apr 22 17:06:20 2013 S2 P2 Mon Apr 22 17:06:30 2013 S3 P3 Mon Apr 22 17:06:40 2013 S4 P4 Mon Apr 22 17:06:50 2013 """ cmderr = \ """No arguments needed """ stubout = \ """ GET_SERVICES location:* location type: <type 'str'> name:* name type: <type 'str'> stamp:* stamp type: <type 'str'> tag:service tag type: <type 'str'> """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('slpstat.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_qselect_no_args_opts(): """ qselect test run: no_args_opts """ args = "" cmdout = """ The following jobs matched your query: 100 """ cmderr = "" stubout = """ GET_JOBS jobid:* jobid type: <type 'str'> mode:* mode type: <type 'str'> nodes:* nodes type: <type 'str'> project:* project type: <type 'str'> queue:* queue type: <type 'str'> state:* state type: <type 'str'> tag:job tag type: <type 'str'> walltime:* walltime type: <type 'str'> """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd("qselect.py", args, stubout_file) result = testutils.validate_results(results, expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_nodeadm_up_1(): """ nodeadm test run: up_1 """ args = """--up p1 p2 p3""" cmdout = \ """nodes marked up: U1 U2 U3 U4 U5 nodes that weren't in the down list: p1 p2 p3 """ cmderr = '' stubout = \ """ GET_IMPLEMENTATION NODES_UP whoami: gooduser args: ['p1', 'p2', 'p3'] """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('nodeadm.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_schedctl_inherit_5(): """ schedctl test run: inherit_5 """ args = """--inherit +1.0 1 2 3""" cmdout = \ """updating inheritance fraction for jobs: 1, 2, 3 """ cmderr = '' stubout = \ """ SET_JOBS Original Jobs: user: gooduser jobid:1 jobid type: <type 'int'> jobid:2 jobid type: <type 'int'> jobid:3 jobid type: <type 'int'> New Job Info: dep_frac:1.0 dep_frac type: <type 'float'> """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('schedctl.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_nodelist_arg_2(): """ nodelist test run: arg_2 """ args = """arg1""" cmdout = \ """Host Queue State ==================== D1 QD1 good D2 QD2 bad D3 QD3 ugly U1 QU1 one U2 QU2 two U3 QU3 three """ cmderr = \ """No arguments needed """ stubout = \ """ GET_IMPLEMENTATION GET_NODES_STATUS GET_QUEUE_ASSIGNMENTS """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('nodelist.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_schedctl_stop_3(): """ schedctl test run: stop_3 """ args = """-d --stop""" cmdout = \ """Job Scheduling: DISABLED """ cmderr = \ """ schedctl.py -d --stop component: "scheduler.disable", defer: False disable( gooduser, ) """ stubout = \ """ DISABLE whoami: gooduser """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('schedctl.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_qdel_jobid_3(): """ qdel test run: jobid_3 """ args = """1""" cmdout = \ """ Deleted Jobs JobID User ================= 1 gooduser """ cmderr = '' stubout = \ """ DEL_JOBS force:False whoami:gooduser jobid:1 jobid type: <type 'int'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('qdel.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_userres_arg_5(): """ userres test run: arg_5 """ args = """s1""" cmdout = '' cmderr = \ """You are not a user of reservation 's1' and so cannot alter it. """ stubout = \ """ GET_RESERVATIONS cycle:* cycle type: <type 'str'> duration:* duration type: <type 'str'> name:s1 name type: <type 'str'> start:* start type: <type 'str'> users:* users type: <type 'str'> """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("BOGUS USER") results = testutils.run_cmd('userres.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_slpstat_arg_2(): """ slpstat test run: arg_2 """ args = '' cmdout = \ """no services registered """ cmderr = '' stubout = \ """ GET_SERVICES location:* location type: <type 'str'> name:* name type: <type 'str'> stamp:* stamp type: <type 'str'> tag:service tag type: <type 'str'> """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("NO SERVICES") results = testutils.run_cmd('slpstat.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_boot_block_free_3(): """ boot-block test run: free_3 """ args = """--free --jobid 1 --block b""" cmdout = \ """Block free on b initiated. Block b successfully freed. """ cmderr = '' stubout = \ """ INITIATE_PROXY_FREE block: b, type = <type 'str'> user: gooduser jobid: 1, type = <type 'int'> GET_BLOCK_BGSCHED_STATUS block: b, type = <type 'str'> """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('boot-block.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_showres_arg_2(): """ showres test run: arg_2 """ args = """--oldts""" cmdout = \ """Reservation Queue User Start Duration Passthrough Partitions Remaining T-Minus =============================================================================================================== * kebra gooduser Tue Mar 26 21:56:40 2013 00:08 Blocked [P1-10] 15:56:40 active """ cmderr = '' stubout = \ """ GET_IMPLEMENTATION GET_RESERVATIONS block_passthrough:* block_passthrough type: <type 'str'> cycle:* cycle type: <type 'str'> cycle_id:* cycle_id type: <type 'str'> duration:* duration type: <type 'str'> name:* name type: <type 'str'> partitions:* partitions type: <type 'str'> project:* project type: <type 'str'> queue:* queue type: <type 'str'> res_id:* res_id type: <type 'str'> start:* start type: <type 'str'> users:* users type: <type 'str'> """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('showres.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_nodeadm_down_2(): """ nodeadm test run: down_2 """ args = """-d --down p1 p2 p3""" cmdout = \ """nodes marked down: D1 D2 D3 D4 D5 unknown nodes: p1 p2 p3 """ cmderr = \ """ nodeadm.py -d --down p1 p2 p3 component: "system.get_implementation", defer: False get_implementation( ) component: "system.nodes_down", defer: False nodes_down( ['p1', 'p2', 'p3'], gooduser, ) """ stubout = \ """ GET_IMPLEMENTATION NODES_DOWN whoami: gooduser p1 p2 p3 """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('nodeadm.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_qmove_queue_3(): """ qmove test run: queue_3 """ args = """1 2 3 4""" cmdout = \ """moved job 2 to queue 'kebra' moved job 3 to queue 'kebra' moved job 4 to queue 'kebra' """ cmderr = '' stubout = \ """ GET_JOBS jobid:2 jobid type: <type 'int'> nodes:* nodes type: <type 'str'> notify:* notify type: <type 'str'> procs:* procs type: <type 'str'> project:* project type: <type 'str'> queue:* queue type: <type 'str'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> walltime:* walltime type: <type 'str'> jobid:3 jobid type: <type 'int'> nodes:* nodes type: <type 'str'> notify:* notify type: <type 'str'> procs:* procs type: <type 'str'> project:* project type: <type 'str'> queue:* queue type: <type 'str'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> walltime:* walltime type: <type 'str'> jobid:4 jobid type: <type 'int'> nodes:* nodes type: <type 'str'> notify:* notify type: <type 'str'> procs:* procs type: <type 'str'> project:* project type: <type 'str'> queue:* queue type: <type 'str'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> walltime:* walltime type: <type 'str'> SET_JOBS Original Jobs: user: gooduser args: args type: <type 'str'> envs:{} envs type: <type 'dict'> errorpath:/tmp errorpath type: <type 'str'> geometry:None geometry type: <type 'NoneType'> has_completed:False has_completed type: <type 'bool'> is_active:False is_active type: <type 'bool'> jobid:2 jobid type: <type 'int'> location:/tmp location type: <type 'str'> mode:smp mode type: <type 'str'> nodes:512 nodes type: <type 'str'> notify:[email protected] notify type: <type 'str'> outputpath:/tmp outputpath type: <type 'str'> procs:512 procs type: <type 'str'> project:my_project project type: <type 'str'> queue:jello queue type: <type 'str'> resid:None resid type: <type 'NoneType'> score:50 score type: <type 'int'> state:user_hold state type: <type 'str'> submittime:60 submittime type: <type 'str'> tag:job tag type: <type 'str'> user:land user type: <type 'str'> user_hold:False user_hold type: <type 'bool'> user_list:['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy'] user_list type: <type 'list'> walltime:5 walltime type: <type 'str'> New Job Info: args: args type: <type 'str'> envs:{} envs type: <type 'dict'> errorpath:/tmp errorpath type: <type 'str'> geometry:None geometry type: <type 'NoneType'> has_completed:False has_completed type: <type 'bool'> is_active:False is_active type: <type 'bool'> jobid:2 jobid type: <type 'int'> location:/tmp location type: <type 'str'> mode:smp mode type: <type 'str'> nodes:512 nodes type: <type 'str'> notify:[email protected] notify type: <type 'str'> outputpath:/tmp outputpath type: <type 'str'> procs:512 procs type: <type 'str'> project:my_project project type: <type 'str'> queue:1 queue type: <type 'str'> resid:None resid type: <type 'NoneType'> score:50 score type: <type 'int'> state:user_hold state type: <type 'str'> submittime:60 submittime type: <type 'str'> tag:job tag type: <type 'str'> user:land user type: <type 'str'> user_hold:False user_hold type: <type 'bool'> user_list:['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy'] user_list type: <type 'list'> walltime:5 walltime type: <type 'str'> SET_JOBS Original Jobs: user: gooduser args: args type: <type 'str'> envs:{} envs type: <type 'dict'> errorpath:/tmp errorpath type: <type 'str'> geometry:None geometry type: <type 'NoneType'> has_completed:False has_completed type: <type 'bool'> is_active:False is_active type: <type 'bool'> jobid:3 jobid type: <type 'int'> location:/tmp location type: <type 'str'> mode:smp mode type: <type 'str'> nodes:1024 nodes type: <type 'str'> notify:[email protected] notify type: <type 'str'> outputpath:/tmp outputpath type: <type 'str'> procs:1024 procs type: <type 'str'> project:my_project project type: <type 'str'> queue:bello queue type: <type 'str'> resid:None resid type: <type 'NoneType'> score:55 score type: <type 'int'> state:user_hold state type: <type 'str'> submittime:60 submittime type: <type 'str'> tag:job tag type: <type 'str'> user:house user type: <type 'str'> user_hold:False user_hold type: <type 'bool'> user_list:['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy'] user_list type: <type 'list'> walltime:10 walltime type: <type 'str'> New Job Info: args: args type: <type 'str'> envs:{} envs type: <type 'dict'> errorpath:/tmp errorpath type: <type 'str'> geometry:None geometry type: <type 'NoneType'> has_completed:False has_completed type: <type 'bool'> is_active:False is_active type: <type 'bool'> jobid:3 jobid type: <type 'int'> location:/tmp location type: <type 'str'> mode:smp mode type: <type 'str'> nodes:1024 nodes type: <type 'str'> notify:[email protected] notify type: <type 'str'> outputpath:/tmp outputpath type: <type 'str'> procs:1024 procs type: <type 'str'> project:my_project project type: <type 'str'> queue:1 queue type: <type 'str'> resid:None resid type: <type 'NoneType'> score:55 score type: <type 'int'> state:user_hold state type: <type 'str'> submittime:60 submittime type: <type 'str'> tag:job tag type: <type 'str'> user:house user type: <type 'str'> user_hold:False user_hold type: <type 'bool'> user_list:['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy'] user_list type: <type 'list'> walltime:10 walltime type: <type 'str'> SET_JOBS Original Jobs: user: gooduser args: args type: <type 'str'> envs:{} envs type: <type 'dict'> errorpath:/tmp errorpath type: <type 'str'> geometry:None geometry type: <type 'NoneType'> has_completed:False has_completed type: <type 'bool'> is_active:False is_active type: <type 'bool'> jobid:4 jobid type: <type 'int'> location:/tmp location type: <type 'str'> mode:smp mode type: <type 'str'> nodes:1536 nodes type: <type 'str'> notify:[email protected] notify type: <type 'str'> outputpath:/tmp outputpath type: <type 'str'> procs:1536 procs type: <type 'str'> project:my_project project type: <type 'str'> queue:aaa queue type: <type 'str'> resid:None resid type: <type 'NoneType'> score:40 score type: <type 'int'> state:user_hold state type: <type 'str'> submittime:60 submittime type: <type 'str'> tag:job tag type: <type 'str'> user:dog user type: <type 'str'> user_hold:False user_hold type: <type 'bool'> user_list:['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy'] user_list type: <type 'list'> walltime:15 walltime type: <type 'str'> New Job Info: args: args type: <type 'str'> envs:{} envs type: <type 'dict'> errorpath:/tmp errorpath type: <type 'str'> geometry:None geometry type: <type 'NoneType'> has_completed:False has_completed type: <type 'bool'> is_active:False is_active type: <type 'bool'> jobid:4 jobid type: <type 'int'> location:/tmp location type: <type 'str'> mode:smp mode type: <type 'str'> nodes:1536 nodes type: <type 'str'> notify:[email protected] notify type: <type 'str'> outputpath:/tmp outputpath type: <type 'str'> procs:1536 procs type: <type 'str'> project:my_project project type: <type 'str'> queue:1 queue type: <type 'str'> resid:None resid type: <type 'NoneType'> score:40 score type: <type 'int'> state:user_hold state type: <type 'str'> submittime:60 submittime type: <type 'str'> tag:job tag type: <type 'str'> user:dog user type: <type 'str'> user_hold:False user_hold type: <type 'bool'> user_list:['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy'] user_list type: <type 'list'> walltime:15 walltime type: <type 'str'> """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('qmove.py', args, stubout_file) result = testutils.validate_results(results, expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_qdel_jobid_2(): """ qdel test run: jobid_2 """ args = """1 2 3 4""" cmdout = \ """ Deleted Jobs JobID User ================= 1 gooduser 2 gooduser 3 gooduser 4 gooduser """ cmderr = '' stubout = \ """ DEL_JOBS force:False whoami:gooduser jobid:1 jobid type: <type 'int'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> jobid:2 jobid type: <type 'int'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> jobid:3 jobid type: <type 'int'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> jobid:4 jobid type: <type 'int'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('qdel.py', args, stubout_file) result = testutils.validate_results(results, expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_qrls_jobid_2(): """ qrls test run: jobid_2 """ args = """1 2 3 4""" cmdout = \ """ Failed to remove user hold on jobs: job 1 does not have a 'user hold' job 2 does not have a 'user hold' job 3 does not have a 'user hold' job 4 does not have a 'user hold' """ cmderr = '' stubout = \ """ GET_JOBS jobid:1 jobid type: <type 'int'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> user_hold:* user_hold type: <type 'str'> jobid:2 jobid type: <type 'int'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> user_hold:* user_hold type: <type 'str'> jobid:3 jobid type: <type 'int'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> user_hold:* user_hold type: <type 'str'> jobid:4 jobid type: <type 'int'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> user_hold:* user_hold type: <type 'str'> SET_JOBS Original Jobs: user: gooduser is_active:* is_active type: <type 'str'> jobid:1 jobid type: <type 'int'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> user_hold:* user_hold type: <type 'str'> is_active:* is_active type: <type 'str'> jobid:2 jobid type: <type 'int'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> user_hold:* user_hold type: <type 'str'> is_active:* is_active type: <type 'str'> jobid:3 jobid type: <type 'int'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> user_hold:* user_hold type: <type 'str'> is_active:* is_active type: <type 'str'> jobid:4 jobid type: <type 'int'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> user_hold:* user_hold type: <type 'str'> New Job Info: user_hold:False user_hold type: <type 'bool'> """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('qrls.py', args, stubout_file) result = testutils.validate_results(results, expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_qdel_debug_option(): """ qdel test run: debug_option """ args = """-d 1""" cmdout = \ """ Deleted Jobs JobID User ================= 1 gooduser """ cmderr = \ """ qdel.py -d 1 component: "queue-manager.del_jobs", defer: True del_jobs( [{'tag': 'job', 'user': '******', 'jobid': 1}], False, gooduser, ) """ stubout = \ """ DEL_JOBS force:False whoami:gooduser jobid:1 jobid type: <type 'int'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('qdel.py', args, stubout_file) result = testutils.validate_results(results, expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_qrls_dependancy_option(): """ qrls test run: dependancy_option """ args = """-d --dependencies 1 2""" cmdout = \ """ Removed dependencies from jobs: 1 2 """ cmderr = \ """ qrls.py -d --dependencies 1 2 component: "queue-manager.get_jobs", defer: False get_jobs( [{'user_hold': '*', 'tag': 'job', 'user': '******', 'jobid': 1}, {'user_hold': '*', 'tag': 'job', 'user': '******', 'jobid': 2}], ) component: "queue-manager.set_jobs", defer: False set_jobs( [{'user_hold': '*', 'tag': 'job', 'is_active': '*', 'user': '******', 'jobid': 1}, {'user_hold': '*', 'tag': 'job', 'is_active': '*', 'user': '******', 'jobid': 2}], {'all_dependencies': []}, gooduser, ) """ stubout = \ """ GET_JOBS jobid:1 jobid type: <type 'int'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> user_hold:* user_hold type: <type 'str'> jobid:2 jobid type: <type 'int'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> user_hold:* user_hold type: <type 'str'> SET_JOBS Original Jobs: user: gooduser is_active:* is_active type: <type 'str'> jobid:1 jobid type: <type 'int'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> user_hold:* user_hold type: <type 'str'> is_active:* is_active type: <type 'str'> jobid:2 jobid type: <type 'int'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> user_hold:* user_hold type: <type 'str'> New Job Info: all_dependencies:[] all_dependencies type: <type 'list'> """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('qrls.py', args, stubout_file) result = testutils.validate_results(results, expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_releaseres_arg_4(): """ releaseres test run: arg_4 """ args = """s1 s2 s3""" cmdout = \ """Released reservation 's1' for partitions: ['p1', 'p2'] Released reservation 's2' for partitions: ['p1', 'p2'] Released reservation 's3' for partitions: ['p1', 'p2'] """ cmderr = '' stubout = \ """ GET_RESERVATIONS name:s1 name type: <type 'str'> partitions:* partitions type: <type 'str'> name:s2 name type: <type 'str'> partitions:* partitions type: <type 'str'> name:s3 name type: <type 'str'> partitions:* partitions type: <type 'str'> \RELEASE_RESERVATIONS name:s1 name type: <type 'str'> partitions:* partitions type: <type 'str'> name:s2 name type: <type 'str'> partitions:* partitions type: <type 'str'> name:s3 name type: <type 'str'> partitions:* partitions type: <type 'str'> user: gooduser """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('releaseres.py', args, stubout_file) result = testutils.validate_results(results, expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_boot_block_reboot_3(): """ boot-block test run: reboot_3 """ args = """--reboot --jobid 1 --block b""" cmdout = \ """Block free on b initiated. Block b successfully freed. status 1 status 2 status 3 Boot for location b complete. """ cmderr = '' stubout = \ """ INITIATE_PROXY_FREE block: b, type = <type 'str'> user: gooduser jobid: 1, type = <type 'int'> GET_BLOCK_BGSCHED_STATUS block: b, type = <type 'str'> INITIATE_PROXY_BOOT block: b, type = <type 'str'> user: gooduser jobid: 1, type = <type 'int'> GET_BOOT_STATUSES_AND_STRINGS block: b, type = <type 'str'> GET_BOOT_STATUSES_AND_STRINGS block: b, type = <type 'str'> REAP_BOOT block: b, type = <type 'str'> """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('boot-block.py', args, stubout_file) result = testutils.validate_results(results, expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_qmove_queue_2(): """ qmove test run: queue_2 """ args = """-d myq 1 2 3""" cmdout = \ """moved job 1 to queue 'kebra' moved job 2 to queue 'kebra' moved job 3 to queue 'kebra' """ cmderr = \ """ qmove.py -d myq 1 2 3 component: "queue-manager.get_jobs", defer: False get_jobs( [{'project': '*', 'queue': '*', 'tag': 'job', 'notify': '*', 'user': '******', 'nodes': '*', 'walltime': '*', 'procs': '*', 'jobid': 1}, {'project': '*', 'queue': '*', 'tag': 'job', 'notify': '*', 'user': '******', 'nodes': '*', 'walltime': '*', 'procs': '*', 'jobid': 2}, {'project': '*', 'queue': '*', 'tag': 'job', 'notify': '*', 'user': '******', 'nodes': '*', 'walltime': '*', 'procs': '*', 'jobid': 3}], ) component: "queue-manager.set_jobs", defer: False set_jobs( [{'errorpath': '/tmp', 'args': '', 'is_active': False, 'geometry': None, 'mode': 'smp', 'outputpath': '/tmp', 'tag': 'job', 'notify': '*****@*****.**', 'has_completed': False, 'procs': '512', 'walltime': '5', 'queue': 'jello', 'envs': {}, 'user_hold': False, 'jobid': 1, 'project': 'my_project', 'submittime': '60', 'state': 'user_hold', 'score': 50, 'location': '/tmp', 'nodes': '512', 'user_list': ['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy'], 'user': '******'}], {'errorpath': '/tmp', 'outputpath': '/tmp', 'tag': 'job', 'notify': '*****@*****.**', 'has_completed': False, 'project': 'my_project', 'envs': {}, 'submittime': '60', 'state': 'user_hold', 'score': 50, 'location': '/tmp', 'nodes': '512', 'args': '', 'is_active': False, 'user': '******', 'procs': '512', 'walltime': '5', 'geometry': None, 'user_hold': False, 'jobid': 1, 'queue': 'myq', 'mode': 'smp', 'user_list': ['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy']}, gooduser, ) component: "queue-manager.set_jobs", defer: False set_jobs( [{'errorpath': '/tmp', 'args': '', 'is_active': False, 'geometry': None, 'mode': 'smp', 'outputpath': '/tmp', 'tag': 'job', 'notify': '*****@*****.**', 'has_completed': False, 'procs': '1024', 'walltime': '10', 'queue': 'bello', 'envs': {}, 'user_hold': False, 'jobid': 2, 'project': 'my_project', 'submittime': '60', 'state': 'user_hold', 'score': 55, 'location': '/tmp', 'nodes': '1024', 'user_list': ['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy'], 'user': '******'}], {'errorpath': '/tmp', 'outputpath': '/tmp', 'tag': 'job', 'notify': '*****@*****.**', 'has_completed': False, 'project': 'my_project', 'envs': {}, 'submittime': '60', 'state': 'user_hold', 'score': 55, 'location': '/tmp', 'nodes': '1024', 'args': '', 'is_active': False, 'user': '******', 'procs': '1024', 'walltime': '10', 'geometry': None, 'user_hold': False, 'jobid': 2, 'queue': 'myq', 'mode': 'smp', 'user_list': ['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy']}, gooduser, ) component: "queue-manager.set_jobs", defer: False set_jobs( [{'errorpath': '/tmp', 'args': '', 'is_active': False, 'geometry': None, 'mode': 'smp', 'outputpath': '/tmp', 'tag': 'job', 'notify': '*****@*****.**', 'has_completed': False, 'procs': '1536', 'walltime': '15', 'queue': 'aaa', 'envs': {}, 'user_hold': False, 'jobid': 3, 'project': 'my_project', 'submittime': '60', 'state': 'user_hold', 'score': 40, 'location': '/tmp', 'nodes': '1536', 'user_list': ['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy'], 'user': '******'}], {'errorpath': '/tmp', 'outputpath': '/tmp', 'tag': 'job', 'notify': '*****@*****.**', 'has_completed': False, 'project': 'my_project', 'envs': {}, 'submittime': '60', 'state': 'user_hold', 'score': 40, 'location': '/tmp', 'nodes': '1536', 'args': '', 'is_active': False, 'user': '******', 'procs': '1536', 'walltime': '15', 'geometry': None, 'user_hold': False, 'jobid': 3, 'queue': 'myq', 'mode': 'smp', 'user_list': ['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy']}, gooduser, ) """ stubout = \ """ GET_JOBS jobid:1 jobid type: <type 'int'> nodes:* nodes type: <type 'str'> notify:* notify type: <type 'str'> procs:* procs type: <type 'str'> project:* project type: <type 'str'> queue:* queue type: <type 'str'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> walltime:* walltime type: <type 'str'> jobid:2 jobid type: <type 'int'> nodes:* nodes type: <type 'str'> notify:* notify type: <type 'str'> procs:* procs type: <type 'str'> project:* project type: <type 'str'> queue:* queue type: <type 'str'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> walltime:* walltime type: <type 'str'> jobid:3 jobid type: <type 'int'> nodes:* nodes type: <type 'str'> notify:* notify type: <type 'str'> procs:* procs type: <type 'str'> project:* project type: <type 'str'> queue:* queue type: <type 'str'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> walltime:* walltime type: <type 'str'> SET_JOBS Original Jobs: user: gooduser args: args type: <type 'str'> envs:{} envs type: <type 'dict'> errorpath:/tmp errorpath type: <type 'str'> geometry:None geometry type: <type 'NoneType'> has_completed:False has_completed type: <type 'bool'> is_active:False is_active type: <type 'bool'> jobid:1 jobid type: <type 'int'> location:/tmp location type: <type 'str'> mode:smp mode type: <type 'str'> nodes:512 nodes type: <type 'str'> notify:[email protected] notify type: <type 'str'> outputpath:/tmp outputpath type: <type 'str'> procs:512 procs type: <type 'str'> project:my_project project type: <type 'str'> queue:jello queue type: <type 'str'> resid:None resid type: <type 'NoneType'> score:50 score type: <type 'int'> state:user_hold state type: <type 'str'> submittime:60 submittime type: <type 'str'> tag:job tag type: <type 'str'> user:land user type: <type 'str'> user_hold:False user_hold type: <type 'bool'> user_list:['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy'] user_list type: <type 'list'> walltime:5 walltime type: <type 'str'> New Job Info: args: args type: <type 'str'> envs:{} envs type: <type 'dict'> errorpath:/tmp errorpath type: <type 'str'> geometry:None geometry type: <type 'NoneType'> has_completed:False has_completed type: <type 'bool'> is_active:False is_active type: <type 'bool'> jobid:1 jobid type: <type 'int'> location:/tmp location type: <type 'str'> mode:smp mode type: <type 'str'> nodes:512 nodes type: <type 'str'> notify:[email protected] notify type: <type 'str'> outputpath:/tmp outputpath type: <type 'str'> procs:512 procs type: <type 'str'> project:my_project project type: <type 'str'> queue:myq queue type: <type 'str'> resid:None resid type: <type 'NoneType'> score:50 score type: <type 'int'> state:user_hold state type: <type 'str'> submittime:60 submittime type: <type 'str'> tag:job tag type: <type 'str'> user:land user type: <type 'str'> user_hold:False user_hold type: <type 'bool'> user_list:['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy'] user_list type: <type 'list'> walltime:5 walltime type: <type 'str'> SET_JOBS Original Jobs: user: gooduser args: args type: <type 'str'> envs:{} envs type: <type 'dict'> errorpath:/tmp errorpath type: <type 'str'> geometry:None geometry type: <type 'NoneType'> has_completed:False has_completed type: <type 'bool'> is_active:False is_active type: <type 'bool'> jobid:2 jobid type: <type 'int'> location:/tmp location type: <type 'str'> mode:smp mode type: <type 'str'> nodes:1024 nodes type: <type 'str'> notify:[email protected] notify type: <type 'str'> outputpath:/tmp outputpath type: <type 'str'> procs:1024 procs type: <type 'str'> project:my_project project type: <type 'str'> queue:bello queue type: <type 'str'> resid:None resid type: <type 'NoneType'> score:55 score type: <type 'int'> state:user_hold state type: <type 'str'> submittime:60 submittime type: <type 'str'> tag:job tag type: <type 'str'> user:house user type: <type 'str'> user_hold:False user_hold type: <type 'bool'> user_list:['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy'] user_list type: <type 'list'> walltime:10 walltime type: <type 'str'> New Job Info: args: args type: <type 'str'> envs:{} envs type: <type 'dict'> errorpath:/tmp errorpath type: <type 'str'> geometry:None geometry type: <type 'NoneType'> has_completed:False has_completed type: <type 'bool'> is_active:False is_active type: <type 'bool'> jobid:2 jobid type: <type 'int'> location:/tmp location type: <type 'str'> mode:smp mode type: <type 'str'> nodes:1024 nodes type: <type 'str'> notify:[email protected] notify type: <type 'str'> outputpath:/tmp outputpath type: <type 'str'> procs:1024 procs type: <type 'str'> project:my_project project type: <type 'str'> queue:myq queue type: <type 'str'> resid:None resid type: <type 'NoneType'> score:55 score type: <type 'int'> state:user_hold state type: <type 'str'> submittime:60 submittime type: <type 'str'> tag:job tag type: <type 'str'> user:house user type: <type 'str'> user_hold:False user_hold type: <type 'bool'> user_list:['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy'] user_list type: <type 'list'> walltime:10 walltime type: <type 'str'> SET_JOBS Original Jobs: user: gooduser args: args type: <type 'str'> envs:{} envs type: <type 'dict'> errorpath:/tmp errorpath type: <type 'str'> geometry:None geometry type: <type 'NoneType'> has_completed:False has_completed type: <type 'bool'> is_active:False is_active type: <type 'bool'> jobid:3 jobid type: <type 'int'> location:/tmp location type: <type 'str'> mode:smp mode type: <type 'str'> nodes:1536 nodes type: <type 'str'> notify:[email protected] notify type: <type 'str'> outputpath:/tmp outputpath type: <type 'str'> procs:1536 procs type: <type 'str'> project:my_project project type: <type 'str'> queue:aaa queue type: <type 'str'> resid:None resid type: <type 'NoneType'> score:40 score type: <type 'int'> state:user_hold state type: <type 'str'> submittime:60 submittime type: <type 'str'> tag:job tag type: <type 'str'> user:dog user type: <type 'str'> user_hold:False user_hold type: <type 'bool'> user_list:['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy'] user_list type: <type 'list'> walltime:15 walltime type: <type 'str'> New Job Info: args: args type: <type 'str'> envs:{} envs type: <type 'dict'> errorpath:/tmp errorpath type: <type 'str'> geometry:None geometry type: <type 'NoneType'> has_completed:False has_completed type: <type 'bool'> is_active:False is_active type: <type 'bool'> jobid:3 jobid type: <type 'int'> location:/tmp location type: <type 'str'> mode:smp mode type: <type 'str'> nodes:1536 nodes type: <type 'str'> notify:[email protected] notify type: <type 'str'> outputpath:/tmp outputpath type: <type 'str'> procs:1536 procs type: <type 'str'> project:my_project project type: <type 'str'> queue:myq queue type: <type 'str'> resid:None resid type: <type 'NoneType'> score:40 score type: <type 'int'> state:user_hold state type: <type 'str'> submittime:60 submittime type: <type 'str'> tag:job tag type: <type 'str'> user:dog user type: <type 'str'> user_hold:False user_hold type: <type 'bool'> user_list:['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy'] user_list type: <type 'list'> walltime:15 walltime type: <type 'str'> """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('qmove.py', args, stubout_file) result = testutils.validate_results(results, expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_showres_debug(): """ showres test run: debug """ args = """--debug""" cmdout = \ """Reservation Queue User Start Duration Passthrough Partitions Remaining T-Minus =========================================================================================================================== * kebra gooduser Tue Mar 26 21:56:40 2013 +0000 (UTC) 00:08 Blocked [P1-10] 15:56:40 active """ cmderr = \ """ showres.py --debug component: "system.get_implementation", defer: False get_implementation( ) component: "scheduler.get_reservations", defer: False get_reservations( [{'users': '*', 'block_passthrough': '*', 'duration': '*', 'cycle': '*', 'project': '*', 'cycle_id': '*', 'name': '*', 'queue': '*', 'start': '*', 'partitions': '*', 'res_id': '*'}], ) """ stubout = \ """ GET_IMPLEMENTATION GET_RESERVATIONS block_passthrough:* block_passthrough type: <type 'str'> cycle:* cycle type: <type 'str'> cycle_id:* cycle_id type: <type 'str'> duration:* duration type: <type 'str'> name:* name type: <type 'str'> partitions:* partitions type: <type 'str'> project:* project type: <type 'str'> queue:* queue type: <type 'str'> res_id:* res_id type: <type 'str'> start:* start type: <type 'str'> users:* users type: <type 'str'> """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('showres.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_qhold_debg_option(): """ qhold test run: debg_option """ args = """-d 1""" cmdout = \ """ Failed to place user hold on jobs: job 1 encountered an unexpected problem while attempting to place the 'user hold' """ cmderr = \ """ qhold.py -d 1 component: "queue-manager.get_jobs", defer: False get_jobs( [{'user_hold': '*', 'tag': 'job', 'user': '******', 'jobid': 1}], ) component: "queue-manager.set_jobs", defer: False set_jobs( [{'user_hold': '*', 'tag': 'job', 'is_active': '*', 'user': '******', 'jobid': 1}], {'user_hold': True}, gooduser, ) Response: [{'queue': 'kebra', 'has_completed': False, 'errorpath': '/tmp', 'mode': 'smp', 'outputpath': '/tmp', 'is_active': False, 'jobid': 1, 'project': 'my_project', 'tag': 'job', 'notify': '*****@*****.**', 'nodes': 512, 'walltime': 5, 'user_hold': False, 'procs': 512, 'user': '******'}] """ stubout = \ """ GET_JOBS jobid:1 jobid type: <type 'int'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> user_hold:* user_hold type: <type 'str'> SET_JOBS Original Jobs: user: gooduser is_active:* is_active type: <type 'str'> jobid:1 jobid type: <type 'int'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> user_hold:* user_hold type: <type 'str'> New Job Info: user_hold:True user_hold type: <type 'bool'> """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('qhold.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_slpstat_debug_1(): """ slpstat test run: debug_1 """ args = """-d""" cmdout = \ """Name Location Update Time ========================================== S0 P0 Mon Apr 22 17:06:10 2013 S1 P1 Mon Apr 22 17:06:20 2013 S2 P2 Mon Apr 22 17:06:30 2013 S3 P3 Mon Apr 22 17:06:40 2013 S4 P4 Mon Apr 22 17:06:50 2013 """ cmderr = \ """ slpstat.py -d component: "service-location.get_services", defer: False get_services( [{'stamp': '*', 'tag': 'service', 'name': '*', 'location': '*'}], ) """ stubout = \ """ GET_SERVICES location:* location type: <type 'str'> name:* name type: <type 'str'> stamp:* stamp type: <type 'str'> tag:service tag type: <type 'str'> """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('slpstat.py', args, stubout_file) result = testutils.validate_results(results, expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_qselect_debug_flag(): """ qselect test run: debug_flag """ args = """-d""" cmdout = \ """ The following jobs matched your query: 100 """ cmderr = \ """ qselect.py -d component: "queue-manager.get_jobs", defer: False get_jobs( [{'project': '*', 'queue': '*', 'state': '*', 'tag': 'job', 'mode': '*', 'nodes': '*', 'walltime': '*', 'jobid': '*'}], ) [{'errorpath': '/tmp', 'outputpath': '/tmp', 'tag': 'job', 'notify': '*****@*****.**', 'has_completed': False, 'project': 'my_project', 'envs': {}, 'submittime': '60', 'state': '*', 'score': 50, 'location': '/tmp', 'nodes': '512', 'args': '', 'is_active': False, 'user': '******', 'procs': '512', 'walltime': '5', 'geometry': None, 'user_hold': False, 'jobid': 100, 'queue': 'jello', 'mode': 'smp', 'user_list': ['james', 'land', 'house', 'dog', 'cat', 'henry', 'king', 'queen', 'girl', 'boy']}] """ stubout = \ """ GET_JOBS jobid:* jobid type: <type 'str'> mode:* mode type: <type 'str'> nodes:* nodes type: <type 'str'> project:* project type: <type 'str'> queue:* queue type: <type 'str'> state:* state type: <type 'str'> tag:job tag type: <type 'str'> walltime:* walltime type: <type 'str'> """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('qselect.py', args, stubout_file) result = testutils.validate_results(results, expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_releaseres_arg_9(): """ releaseres test run: arg_9 """ args = """--debug p1 s1 s2 s3""" cmdout = \ """Released reservation 'p1' for partitions: ['p1', 'p2'] Released reservation 's1' for partitions: ['p1', 'p2'] Released reservation 's2' for partitions: ['p1', 'p2'] Released reservation 's3' for partitions: ['p1', 'p2'] """ cmderr = \ """ releaseres.py --debug p1 s1 s2 s3 component: "scheduler.get_reservations", defer: False get_reservations( [{'name': 'p1', 'partitions': '*'}, {'name': 's1', 'partitions': '*'}, {'name': 's2', 'partitions': '*'}, {'name': 's3', 'partitions': '*'}], ) component: "scheduler.release_reservations", defer: False release_reservations( [{'name': 'p1', 'partitions': '*'}, {'name': 's1', 'partitions': '*'}, {'name': 's2', 'partitions': '*'}, {'name': 's3', 'partitions': '*'}], gooduser, ) """ stubout = \ """ GET_RESERVATIONS name:p1 name type: <type 'str'> partitions:* partitions type: <type 'str'> name:s1 name type: <type 'str'> partitions:* partitions type: <type 'str'> name:s2 name type: <type 'str'> partitions:* partitions type: <type 'str'> name:s3 name type: <type 'str'> partitions:* partitions type: <type 'str'> \RELEASE_RESERVATIONS name:p1 name type: <type 'str'> partitions:* partitions type: <type 'str'> name:s1 name type: <type 'str'> partitions:* partitions type: <type 'str'> name:s2 name type: <type 'str'> partitions:* partitions type: <type 'str'> name:s3 name type: <type 'str'> partitions:* partitions type: <type 'str'> user: gooduser """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('releaseres.py', args, stubout_file) result = testutils.validate_results(results, expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_nodelist_debug(): """ nodelist test run: debug """ args = """-d""" cmdout = \ """Host Queue State Backfill ============================== D1 QD1 good - D2 QD2 bad - D3 QD3 ugly - U1 QU1 one - U2 QU2 two - U3 QU3 three - """ cmderr = \ """ nodelist.py -d component: "system.get_implementation", defer: False get_implementation( ) component: "system.get_node_status", defer: False get_node_status( ) component: "system.get_queue_assignments", defer: False get_queue_assignments( ) component: "system.get_backfill_windows", defer: False get_backfill_windows( ) component: "scheduler.get_reservations", defer: False get_reservations( [{'queue': '*', 'active': True, 'partitions': '*'}], ) """ stubout = \ """ GET_IMPLEMENTATION GET_NODES_STATUS GET_QUEUE_ASSIGNMENTS GET_BACKFILL_WINDOWS GET_RESERVATIONS active:True active type: <type 'bool'> partitions:* partitions type: <type 'str'> queue:* queue type: <type 'str'> """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('nodelist.py', args, stubout_file) result = testutils.validate_results(results, expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_schedctl_combo_8(): """ schedctl test run: combo_8 """ args = """--inherit 1.1 --score 1.1 1 2 3 4""" cmdout = \ """updating scores for jobs: 1, 2, 3, 4 updating inheritance fraction for jobs: 1, 2, 3, 4 """ cmderr = '' stubout = \ """ ADJUST_JOB_SCORES jobid:1 jobid type: <type 'int'> jobid:2 jobid type: <type 'int'> jobid:3 jobid type: <type 'int'> jobid:4 jobid type: <type 'int'> new score: 1.1, type = <type 'str'> SET_JOBS Original Jobs: user: gooduser jobid:1 jobid type: <type 'int'> jobid:2 jobid type: <type 'int'> jobid:3 jobid type: <type 'int'> jobid:4 jobid type: <type 'int'> New Job Info: dep_frac:1.1 dep_frac type: <type 'float'> """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('schedctl.py', args, stubout_file) result = testutils.validate_results(results, expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_nodelist_arg_2(): """ nodelist test run: arg_2 """ args = """arg1""" cmdout = \ """Host Queue State Backfill ============================== D1 QD1 good - D2 QD2 bad - D3 QD3 ugly - U1 QU1 one - U2 QU2 two - U3 QU3 three - """ cmderr = \ """No arguments needed """ stubout = \ """ GET_IMPLEMENTATION GET_NODES_STATUS GET_QUEUE_ASSIGNMENTS GET_BACKFILL_WINDOWS GET_RESERVATIONS active:True active type: <type 'bool'> partitions:* partitions type: <type 'str'> queue:* queue type: <type 'str'> """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('nodelist.py', args, stubout_file) result = testutils.validate_results(results, expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_userres_arg_7(): """ userres test run: arg_7 """ args = """s1 s2 s3 s4""" cmdout = \ """Setting new start time for for reservation 's1': Tue Mar 26 22:01:40 2013 Setting new start time for for reservation 's2': Tue Mar 26 22:01:40 2013 Setting new start time for for reservation 's3': Tue Mar 26 22:01:40 2013 Setting new start time for for reservation 's4': Tue Mar 26 22:01:40 2013 """ cmderr = '' stubout = \ """ GET_RESERVATIONS cycle:* cycle type: <type 'str'> duration:* duration type: <type 'str'> name:s1 name type: <type 'str'> start:* start type: <type 'str'> users:* users type: <type 'str'> cycle:* cycle type: <type 'str'> duration:* duration type: <type 'str'> name:s2 name type: <type 'str'> start:* start type: <type 'str'> users:* users type: <type 'str'> cycle:* cycle type: <type 'str'> duration:* duration type: <type 'str'> name:s3 name type: <type 'str'> start:* start type: <type 'str'> users:* users type: <type 'str'> cycle:* cycle type: <type 'str'> duration:* duration type: <type 'str'> name:s4 name type: <type 'str'> start:* start type: <type 'str'> users:* users type: <type 'str'> SET_RESERVATIONS name:s1 name type: <type 'str'> start:1364335300.0 start type: <type 'float'> user: gooduser SET_RESERVATIONS name:s2 name type: <type 'str'> start:1364335300.0 start type: <type 'float'> user: gooduser SET_RESERVATIONS name:s3 name type: <type 'str'> start:1364335300.0 start type: <type 'float'> user: gooduser SET_RESERVATIONS name:s4 name type: <type 'str'> start:1364335300.0 start type: <type 'float'> user: gooduser """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('userres.py', args, stubout_file) result = testutils.validate_results(results, expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_qhold_jobid_3(): """ qhold test run: jobid_3 """ args = """1""" cmdout = \ """ Failed to place user hold on jobs: job 1 encountered an unexpected problem while attempting to place the 'user hold' """ cmderr = '' stubout = \ """ GET_JOBS jobid:1 jobid type: <type 'int'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> user_hold:* user_hold type: <type 'str'> SET_JOBS Original Jobs: user: gooduser is_active:* is_active type: <type 'str'> jobid:1 jobid type: <type 'int'> tag:job tag type: <type 'str'> user:gooduser user type: <type 'str'> user_hold:* user_hold type: <type 'str'> New Job Info: user_hold:True user_hold type: <type 'bool'> """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('qhold.py',args,stubout_file) result = testutils.validate_results(results,expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_userres_arg_4(): """ userres test run: arg_4 """ args = """s1 s2 s3""" cmdout = \ """Releasing reservation 's1' Releasing reservation 's2' Releasing reservation 's3' """ cmderr = '' stubout = \ """ GET_RESERVATIONS cycle:* cycle type: <type 'str'> duration:* duration type: <type 'str'> name:s1 name type: <type 'str'> start:* start type: <type 'str'> users:* users type: <type 'str'> cycle:* cycle type: <type 'str'> duration:* duration type: <type 'str'> name:s2 name type: <type 'str'> start:* start type: <type 'str'> users:* users type: <type 'str'> cycle:* cycle type: <type 'str'> duration:* duration type: <type 'str'> name:s3 name type: <type 'str'> start:* start type: <type 'str'> users:* users type: <type 'str'> \RELEASE_RESERVATIONS name:s1 name type: <type 'str'> user: gooduser \RELEASE_RESERVATIONS name:s2 name type: <type 'str'> user: gooduser \RELEASE_RESERVATIONS name:s3 name type: <type 'str'> user: gooduser """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("NO CYCLE") results = testutils.run_cmd('userres.py', args, stubout_file) result = testutils.validate_results(results, expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result
def test_userres_arg_9(): """ userres test run: arg_9 """ args = """--debug p1 s1 s2 s3""" cmdout = \ """Setting new start time for for reservation 'p1': Tue Mar 26 22:01:40 2013 Setting new start time for for reservation 's1': Tue Mar 26 22:01:40 2013 Setting new start time for for reservation 's2': Tue Mar 26 22:01:40 2013 Setting new start time for for reservation 's3': Tue Mar 26 22:01:40 2013 """ cmderr = \ """ userres.py --debug p1 s1 s2 s3 component: "scheduler.get_reservations", defer: False get_reservations( [{'duration': '*', 'start': '*', 'cycle': '*', 'name': 'p1', 'users': '*'}, {'duration': '*', 'start': '*', 'cycle': '*', 'name': 's1', 'users': '*'}, {'duration': '*', 'start': '*', 'cycle': '*', 'name': 's2', 'users': '*'}, {'duration': '*', 'start': '*', 'cycle': '*', 'name': 's3', 'users': '*'}], ) component: "scheduler.set_reservations", defer: False set_reservations( [{'name': 'p1'}], {'start': 1364335300.0}, gooduser, ) component: "scheduler.set_reservations", defer: False set_reservations( [{'name': 's1'}], {'start': 1364335300.0}, gooduser, ) component: "scheduler.set_reservations", defer: False set_reservations( [{'name': 's2'}], {'start': 1364335300.0}, gooduser, ) component: "scheduler.set_reservations", defer: False set_reservations( [{'name': 's3'}], {'start': 1364335300.0}, gooduser, ) """ stubout = \ """ GET_RESERVATIONS cycle:* cycle type: <type 'str'> duration:* duration type: <type 'str'> name:p1 name type: <type 'str'> start:* start type: <type 'str'> users:* users type: <type 'str'> cycle:* cycle type: <type 'str'> duration:* duration type: <type 'str'> name:s1 name type: <type 'str'> start:* start type: <type 'str'> users:* users type: <type 'str'> cycle:* cycle type: <type 'str'> duration:* duration type: <type 'str'> name:s2 name type: <type 'str'> start:* start type: <type 'str'> users:* users type: <type 'str'> cycle:* cycle type: <type 'str'> duration:* duration type: <type 'str'> name:s3 name type: <type 'str'> start:* start type: <type 'str'> users:* users type: <type 'str'> SET_RESERVATIONS name:p1 name type: <type 'str'> start:1364335300.0 start type: <type 'float'> user: gooduser SET_RESERVATIONS name:s1 name type: <type 'str'> start:1364335300.0 start type: <type 'float'> user: gooduser SET_RESERVATIONS name:s2 name type: <type 'str'> start:1364335300.0 start type: <type 'float'> user: gooduser SET_RESERVATIONS name:s3 name type: <type 'str'> start:1364335300.0 start type: <type 'float'> user: gooduser """ stubout_file = "stub.out" expected_results = ( 0, # Expected return status cmdout, # Expected command output stubout, # Expected stub functions output cmderr, # Expected command error output ) testutils.save_testhook("") results = testutils.run_cmd('userres.py', args, stubout_file) result = testutils.validate_results(results, expected_results) testutils.remove_testhook() correct = 1 assert result == correct, "Result:\n%s" % result