Mercurial > repos > shellac > guppy_basecaller
view env/lib/python3.7/site-packages/bioblend/_tests/TestCloudmanMock.py @ 3:758bc20232e8 draft
"planemo upload commit 2a0fe2cc28b09e101d37293e53e82f61762262ec"
author | shellac |
---|---|
date | Thu, 14 May 2020 16:20:52 -0400 |
parents | 26e78fe6e8c4 |
children |
line wrap: on
line source
""" Tests the functionality of the BioBlend CloudMan API, without actually making calls to a remote CloudMan instance/server. These don't actually ensure that BioBlend is integrated with CloudMan correctly. They only ensure that if you refactor the BioBlend CloudMan API code, that it will maintain its current behaviour. """ try: from unittest.mock import MagicMock except ImportError: # Python < 3.3 from mock import MagicMock from bioblend import cloudman from .test_util import unittest class TestCloudmanMock(unittest.TestCase): def setUp(self): url = "http://127.0.0.1:42284" password = "password" self.cm = cloudman.CloudManInstance(url, password) # def test_initialize(self): # self.cm._make_get_request = MagicMock(return_value="{}") # # ## Set cluster type # self.cm.initialize(type="Galaxy") # # params = {'startup_opt': 'Galaxy'} # self.cm._make_get_request.assert_called_with("initialize_cluster", parameters=params) def test_get_status(self): # Set return value of call self.cm._make_get_request = MagicMock(return_value={}) status = self.cm.get_status() self.assertNotEqual(status, None) self.assertEqual(status, {}) # Check that the correct URL was called self.cm._make_get_request.assert_called_with("instance_state_json") def test_get_nodes(self): # Set return value of call self.cm._make_get_request = MagicMock(return_value={'instances': []}) nodes = self.cm.get_nodes() self.assertIsNotNone(nodes) self.assertEqual(len(nodes), 0) # Check that the correct URL was called self.cm._make_get_request.assert_called_with("instance_feed_json") def test_add_nodes(self): self.cm._make_get_request = MagicMock(return_value="{}") num_nodes = 10 status = self.cm.add_nodes(num_nodes) self.assertIsNotNone(status) # Check that the correct URL was called params = {'number_nodes': 10, 'instance_type': '', 'spot_price': ''} self.cm._make_get_request.assert_called_with("add_instances", parameters=params) def test_remove_nodes(self): self.cm._make_get_request = MagicMock(return_value="{}") num_nodes = 10 status = self.cm.remove_nodes(num_nodes, force=True) self.assertIsNotNone(status) # Check that the correct URL was called params = {'number_nodes': 10, 'force_termination': True} self.cm._make_get_request.assert_called_with("remove_instances", parameters=params) def test_remove_node(self): self.cm._make_get_request = MagicMock(return_value="{}") instance_id = "abcdef" self.cm.remove_node(instance_id, force=True) # Check that the correct URL was called params = {'instance_id': "abcdef"} self.cm._make_get_request.assert_called_with("remove_instance", parameters=params) def test_reboot_node(self): self.cm._make_get_request = MagicMock(return_value="{}") instance_id = "abcdef" self.cm.reboot_node(instance_id) # Check that the correct URL was called params = {'instance_id': "abcdef"} self.cm._make_get_request.assert_called_with("reboot_instance", parameters=params) def test_autoscaling_enabled_true(self): return_json_string = {"autoscaling": {"use_autoscaling": True, "as_max": "3", "as_min": "1"}} self.cm._make_get_request = MagicMock(return_value=return_json_string) self.assertTrue(self.cm.autoscaling_enabled()) def test_autoscaling_enabled_false(self): return_json_string = {"autoscaling": {"use_autoscaling": False, "as_max": "3", "as_min": "1"}} self.cm._make_get_request = MagicMock(return_value=return_json_string) self.assertFalse(self.cm.autoscaling_enabled()) def test_enable_autoscaling(self): return_json_string = {"autoscaling": {"use_autoscaling": False, "as_max": "N/A", "as_min": "N/A"}} self.cm._make_get_request = MagicMock(return_value=return_json_string) self.assertFalse(self.cm.autoscaling_enabled()) self.cm.enable_autoscaling(minimum_nodes=0, maximum_nodes=19) # Check that the correct URL was called params = {'as_min': 0, 'as_max': 19} self.cm._make_get_request.assert_called_with("toggle_autoscaling", parameters=params) return_json_string = {"autoscaling": {"use_autoscaling": True, "as_max": "19", "as_min": "0"}} self.cm.enable_autoscaling(minimum_nodes=0, maximum_nodes=19) # Check that the correct URL was called params = {'as_min': 0, 'as_max': 19} self.cm._make_get_request.assert_called_with("toggle_autoscaling", parameters=params) def test_disable_autoscaling(self): return_json_string = {"autoscaling": {"use_autoscaling": True, "as_max": "3", "as_min": "1"}} self.cm._make_get_request = MagicMock(return_value=return_json_string) self.cm.disable_autoscaling() self.cm._make_get_request.assert_called_with("toggle_autoscaling") def test_adjust_autoscaling(self): return_json_string = {"autoscaling": {"use_autoscaling": True, "as_max": "3", "as_min": "1"}} self.cm._make_get_request = MagicMock(return_value=return_json_string) self.cm.adjust_autoscaling(minimum_nodes=3, maximum_nodes=4) params = {'as_min_adj': 3, 'as_max_adj': 4} self.cm._make_get_request.assert_called_with("adjust_autoscaling", parameters=params) def test_get_galaxy_state_stopped(self): return_json = {"status": "'Galaxy' is not running", "srvc": "Galaxy"} self.cm._make_get_request = MagicMock(return_value=return_json) self.assertEqual(self.cm.get_galaxy_state()['status'], "'Galaxy' is not running") params = {'srvc': "Galaxy"} self.cm._make_get_request.assert_called_with("get_srvc_status", parameters=params)