Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pysqa/queueadapter.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ def list_clusters(self):
Returns:
list: List of computing clusters
"""
return self._queue_dict.keys()
return list(self._queue_dict.keys())

def switch_cluster(self, cluster_name):
"""
Expand Down
15 changes: 0 additions & 15 deletions tests/config/error/lsf.sh

This file was deleted.

6 changes: 1 addition & 5 deletions tests/config/error/queue.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1 @@
queue_type: Error
queue_primary: error
queues:
lsf: {cores_max: 100, cores_min: 10, run_time_max: 259200, script: lsf.sh}

queue_type: Error
5 changes: 5 additions & 0 deletions tests/config/multicluster/clusters.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
cluster_primary: local_slurm
cluster: {
local_slurm: local_slurm_queues.yaml,
remote_slurm: remote_queues.yaml
}
4 changes: 4 additions & 0 deletions tests/config/multicluster/local_slurm_queues.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
queue_type: SLURM
queue_primary: slurm
queues:
slurm: {cores_max: 100, cores_min: 10, run_time_max: 259200, script: ../slurm/slurm.sh}
13 changes: 13 additions & 0 deletions tests/config/multicluster/remote_queues.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
queue_type: REMOTE
queue_primary: remote
ssh_host: hpc-cluster.university.edu
ssh_username: hpcuser
known_hosts: ~/.ssh/known_hosts
ssh_key: ~/.ssh/id_rsa
ssh_remote_config_dir: /u/share/pysqa/resources/queues/
ssh_remote_path: /u/hpcuser/remote/
ssh_local_path: /home/localuser/projects/
ssh_continous_connection: True
ssh_delete_file_on_remote: False
queues:
remote: {cores_max: 100, cores_min: 10, run_time_max: 259200}
13 changes: 13 additions & 0 deletions tests/config/remote/queue.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
queue_type: REMOTE
queue_primary: remote
ssh_host: hpc-cluster.university.edu
ssh_username: hpcuser
known_hosts: ~/.ssh/known_hosts
ssh_key: ~/.ssh/id_rsa
ssh_remote_config_dir: /u/share/pysqa/resources/queues/
ssh_remote_path: /u/hpcuser/remote/
ssh_local_path: /home/localuser/projects/
ssh_continous_connection: True
ssh_delete_file_on_remote: False
queues:
remote: {cores_max: 100, cores_min: 10, run_time_max: 259200}
26 changes: 26 additions & 0 deletions tests/test_queueadapter.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@ def setUpClass(cls):
cls.sge = QueueAdapter(directory=os.path.join(cls.path, "config/sge"))
cls.moab = QueueAdapter(directory=os.path.join(cls.path, "config/moab"))
cls.gent = QueueAdapter(directory=os.path.join(cls.path, "config/gent"))
cls.remote = QueueAdapter(directory=os.path.join(cls.path, "config/remote"))
cls.multi = QueueAdapter(directory=os.path.join(cls.path, "config/multicluster"))

def test_missing_config(self):
self.assertRaises(
Expand All @@ -39,12 +41,36 @@ def test_config(self):
self.assertEqual(self.lsf.config["queue_type"], "LSF")
self.assertEqual(self.sge.config["queue_type"], "SGE")
self.assertEqual(self.moab.config["queue_type"], "MOAB")
self.assertEqual(self.gent.config["queue_type"], "GENT")
self.assertEqual(self.remote.config["queue_type"], "REMOTE")
self.assertEqual(self.multi.config["queue_type"], "SLURM")
self.assertEqual(self.torque.config["queue_primary"], "torque")
self.assertEqual(self.slurm.config["queue_primary"], "slurm")
self.assertEqual(self.lsf.config["queue_primary"], "lsf")
self.assertEqual(self.sge.config["queue_primary"], "impi_hydra_small")
self.assertEqual(self.moab.config["queue_primary"], "moab")
self.assertEqual(self.gent.config["queue_primary"], "slurm")
self.assertEqual(self.remote.config["queue_primary"], "remote")
self.assertEqual(self.multi.config["queue_primary"], "slurm")

def test_list_clusters(self):
self.assertEqual(self.torque.list_clusters(), ['default'])
self.assertEqual(self.slurm.list_clusters(), ['default'])
self.assertEqual(self.lsf.list_clusters(), ['default'])
self.assertEqual(self.moab.list_clusters(), ['default'])
self.assertEqual(self.torque.list_clusters(), ['default'])
self.assertEqual(self.gent.list_clusters(), ['default'])
self.assertEqual(self.remote.list_clusters(), ['default'])
self.assertEqual(self.multi.list_clusters(), ['local_slurm', 'remote_slurm'])

def test_ssh_delete_file_on_remote(self):
self.assertEqual(self.torque.ssh_delete_file_on_remote, True)
self.assertEqual(self.slurm.ssh_delete_file_on_remote, True)
self.assertEqual(self.lsf.ssh_delete_file_on_remote, True)
self.assertEqual(self.moab.ssh_delete_file_on_remote, True)
self.assertEqual(self.torque.ssh_delete_file_on_remote, True)
self.assertEqual(self.gent.ssh_delete_file_on_remote, True)
self.assertEqual(self.remote.ssh_delete_file_on_remote, False)

def test_value_in_range(self):
self.assertEqual(
Expand Down