@@ -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