34
34
S3_STORAGE_CLASS = 'DEEP_ARCHIVE'
35
35
S3_STORAGE_CLASS_2 = 'GLACIER'
36
36
37
+ SLURM_WALLTIME_DAYS = 8
38
+ SLURM_WALLTIME_HOURS = 1
39
+ SLURM_PARTITION = 'test_partition'
40
+ SLURM_QOS = 'test_qos'
41
+
42
+ SLURM_LOCAL_SCRATCH = 'test_lscratch'
43
+ SLURM_SCRIPT_SCRATCH = 'test_script_scratch'
44
+ SLURM_SCRIPT_TEARS_DOWN = 'test_script_tears_down'
45
+ SLURM_ROOT = 'test_root'
46
+
37
47
SHARED_DIR = os .path .join (tempfile .gettempdir (), 'shared_dir' )
38
48
39
49
@@ -493,7 +503,7 @@ def test_set_shared_froster_shared_config_exist(self, mock_print, mock_input_con
493
503
self .assertTrue (os .path .exists (archive_json_file_shared ))
494
504
495
505
496
- @patch ('builtins.print' )
506
+ # @patch('builtins.print')
497
507
class TestConfigNIH (unittest .TestCase ):
498
508
499
509
# Method executed before every test
@@ -532,6 +542,28 @@ def test_set_nih(self, mock_print, mock_input_confirm):
532
542
NIH_SECTION , 'is_nih' , 'False' )
533
543
534
544
545
+ @patch ('inquirer.confirm' , side_effect = [True , True , False ])
546
+ @patch ('inquirer.prompt' , return_value = {'shared_dir' : SHARED_DIR })
547
+ def test_set_nih_when_shared_config (self , mock_print , mock_input_confirm , mock_input_promp ):
548
+ '''- Set the NIH flag to True and then to False.'''
549
+
550
+ # Call set_shared method
551
+ self .assertTrue (self .cfg .set_shared ())
552
+
553
+ # Call set_user method
554
+ self .assertTrue (self .cfg .set_nih ())
555
+
556
+ # Check that the configuration file was updated correctly
557
+ check_ini_file (self , self .cfg .shared_config_file ,
558
+ NIH_SECTION , 'is_nih' , 'True' )
559
+
560
+ # Call set_user method
561
+ self .assertTrue (self .cfg .set_nih ())
562
+
563
+ # Check that the configuration file was updated correctly
564
+ check_ini_file (self , self .cfg .shared_config_file ,
565
+ NIH_SECTION , 'is_nih' , 'False' )
566
+
535
567
@patch ('builtins.print' )
536
568
class TestConfigS3 (unittest .TestCase ):
537
569
@@ -638,6 +670,39 @@ def test_set_s3(self, mock_print, mock_input_list, mock_input_text):
638
670
# Check the bucket was created
639
671
self .assertIn (S3_BUCKET_NAME , s3_buckets )
640
672
673
+
674
+ @patch ('inquirer.list_input' , side_effect = ['+ Create new bucket' , S3_STORAGE_CLASS ])
675
+ @patch ('inquirer.text' , side_effect = [S3_BUCKET_NAME , S3_ARCHIVE_DIR ])
676
+ @patch ('inquirer.confirm' , side_effect = [True ])
677
+ @patch ('inquirer.prompt' , return_value = {'shared_dir' : SHARED_DIR })
678
+ def test_set_s3_when_shared_config (self , mock_print , mock_input_list , mock_input_text , mock_input_confirm , mock_input_prompt ):
679
+ '''- Set a new S3 bucket when shared configuration.'''
680
+
681
+ # Call set_shared method
682
+ self .assertTrue (self .cfg .set_shared ())
683
+
684
+ # Call set_s3 method
685
+ self .assertTrue (self .cfg .set_s3 (self .aws ))
686
+
687
+ # Check that the configuration files were updated correctly
688
+ check_ini_file (self , self .cfg .shared_config_file ,
689
+ S3_SECTION , 'bucket_name' , S3_BUCKET_NAME )
690
+
691
+ check_ini_file (self , self .cfg .shared_config_file ,
692
+ S3_SECTION , 'archive_dir' , S3_ARCHIVE_DIR )
693
+
694
+ check_ini_file (self , self .cfg .shared_config_file ,
695
+ S3_SECTION , 'storage_class' , S3_STORAGE_CLASS )
696
+
697
+ # Check that the s3_init is set
698
+ self .assertTrue (self .cfg .s3_init )
699
+
700
+ # Get the buckets list
701
+ s3_buckets = self .aws .get_buckets ()
702
+
703
+ # Check the bucket was created
704
+ self .assertIn (S3_BUCKET_NAME , s3_buckets )
705
+
641
706
@patch ('inquirer.list_input' , side_effect = ['+ Create new bucket' , S3_STORAGE_CLASS , S3_BUCKET_NAME , S3_STORAGE_CLASS_2 ])
642
707
@patch ('inquirer.text' , side_effect = [S3_BUCKET_NAME , S3_ARCHIVE_DIR , S3_ARCHIVE_DIR_2 ])
643
708
def test_set_s3_select_bucket (self , mock_print , mock_input_list , mock_input_text ):
@@ -669,9 +734,57 @@ def test_set_s3_select_bucket(self, mock_print, mock_input_list, mock_input_text
669
734
self .assertNotIn (S3_BUCKET_NAME , s3_buckets )
670
735
671
736
737
+ # TODO: SLURM part pending
738
+
739
+ # # @patch('builtins.print')
740
+ # class TestConfigSlurm(unittest.TestCase):
741
+
742
+ # # Method executed before every test
743
+ # def setUp(self):
744
+ # init_froster(self)
745
+
746
+ # # Method executed after every test
747
+ # def tearDown(self):
748
+ # deinit_froster(self)
749
+
750
+ # @patch('shutil.which', return_value=True)
751
+ # @patch('inquirer.text', side_effect=[SLURM_WALLTIME_DAYS, SLURM_WALLTIME_HOURS, SLURM_LOCAL_SCRATCH, SLURM_SCRIPT_SCRATCH, SLURM_SCRIPT_TEARS_DOWN, SLURM_ROOT])
752
+ # @patch('inquirer.list_input', side_effect=[SLURM_PARTITION, SLURM_QOS])
753
+ # def test_set_slurm(self, mock_shutil, mock_input_text, mock_input_list):
754
+ # '''- set_slurm'''
755
+
756
+ # # Call set_slurm method
757
+ # self.cfg.set_slurm(self.args)
758
+
759
+ # # Check that the configuration files were updated correctly
760
+ # check_ini_file(self, self.cfg.config_file,
761
+ # 'SLURM', 'slurm_walltime_days', str(SLURM_WALLTIME_DAYS))
762
+
763
+ # check_ini_file(self, self.cfg.config_file,
764
+ # 'SLURM', 'slurm_walltime_hours', str(SLURM_WALLTIME_HOURS))
765
+
766
+ # check_ini_file(self, self.cfg.config_file,
767
+ # 'SLURM', 'slurm_partition', SLURM_PARTITION)
768
+
769
+ # check_ini_file(self, self.cfg.config_file,
770
+ # 'SLURM', 'slurm_qos', SLURM_QOS)
771
+
772
+ # check_ini_file(self, self.cfg.config_file,
773
+ # 'SLURM', 'slurm_lscratch', SLURM_LOCAL_SCRATCH)
774
+
775
+ # check_ini_file(self, self.cfg.config_file,
776
+ # 'SLURM', 'lscratch_mkdir', SLURM_SCRIPT_SCRATCH)
777
+
778
+ # check_ini_file(self, self.cfg.config_file,
779
+ # 'SLURM', 'lscratch_rmdir', SLURM_SCRIPT_TEARS_DOWN)
780
+
781
+ # check_ini_file(self, self.cfg.config_file,
782
+ # 'SLURM', 'lscratch_root', SLURM_ROOT)
783
+
784
+
672
785
if __name__ == '__main__' :
673
786
674
- if True :
787
+ if False :
675
788
unittest .main (verbosity = 2 )
676
789
else :
677
790
suite = unittest .TestSuite ()
@@ -680,6 +793,8 @@ def test_set_s3_select_bucket(self, mock_print, mock_input_list, mock_input_text
680
793
# suite.addTest(unittest.TestLoader().loadTestsFromTestCase(TestConfigShared))
681
794
# suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestConfigNIH))
682
795
# suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestConfigS3))
683
- # suite.addTest(TestConfigS3('test_set_s3_select_bucket'))
796
+ # suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestConfigSlurm))
797
+ # suite.addTest(TestConfigNIH('test_set_nih_when_shared_config'))
798
+ suite .addTest (TestConfigS3 ('test_set_s3_when_shared_config' ))
684
799
runner = unittest .TextTestRunner (verbosity = 2 )
685
800
runner .run (suite )
0 commit comments