예제 #1
0
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
예제 #2
0
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
예제 #3
0
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
예제 #4
0
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
예제 #5
0
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
예제 #6
0
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
예제 #8
0
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
예제 #9
0
파일: showres_test.py 프로젝트: ido/cobalt
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
예제 #10
0
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
예제 #11
0
파일: qselect_test.py 프로젝트: ido/cobalt
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
예제 #12
0
파일: qselect_test.py 프로젝트: ido/cobalt
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
예제 #14
0
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
예제 #15
0
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
예제 #16
0
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
예제 #17
0
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
예제 #18
0
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
예제 #19
0
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
예제 #20
0
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
예제 #21
0
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
예제 #22
0
파일: qselect_test.py 프로젝트: ido/cobalt
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
예제 #23
0
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
예제 #24
0
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
예제 #25
0
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
예제 #26
0
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
예제 #27
0
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
예제 #28
0
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
예제 #29
0
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
예제 #30
0
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
예제 #31
0
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
예제 #32
0
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
예제 #33
0
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
예제 #34
0
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
예제 #35
0
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
예제 #36
0
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
예제 #37
0
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
예제 #38
0
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
예제 #39
0
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
예제 #40
0
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
예제 #41
0
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
예제 #42
0
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
예제 #43
0
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
예제 #44
0
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
예제 #45
0
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
예제 #46
0
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
예제 #47
0
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
예제 #48
0
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
예제 #49
0
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
예제 #50
0
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
예제 #51
0
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
예제 #52
0
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