5
5
6
6
from ..database import *
7
7
8
- from .conftest import drop_database
8
+ from .conftest import drop_database , run_shell_cmd
9
9
10
10
11
11
def test_connect_to_database (db_config ):
@@ -77,4 +77,47 @@ def test_add_duplicate_site_user(self):
77
77
user , group = create_user (* self .USER_ARGS )
78
78
add_site_user ('test-site' , user )
79
79
with pytest .raises (DuplicateSiteUser ):
80
- add_site_user ('test-site' , user )
80
+ add_site_user ('test-site' , user )
81
+
82
+
83
+ class TestSlurm :
84
+
85
+ @pytest .fixture (autouse = True )
86
+ def setup_site (self , db_config ):
87
+ drop_database (db_config )
88
+ create_site ('test-site' , 'test.site.com' )
89
+ yield
90
+ drop_database (db_config )
91
+
92
+ def test_create_qos (self ):
93
+ qos = create_slurm_qos ('test-qos' ,
94
+ 'test-site' ,
95
+ group_limits = SlurmTRES (cpus = 16 , mem = '1000M' , gpus = 0 ),
96
+ user_limits = SlurmTRES (cpus = 16 , mem = '1000M' , gpus = 0 ),
97
+ job_limits = SlurmTRES (cpus = 16 , mem = '1000M' , gpus = 0 ))
98
+ assert qos .qosname == 'test-qos'
99
+ assert qos .sitename == 'test-site'
100
+ assert SiteSlurmQOS .objects .count () == 1
101
+
102
+ def test_create_qos_cleaning (self ):
103
+ qos = create_slurm_qos ('test-qos' ,
104
+ 'test-site' ,
105
+ group_limits = SlurmTRES (cpus = 16 , mem = '1G' , gpus = 0 ),
106
+ user_limits = SlurmTRES (cpus = 16 , mem = '1G' , gpus = 0 ),
107
+ job_limits = SlurmTRES (cpus = 16 , mem = '1G' , gpus = 0 ))
108
+ assert qos .group_limits .mem == '1024M'
109
+ assert qos .user_limits .mem == '1024M'
110
+ assert qos .job_limits .mem == '1024M'
111
+
112
+ def test_create_qos_command (self , config_file ):
113
+ run_shell_cmd (['cheeto' , 'database' , 'slurm' , 'new' , 'qos' ,
114
+ '--config' , config_file ,
115
+ '--qosname' , 'test-qos' ,
116
+ '--site' , 'test-site' ,
117
+ '--group-limits' , 'cpus=16,mem=1G,gpus=0' ,
118
+ '--user-limits' , 'cpus=16,mem=1G,gpus=0' ,
119
+ '--job-limits' , 'cpus=16,mem=1G,gpus=0' ])
120
+ assert SiteSlurmQOS .objects .count () == 1
121
+ assert SiteSlurmQOS .objects .get (qosname = 'test-qos' ).group_limits .mem == '1024M'
122
+ assert SiteSlurmQOS .objects .get (qosname = 'test-qos' ).user_limits .mem == '1024M'
123
+ assert SiteSlurmQOS .objects .get (qosname = 'test-qos' ).job_limits .mem == '1024M'
0 commit comments