@@ -87,29 +87,62 @@ def test_is_static_node(nodename, expected_is_static):
8787                "172.31.10.155\n "  
8888                "172-31-10-155\n "  
8989                "MIXED+CLOUD\n "  
90+                 "multiple\n "  
91+                 "---\n "  
9092                "multiple-dy-c5xlarge-2\n "  
9193                "172.31.7.218\n "  
9294                "172-31-7-218\n "  
9395                "IDLE+CLOUD+POWER\n "  
96+                 "multiple\n "  
97+                 "---\n "  
9498                "multiple-dy-c5xlarge-3\n "  
9599                "multiple-dy-c5xlarge-3\n "  
96100                "multiple-dy-c5xlarge-3\n "  
97-                 "IDLE+CLOUD+POWER"  
101+                 "IDLE+CLOUD+POWER\n "  
102+                 "multiple\n "  
103+                 "---\n "  
104+                 "multiple-dy-c5xlarge-4\n "  
105+                 "multiple-dy-c5xlarge-4\n "  
106+                 "multiple-dy-c5xlarge-4\n "  
107+                 "IDLE+CLOUD+POWER\n "  
108+                 "multiple,multiple2\n "  
109+                 "---\n "  
110+                 "multiple-dy-c5xlarge-5\n "  
111+                 "multiple-dy-c5xlarge-5\n "  
112+                 "multiple-dy-c5xlarge-5\n "  
113+                 "IDLE+CLOUD+POWER\n "  
114+                 # missing partitions  
115+                 "---"  
98116            ), 
99117            [ 
100-                 SlurmNode ("multiple-dy-c5xlarge-1" , "172.31.10.155" , "172-31-10-155" , "MIXED+CLOUD" ), 
101-                 SlurmNode ("multiple-dy-c5xlarge-2" , "172.31.7.218" , "172-31-7-218" , "IDLE+CLOUD+POWER" ), 
118+                 SlurmNode ("multiple-dy-c5xlarge-1" , "172.31.10.155" , "172-31-10-155" , "MIXED+CLOUD" ,  "multiple" ), 
119+                 SlurmNode ("multiple-dy-c5xlarge-2" , "172.31.7.218" , "172-31-7-218" , "IDLE+CLOUD+POWER" ,  "multiple" ), 
102120                SlurmNode ( 
103121                    "multiple-dy-c5xlarge-3" , 
104122                    "multiple-dy-c5xlarge-3" , 
105123                    "multiple-dy-c5xlarge-3" , 
106124                    "IDLE+CLOUD+POWER" , 
125+                     "multiple" , 
126+                 ), 
127+                 SlurmNode ( 
128+                     "multiple-dy-c5xlarge-4" , 
129+                     "multiple-dy-c5xlarge-4" , 
130+                     "multiple-dy-c5xlarge-4" , 
131+                     "IDLE+CLOUD+POWER" , 
132+                     "multiple,multiple2" , 
133+                 ), 
134+                 SlurmNode ( 
135+                     "multiple-dy-c5xlarge-5" , 
136+                     "multiple-dy-c5xlarge-5" , 
137+                     "multiple-dy-c5xlarge-5" , 
138+                     "IDLE+CLOUD+POWER" , 
139+                     None , 
107140                ), 
108141            ], 
109142        ) 
110143    ], 
111144) 
112- def  test_parse_nodes_info (node_info , expected_parsed_nodes_output ,  mocker ):
145+ def  test_parse_nodes_info (node_info , expected_parsed_nodes_output ):
113146    assert_that (_parse_nodes_info (node_info )).is_equal_to (expected_parsed_nodes_output )
114147
115148
@@ -426,10 +459,13 @@ def test_update_nodes(batch_node_info, state, reason, raise_on_error, run_comman
426459@pytest .mark .parametrize ( 
427460    "node, expected_output" , 
428461    [ 
429-         (SlurmNode ("queue-name-st-t2micro-1" , "nodeip" , "nodehostname" , "somestate" ), True ), 
430-         (SlurmNode ("queue-name-st-dy-t2micro-1" , "nodeip" , "nodehostname" , "somestate" ), False ), 
431-         (SlurmNode ("queuename-dy-t2micro-1" , "nodeip" , "nodehostname" , "somestate" ), False ), 
432-         (SlurmNode ("queuename-dy-dy-dy-st-t2micro-1" , "nodeip" , "nodehostname" , "somestate" ), True ), 
462+         (SlurmNode ("queue-name-st-t2micro-1" , "nodeip" , "nodehostname" , "somestate" , "queue-name" ), True ), 
463+         (SlurmNode ("queue-name-st-dy-t2micro-1" , "nodeip" , "nodehostname" , "somestate" , "queue-name-st" ), False ), 
464+         (SlurmNode ("queuename-dy-t2micro-1" , "nodeip" , "nodehostname" , "somestate" , "queuename" ), False ), 
465+         ( 
466+             SlurmNode ("queuename-dy-dy-dy-st-t2micro-1" , "nodeip" , "nodehostname" , "somestate" , "queuename-dy-dy-dy" ), 
467+             True , 
468+         ), 
433469    ], 
434470) 
435471def  test_slurm_node_is_static (node , expected_output ):
@@ -439,8 +475,11 @@ def test_slurm_node_is_static(node, expected_output):
439475@pytest .mark .parametrize ( 
440476    "node, expected_output" , 
441477    [ 
442-         (SlurmNode ("queue-name-st-t2micro-1" , "nodeip" , "nodehostname" , "somestate" ), True ), 
443-         (SlurmNode ("queuename-dy-t2micro-1" , "queuename-dy-t2micro-1" , "nodehostname" , "somestate" ), False ), 
478+         (SlurmNode ("queue-name-st-t2micro-1" , "nodeip" , "nodehostname" , "somestate" , "queue-name" ), True ), 
479+         ( 
480+             SlurmNode ("queuename-dy-t2micro-1" , "queuename-dy-t2micro-1" , "nodehostname" , "somestate" , "queuename" ), 
481+             False , 
482+         ), 
444483    ], 
445484) 
446485def  test_slurm_node_is_nodeaddr_set (node , expected_output ):
@@ -450,12 +489,12 @@ def test_slurm_node_is_nodeaddr_set(node, expected_output):
450489@pytest .mark .parametrize ( 
451490    "node, expected_output" , 
452491    [ 
453-         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "somestate" ), False ), 
454-         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "MIXED#+CLOUD+DRAIN" ), True ), 
455-         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "ALLOCATED*+CLOUD+DRAIN" ), True ), 
456-         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "IDLE+CLOUD" ), False ), 
457-         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "DOWN+CLOUD" ), False ), 
458-         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "COMPLETING+DRAIN" ), True ), 
492+         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "somestate" ,  "queue1" ), False ), 
493+         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "MIXED#+CLOUD+DRAIN" ,  "queue1" ), True ), 
494+         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "ALLOCATED*+CLOUD+DRAIN" ,  "queue1" ), True ), 
495+         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "IDLE+CLOUD" ,  "queue1" ), False ), 
496+         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "DOWN+CLOUD" ,  "queue1" ), False ), 
497+         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "COMPLETING+DRAIN" ,  "queue1" ), True ), 
459498    ], 
460499) 
461500def  test_slurm_node_has_job (node , expected_output ):
@@ -465,11 +504,11 @@ def test_slurm_node_has_job(node, expected_output):
465504@pytest .mark .parametrize ( 
466505    "node, expected_output" , 
467506    [ 
468-         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "somestate" ), False ), 
469-         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "MIXED#+CLOUD+DRAIN" ), False ), 
470-         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "ALLOCATED*+CLOUD+DRAIN" ), False ), 
471-         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "IDLE*+CLOUD+DRAIN" ), True ), 
472-         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "DOWN+CLOUD+DRAIN" ), True ), 
507+         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "somestate" ,  "queue1" ), False ), 
508+         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "MIXED#+CLOUD+DRAIN" ,  "queue1" ), False ), 
509+         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "ALLOCATED*+CLOUD+DRAIN" ,  "queue1" ), False ), 
510+         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "IDLE*+CLOUD+DRAIN" ,  "queue1" ), True ), 
511+         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "DOWN+CLOUD+DRAIN" ,  "queue1" ), True ), 
473512    ], 
474513) 
475514def  test_slurm_node_is_drained (node , expected_output ):
@@ -479,12 +518,12 @@ def test_slurm_node_is_drained(node, expected_output):
479518@pytest .mark .parametrize ( 
480519    "node, expected_output" , 
481520    [ 
482-         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "somestate" ), False ), 
483-         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "MIXED#+CLOUD+DOWN" ), True ), 
484-         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "ALLOCATED*+CLOUD+DRAIN" ), False ), 
485-         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "DOWN*+CLOUD" ), True ), 
486-         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "DOWN+CLOUD+POWER" ), True ), 
487-         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "IDLE~+CLOUD+POWERING_DOWN" ), False ), 
521+         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "somestate" ,  "queue1" ), False ), 
522+         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "MIXED#+CLOUD+DOWN" ,  "queue1" ), True ), 
523+         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "ALLOCATED*+CLOUD+DRAIN" ,  "queue1" ), False ), 
524+         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "DOWN*+CLOUD" ,  "queue1" ), True ), 
525+         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "DOWN+CLOUD+POWER" ,  "queue1" ), True ), 
526+         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "IDLE~+CLOUD+POWERING_DOWN" ,  "queue1" ), False ), 
488527    ], 
489528) 
490529def  test_slurm_node_is_down (node , expected_output ):
@@ -494,11 +533,11 @@ def test_slurm_node_is_down(node, expected_output):
494533@pytest .mark .parametrize ( 
495534    "node, expected_output" , 
496535    [ 
497-         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "IDLE+CLOUD+POWER" ), True ), 
498-         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "MIXED#+CLOUD+DRAIN" ), False ), 
499-         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "ALLOCATED*+CLOUD+DOWN" ), False ), 
500-         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "IDLE+CLOUD+POWERING_DOWN" ), False ), 
501-         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "IDLE#+CLOUD" ), True ), 
536+         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "IDLE+CLOUD+POWER" ,  "queue1" ), True ), 
537+         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "MIXED#+CLOUD+DRAIN" ,  "queue1" ), False ), 
538+         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "ALLOCATED*+CLOUD+DOWN" ,  "queue1" ), False ), 
539+         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "IDLE+CLOUD+POWERING_DOWN" ,  "queue1" ), False ), 
540+         (SlurmNode ("queue1-st-c5xlarge-1" , "nodeip" , "nodehostname" , "IDLE#+CLOUD" ,  "queue1" ), True ), 
502541    ], 
503542) 
504543def  test_slurm_node_is_up (node , expected_output ):
0 commit comments