def test_failure_roles_not_a_list(self): stderr = MagicMock() tmpdir, bundle_file = create_temp_bundle( strip_margin("""|nrOfCpus = {} |memory = {} |diskSpace = {} |roles = {} |""").format(self.nr_of_cpus, self.memory, self.disk_space, '-'.join(self.roles))) resolve_bundle_mock = MagicMock(return_value=(self.bundle_name, bundle_file)) with patch('conductr_cli.resolver.resolve_bundle', resolve_bundle_mock): args = self.default_args.copy() args.update({'bundle': bundle_file}) logging_setup.configure_logging(MagicMock(**args), err_output=stderr) result = conduct_load.load(MagicMock(**args)) self.assertFalse(result) resolve_bundle_mock.assert_called_with(self.custom_settings, self.bundle_resolve_cache_dir, bundle_file) self.assertEqual( as_error(strip_margin("""|Error: Unable to parse bundle.conf. |Error: roles has type 'str' rather than 'list'. |""")), self.output(stderr)) shutil.rmtree(tmpdir)
def test_failure_roles_not_a_list(self): stderr = MagicMock() tmpdir, bundle_file = create_temp_bundle( strip_margin("""|nrOfCpus = {} |memory = {} |diskSpace = {} |roles = {} |""").format(self.nr_of_cpus, self.memory, self.disk_space, '-'.join(self.roles))) resolve_bundle_mock = MagicMock(return_value=(self.bundle_file_name, bundle_file)) with patch('conductr_cli.resolver.resolve_bundle', resolve_bundle_mock): args = self.default_args.copy() args.update({'bundle': bundle_file}) logging_setup.configure_logging(MagicMock(**args), err_output=stderr) result = conduct_load.load(MagicMock(**args)) self.assertFalse(result) resolve_bundle_mock.assert_called_with(self.custom_settings, self.bundle_resolve_cache_dir, bundle_file, self.offline_mode) self.assertEqual( as_error( strip_margin("""|Error: Unable to parse bundle.conf. |Error: roles has type 'str' rather than 'list'. |""")), self.output(stderr)) shutil.rmtree(tmpdir)
def __init__(self, method_name): super().__init__(method_name) self.bundle_id = '45e0c477d3e5ea92aa8d85c0d8f3e25c' self.nr_of_cpus = 1.0 self.memory = 200 self.disk_space = 100 self.roles = ['web-server'] self.bundle_file_name = 'bundle.zip' self.system = 'bundle' self.custom_settings = Mock() self.bundle_resolve_cache_dir = 'bundle-resolve-cache-dir' self.tmpdir, self.bundle_file = create_temp_bundle( strip_margin("""|nrOfCpus = {}, |memory = {}, |diskSpace = {}, |roles = [{}], |name = {}, |system = {}, |""").format(self.nr_of_cpus, self.memory, self.disk_space, ', '.join(self.roles), self.bundle_file_name, self.system)) self.default_args = { 'dcos_mode': False, 'scheme': 'http', 'host': '127.0.0.1', 'port': 9005, 'base_path': '/', 'api_version': '1', 'disable_instructions': False, 'verbose': False, 'quiet': False, 'no_wait': False, 'offline_mode': False, 'long_ids': False, 'command': 'conduct', 'cli_parameters': '', 'custom_settings': self.custom_settings, 'resolve_cache_dir': self.bundle_resolve_cache_dir, 'bundle': self.bundle_file, 'configuration': None, 'conductr_auth': self.conductr_auth, 'server_verification_file': self.server_verification_file } self.default_url = 'http://127.0.0.1:9005/bundles' self.default_files = [ ('nrOfCpus', str(self.nr_of_cpus)), ('memory', str(self.memory)), ('diskSpace', str(self.disk_space)), ('roles', ' '.join(self.roles)), ('bundleName', self.bundle_file_name), ('system', self.system), ('bundle', (self.bundle_file_name, 1)) ]
def test_failure_no_disk_space(self): stderr = MagicMock() tmpdir, bundle_file = create_temp_bundle( strip_margin( """|nrOfCpus = {} |memory = {} |roles = [{}] |""" ).format(self.nr_of_cpus, self.memory, ", ".join(self.roles)) ) resolve_bundle_mock = MagicMock(return_value=(self.bundle_file_name, bundle_file)) with patch("conductr_cli.resolver.resolve_bundle", resolve_bundle_mock): args = self.default_args.copy() args.update({"bundle": bundle_file}) logging_setup.configure_logging(MagicMock(**args), err_output=stderr) result = conduct_load.load(MagicMock(**args)) self.assertFalse(result) resolve_bundle_mock.assert_called_with(self.custom_settings, self.bundle_resolve_cache_dir, bundle_file) self.assertEqual( as_error( strip_margin( """|Error: Unable to parse bundle.conf. |Error: No configuration setting found for key diskSpace. |""" ) ), self.output(stderr), ) shutil.rmtree(tmpdir)
def __init__(self, method_name): super().__init__(method_name) self.bundle_id = "45e0c477d3e5ea92aa8d85c0d8f3e25c" self.nr_of_cpus = 1.0 self.memory = 200 self.disk_space = 100 self.roles = ["web-server"] self.bundle_file_name = "bundle.zip" self.system = "bundle" self.custom_settings = Mock() self.bundle_resolve_cache_dir = "bundle-resolve-cache-dir" self.tmpdir, self.bundle_file = create_temp_bundle( strip_margin( """|nrOfCpus = {}, |memory = {}, |diskSpace = {}, |roles = [{}], |name = {}, |system = {}, |""" ).format( self.nr_of_cpus, self.memory, self.disk_space, ", ".join(self.roles), self.bundle_file_name, self.system ) ) self.default_args = { "dcos_mode": False, "scheme": "http", "host": "127.0.0.1", "port": 9005, "base_path": "/", "api_version": "1", "disable_instructions": False, "verbose": False, "quiet": False, "no_wait": False, "long_ids": False, "command": "conduct", "cli_parameters": "", "custom_settings": self.custom_settings, "resolve_cache_dir": self.bundle_resolve_cache_dir, "bundle": self.bundle_file, "configuration": None, "conductr_auth": self.conductr_auth, "server_verification_file": self.server_verification_file, } self.default_url = "http://127.0.0.1:9005/bundles" self.default_files = [ ("nrOfCpus", str(self.nr_of_cpus)), ("memory", str(self.memory)), ("diskSpace", str(self.disk_space)), ("roles", " ".join(self.roles)), ("bundleName", self.bundle_file_name), ("system", self.system), ("bundle", (self.bundle_file_name, 1)), ]
def __init__(self, method_name): super().__init__(method_name) self.bundle_id = '45e0c477d3e5ea92aa8d85c0d8f3e25c' self.nr_of_cpus = 1.0 self.memory = 200 self.disk_space = 100 self.roles = ['web-server'] self.bundle_name = 'bundle.zip' self.system = 'bundle' self.system_version = '2.3' self.compatibility_version = '2.0' self.custom_settings = Mock() self.bundle_resolve_cache_dir = 'bundle-resolve-cache-dir' self.tmpdir, self.bundle_file = create_temp_bundle( strip_margin("""|nrOfCpus = {} |memory = {} |diskSpace = {} |roles = [{}] |name = {} |system = {} |systemVersion = {} |compatibilityVersion = {} |""").format(self.nr_of_cpus, self.memory, self.disk_space, ', '.join(self.roles), self.bundle_name, self.system, self.system_version, self.compatibility_version)) self.default_args = { 'ip': '127.0.0.1', 'port': 9005, 'api_version': '2', 'verbose': False, 'quiet': False, 'no_wait': False, 'long_ids': False, 'cli_parameters': '', 'custom_settings': self.custom_settings, 'resolve_cache_dir': self.bundle_resolve_cache_dir, 'bundle': self.bundle_file, 'configuration': None } self.default_url = 'http://127.0.0.1:9005/v2/bundles' self.default_files = [ ('bundleConf', ('bundle.conf', 'mock bundle.conf')), ('bundle', (self.bundle_name, 1)) ]
def __init__(self, method_name): super().__init__(method_name) self.bundle_id = '45e0c477d3e5ea92aa8d85c0d8f3e25c' self.nr_of_cpus = 1.0 self.memory = 200 self.disk_space = 100 self.roles = ['web-server'] self.bundle_name = 'bundle.zip' self.system = 'bundle' self.system_version = '2.3' self.compatibility_version = '2.0' self.custom_settings = Mock() self.bundle_resolve_cache_dir = 'bundle-resolve-cache-dir' self.tmpdir, self.bundle_file = create_temp_bundle( strip_margin("""|nrOfCpus = {} |memory = {} |diskSpace = {} |roles = [{}] |name = {} |system = {} |systemVersion = {} |compatibilityVersion = {} |""").format(self.nr_of_cpus, self.memory, self.disk_space, ', '.join(self.roles), self.bundle_name, self.system, self.system_version, self.compatibility_version)) self.default_args = { 'ip': '127.0.0.1', 'port': 9005, 'api_version': '2', 'verbose': False, 'quiet': False, 'no_wait': False, 'long_ids': False, 'cli_parameters': '', 'custom_settings': self.custom_settings, 'resolve_cache_dir': self.bundle_resolve_cache_dir, 'bundle': self.bundle_file, 'configuration': None } self.default_url = 'http://127.0.0.1:9005/v2/bundles' self.default_files = [('bundleConf', ('bundle.conf', 'mock bundle.conf')), ('bundle', (self.bundle_name, 1))]
def test_failure_no_roles(self): stderr = MagicMock() tmpdir, bundle_file = create_temp_bundle( strip_margin("""|nrOfCpus = {} |memory = {} |diskSpace = {} |""").format(self.nr_of_cpus, self.memory, self.disk_space)) with patch('sys.stderr', stderr): args = self.default_args.copy() args.update({'bundle': bundle_file}) conduct_load.load(MagicMock(**args)) self.assertEqual( strip_margin("""|ERROR: Unable to parse bundle.conf. |ERROR: No configuration setting found for key roles. |"""), self.output(stderr)) shutil.rmtree(tmpdir)
def test_failure_roles_not_a_list(self): stderr = MagicMock() tmpdir, bundle_file = create_temp_bundle( strip_margin("""|nrOfCpus = {} |memory = {} |diskSpace = {} |roles = {} |""").format(self.nr_of_cpus, self.memory, self.disk_space, '-'.join(self.roles))) with patch('sys.stderr', stderr): args = self.default_args.copy() args.update({'bundle': bundle_file}) conduct_load.load(MagicMock(**args)) self.assertEqual( strip_margin("""|ERROR: Unable to parse bundle.conf. |ERROR: roles has type 'str' rather than 'list'. |"""), self.output(stderr)) shutil.rmtree(tmpdir)
def setUp(self): # noqa self.tmpdir, self.bundle_path = create_temp_bundle('bundle conf contents')