From 1b2f572210e6f4b385fe2210f4caf4b741a4dd29 Mon Sep 17 00:00:00 2001 From: NihalM99 Date: Thu, 26 Oct 2023 02:28:55 +0000 Subject: [PATCH 01/19] Fix for lb setting when using .ebextensions or save config files --- ebcli/controllers/create.py | 47 ++++++++++++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 3 deletions(-) diff --git a/ebcli/controllers/create.py b/ebcli/controllers/create.py index 5f08e0348..8474f1c16 100644 --- a/ebcli/controllers/create.py +++ b/ebcli/controllers/create.py @@ -13,7 +13,7 @@ import argparse import os import time - +import yaml from ebcli.core import io, fileoperations, hooks from ebcli.core.abstractcontroller import AbstractBaseController from ebcli.lib import elasticbeanstalk, utils, iam @@ -239,7 +239,7 @@ def do_command(self): cname = cname or get_environment_cname(env_name, provided_env_name, tier) key_name = key_name or commonops.get_default_keyname() vpc = self.form_vpc_object(tier, single) - elb_type = elb_type or get_elb_type_from_customer(interactive, single, tier) + elb_type = elb_type or get_elb_type_from_customer(interactive, single, tier,cfg_flag_used=cfg) shared_lb = get_shared_load_balancer(interactive, elb_type, platform, shared_lb, vpc) shared_lb_port = shared_lb_port or shared_lb_ops.get_shared_lb_port_from_customer(interactive, shared_lb) enable_spot = enable_spot or spotops.get_spot_request_from_customer(interactive) @@ -533,8 +533,46 @@ def get_cname_from_customer(env_name): break return cname +def get_elb_type_from_configs(use_saved_config=False): + """ + Retrieve the ELB type from either the .ebextensions or saved_configs directories. + :param use_saved_config: Boolean indicating if --cfg flag was used. + :return: ELB type if found, else None. + """ -def get_elb_type_from_customer(interactive, single, tier): + # If --cfg flag is used, prioritize checking saved_configs first + if use_saved_config: + saved_configs_dir = './.elasticbeanstalk/saved_configs' + if os.path.exists(saved_configs_dir): + for config_file in os.listdir(saved_configs_dir): + with open(os.path.join(saved_configs_dir, config_file), 'r') as f: + try: + config = yaml.safe_load(f) + option_settings = config.get('OptionSettings', {}) + for namespace, setting in option_settings.items(): + if namespace == 'aws:elasticbeanstalk:environment' and setting.get('LoadBalancerType'): + return setting['LoadBalancerType'] + except yaml.YAMLError: + continue + + else: + # Then check in .ebextensions + ebextensions_dir = './.ebextensions' + if os.path.exists(ebextensions_dir): + for config_file in os.listdir(ebextensions_dir): + with open(os.path.join(ebextensions_dir, config_file), 'r') as f: + try: + config = yaml.safe_load(f) + option_settings = config.get('option_settings', []) + for setting in option_settings: + if setting.get('namespace') == 'aws:elasticbeanstalk:environment' and setting.get('option_name') == 'LoadBalancerType': + return setting.get('value') + except yaml.YAMLError: + continue + + return None + +def get_elb_type_from_customer(interactive, single, tier, cfg_flag_used=False): """ Prompt customer to specify the ELB type if operating in the interactive mode and on a load-balanced environment. @@ -546,6 +584,9 @@ def get_elb_type_from_customer(interactive, single, tier): :param tier: the tier type of the environment :return: selected ELB type which is one among ['application', 'classic', 'network'] """ + elb_type_from_config = get_elb_type_from_configs(use_saved_config=cfg_flag_used) + if elb_type_from_config: + return elb_type_from_config if single or (tier and not tier.is_webserver()): return elif not interactive: From 7798d0303cca87d5666185d8766b945002dc148d Mon Sep 17 00:00:00 2001 From: NihalM99 Date: Fri, 27 Oct 2023 05:13:23 +0000 Subject: [PATCH 02/19] Updated based on comments and adding tests --- ebcli/controllers/create.py | 13 +++--- tests/unit/controllers/test_create.py | 60 ++++++++++++++++++++++++++- 2 files changed, 64 insertions(+), 9 deletions(-) diff --git a/ebcli/controllers/create.py b/ebcli/controllers/create.py index 8474f1c16..b41031afb 100644 --- a/ebcli/controllers/create.py +++ b/ebcli/controllers/create.py @@ -551,7 +551,7 @@ def get_elb_type_from_configs(use_saved_config=False): option_settings = config.get('OptionSettings', {}) for namespace, setting in option_settings.items(): if namespace == 'aws:elasticbeanstalk:environment' and setting.get('LoadBalancerType'): - return setting['LoadBalancerType'] + return True except yaml.YAMLError: continue @@ -566,7 +566,8 @@ def get_elb_type_from_configs(use_saved_config=False): option_settings = config.get('option_settings', []) for setting in option_settings: if setting.get('namespace') == 'aws:elasticbeanstalk:environment' and setting.get('option_name') == 'LoadBalancerType': - return setting.get('value') + if setting.get('value'): + return True except yaml.YAMLError: continue @@ -584,11 +585,9 @@ def get_elb_type_from_customer(interactive, single, tier, cfg_flag_used=False): :param tier: the tier type of the environment :return: selected ELB type which is one among ['application', 'classic', 'network'] """ - elb_type_from_config = get_elb_type_from_configs(use_saved_config=cfg_flag_used) - if elb_type_from_config: - return elb_type_from_config - if single or (tier and not tier.is_webserver()): - return + elb_type_is_configured = get_elb_type_from_configs(use_saved_config=cfg_flag_used) + if single or (tier and not tier.is_webserver()) or elb_type_is_configured: + return elif not interactive: return elb_names.APPLICATION_VERSION diff --git a/tests/unit/controllers/test_create.py b/tests/unit/controllers/test_create.py index fd5b05e5d..b0a12d656 100644 --- a/tests/unit/controllers/test_create.py +++ b/tests/unit/controllers/test_create.py @@ -2373,6 +2373,47 @@ def test_get_template_name__config_file_name_passed_in( self.assertEqual('some_cfg', create.get_template_name('some_app', 'some_cfg')) + + def setUp(self): + if not os.path.exists('testDir'): + os.makedirs('testDir') + os.chdir('testDir') + + def tearDown(self): + os.chdir(os.path.pardir) + if os.path.exists('testDir'): + shutil.rmtree('testDir') + SAVED_CONFIG_DATA=''' + EnvironmentConfigurationMetadata: + Description: Configuration created from the EB CLI using "eb config save". +OptionSettings: + aws:elasticbeanstalk:command: + BatchSize: '30' + aws:elasticbeanstalk:environment: + LoadBalancerType: network +''' + EBEXTENSIONS_DATA = ''' +option_settings: + - namespace: aws:elasticbeanstalk:environment + option_name: LoadBalancerType + value: classic +''' + @mock.patch('os.path.exists', return_value=True) + @mock.patch('os.listdir', return_value=['savedconfig.yml']) + @mock.patch('builtins.open', mock.mock_open(read_data=SAVED_CONFIG_DATA)) + def test_get_elb_type_from_configs__saved_config(self, mock_open, mock_listdir, mock_exists): + with mock.patch('os.path.join', return_value='.elasticbeanstalk/saved_configs/savedconfig.yml'): + result = create.get_elb_type_from_configs(use_saved_config=True) + self.assertEqual(result, True) + + @mock.patch('os.path.exists', return_value=True) + @mock.patch('os.listdir', return_value=['config.yaml']) + @mock.patch('builtins.open', mock.mock_open(read_data=EBEXTENSIONS_DATA)) + def test_get_elb_type_from_configs__ebextensions(self, mock_open, mock_listdir, mock_exists): + with mock.patch('os.path.join', return_value='.ebextensions/config.yaml'): + result = create.get_elb_type_from_configs(use_saved_config=False) + self.assertEqual(result, True) + def test_get_elb_type_from_customer__single_instance_environment(self): self.assertIsNone( create.get_elb_type_from_customer( @@ -2382,12 +2423,27 @@ def test_get_elb_type_from_customer__single_instance_environment(self): ) ) - def test_get_elb_type_from_customer__non_interactive_mode(self): + @mock.patch('ebcli.controllers.create.get_elb_type_from_configs', return_value=True) + def test_get_elb_type_from_customer__elb_configured(self, mock_get_elb_type_from_configs): + self.assertIsNone( + create.get_elb_type_from_customer( + interactive=False, + single=False, + tier=Tier.from_raw_string('webserver'), + cfg_flag_used=True + ) + ) + mock_get_elb_type_from_configs.assert_called_once_with(use_saved_config=True) + + + @mock.patch('ebcli.controllers.create.get_elb_type_from_configs', return_value=None) + def test_get_elb_type_from_customer__non_interactive_mode(self, mock_get_elb_type_from_configs): self.assertEqual( create.get_elb_type_from_customer( interactive=False, single=False, - tier=None + tier=None, + cfg_flag_used=True ), 'application' ) From 0314ce5eed9ef7ad4432f5ac254d0f39accfd969 Mon Sep 17 00:00:00 2001 From: NihalM99 Date: Fri, 27 Oct 2023 05:23:07 +0000 Subject: [PATCH 03/19] fix --- tests/unit/controllers/test_create.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/unit/controllers/test_create.py b/tests/unit/controllers/test_create.py index b0a12d656..20de7dd99 100644 --- a/tests/unit/controllers/test_create.py +++ b/tests/unit/controllers/test_create.py @@ -13,9 +13,9 @@ import os import shutil -import mock +#import mock import unittest - +from unittest import mock from ebcli.controllers import create from ebcli.core import fileoperations from ebcli.core.ebcore import EB From ddd3fe596b6bfc3f347057b515d11e38d938d1f1 Mon Sep 17 00:00:00 2001 From: NihalM99 Date: Fri, 27 Oct 2023 05:32:59 +0000 Subject: [PATCH 04/19] fix2 --- tests/unit/controllers/test_create.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/controllers/test_create.py b/tests/unit/controllers/test_create.py index 20de7dd99..338588e0e 100644 --- a/tests/unit/controllers/test_create.py +++ b/tests/unit/controllers/test_create.py @@ -13,7 +13,7 @@ import os import shutil -#import mock +import mock import unittest from unittest import mock from ebcli.controllers import create From 2d24b25f0c8a94cee731336c736dea11c148ae61 Mon Sep 17 00:00:00 2001 From: NihalM99 Date: Fri, 27 Oct 2023 05:41:54 +0000 Subject: [PATCH 05/19] fix3 --- tests/unit/controllers/test_create.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/unit/controllers/test_create.py b/tests/unit/controllers/test_create.py index 338588e0e..50847a741 100644 --- a/tests/unit/controllers/test_create.py +++ b/tests/unit/controllers/test_create.py @@ -2401,7 +2401,7 @@ def tearDown(self): @mock.patch('os.path.exists', return_value=True) @mock.patch('os.listdir', return_value=['savedconfig.yml']) @mock.patch('builtins.open', mock.mock_open(read_data=SAVED_CONFIG_DATA)) - def test_get_elb_type_from_configs__saved_config(self, mock_open, mock_listdir, mock_exists): + def test_get_elb_type_from_configs__saved_config(self, *,mock_open, mock_listdir, mock_exists): with mock.patch('os.path.join', return_value='.elasticbeanstalk/saved_configs/savedconfig.yml'): result = create.get_elb_type_from_configs(use_saved_config=True) self.assertEqual(result, True) @@ -2409,7 +2409,7 @@ def test_get_elb_type_from_configs__saved_config(self, mock_open, mock_listdir, @mock.patch('os.path.exists', return_value=True) @mock.patch('os.listdir', return_value=['config.yaml']) @mock.patch('builtins.open', mock.mock_open(read_data=EBEXTENSIONS_DATA)) - def test_get_elb_type_from_configs__ebextensions(self, mock_open, mock_listdir, mock_exists): + def test_get_elb_type_from_configs__ebextensions(self, *,mock_open, mock_listdir, mock_exists): with mock.patch('os.path.join', return_value='.ebextensions/config.yaml'): result = create.get_elb_type_from_configs(use_saved_config=False) self.assertEqual(result, True) From d84b9627ef327236c92aebc02c9f344a10e8c419 Mon Sep 17 00:00:00 2001 From: NihalM99 Date: Fri, 27 Oct 2023 12:23:32 +0000 Subject: [PATCH 06/19] Fix for tests --- tests/unit/controllers/test_create.py | 88 ++++++++++++++++----------- 1 file changed, 51 insertions(+), 37 deletions(-) diff --git a/tests/unit/controllers/test_create.py b/tests/unit/controllers/test_create.py index 50847a741..fe13ecc93 100644 --- a/tests/unit/controllers/test_create.py +++ b/tests/unit/controllers/test_create.py @@ -2373,16 +2373,6 @@ def test_get_template_name__config_file_name_passed_in( self.assertEqual('some_cfg', create.get_template_name('some_app', 'some_cfg')) - - def setUp(self): - if not os.path.exists('testDir'): - os.makedirs('testDir') - os.chdir('testDir') - - def tearDown(self): - os.chdir(os.path.pardir) - if os.path.exists('testDir'): - shutil.rmtree('testDir') SAVED_CONFIG_DATA=''' EnvironmentConfigurationMetadata: Description: Configuration created from the EB CLI using "eb config save". @@ -2398,21 +2388,56 @@ def tearDown(self): option_name: LoadBalancerType value: classic ''' - @mock.patch('os.path.exists', return_value=True) - @mock.patch('os.listdir', return_value=['savedconfig.yml']) - @mock.patch('builtins.open', mock.mock_open(read_data=SAVED_CONFIG_DATA)) - def test_get_elb_type_from_configs__saved_config(self, *,mock_open, mock_listdir, mock_exists): - with mock.patch('os.path.join', return_value='.elasticbeanstalk/saved_configs/savedconfig.yml'): - result = create.get_elb_type_from_configs(use_saved_config=True) - self.assertEqual(result, True) + MALFORMED=''' +option_settings: + namespace: aws:elasticbeanstalk:environment + option_name: LoadBalancerType + value: classic + ''' + @mock.patch('ebcli.controllers.create.os.path.exists', return_value=True) + @mock.patch('ebcli.controllers.create.os.listdir', return_value=['savedconfig.yml']) + @mock.patch('ebcli.controllers.create.builtins.open', mock.mock_open(read_data=SAVED_CONFIG_DATA)) + def test_get_elb_from_saved_configs(self, mock_open, mock_listdir, mock_exists): + result = create.get_elb_type_from_configs(use_saved_config=True) + self.assertEqual(result, True) + + @mock.patch('ebcli.controllers.create.os.path.exists', return_value=False) + def test_no_saved_configs(self, mock_exists): + result = create.get_elb_type_from_configs(use_saved_config=True) + self.assertIsNone(result) + + @mock.patch('ebcli.controllers.create.os.path.exists', return_value=True) + @mock.patch('ebcli.controllers.create.os.listdir', return_value=['config.yml']) + @mock.patch('ebcli.controllers.create.builtins.open', mock.mock_open(read_data=EBEXTENSIONS_DATA)) + def test_get_elb_from_ebextensions(self, mock_open, mock_listdir, mock_exists): + result = create.get_elb_type_from_configs(use_saved_config=False) + self.assertEqual(result, True) + + @mock.patch('ebcli.controllers.create.os.path.exists', return_value=False) + def test_no_ebextensions(self, mock_exists): + result = create.get_elb_type_from_configs(use_saved_config=False) + self.assertIsNone(result) + + @mock.patch('ebcli.controllers.create.os.path.exists', return_value=True) + @mock.patch('ebcli.controllers.create.os.listdir', return_value=['invalid.yml', 'valid.yml']) + @mock.patch('ebcli.controllers.create.builtins.open', side_effect=[mock.mock_open(read_data=MALFORMED)(), + mock.mock_open(read_data=EBEXTENSIONS_DATA)()]) + def test_handle_malformed_yaml(self, mock_open, mock_listdir, mock_exists): + result = create.get_elb_type_from_configs(use_saved_config=False) + self.assertEqual(result, True) + + @mock.patch('os.path.exists', return_value=False) + def test_no_ebextensions(self, mock_exists): + result = create.get_elb_type_from_configs(use_saved_config=False) + self.assertIsNone(result) @mock.patch('os.path.exists', return_value=True) - @mock.patch('os.listdir', return_value=['config.yaml']) - @mock.patch('builtins.open', mock.mock_open(read_data=EBEXTENSIONS_DATA)) - def test_get_elb_type_from_configs__ebextensions(self, *,mock_open, mock_listdir, mock_exists): - with mock.patch('os.path.join', return_value='.ebextensions/config.yaml'): - result = create.get_elb_type_from_configs(use_saved_config=False) - self.assertEqual(result, True) + @mock.patch('os.listdir', return_value=['invalid.yml', 'valid.yml']) + @mock.patch('builtins.open', side_effect=[mock.mock_open(read_data='invalid_yaml_here')(), + mock.mock_open(read_data='valid_ebextensions_yaml_here')()]) + def test_handle_malformed_yaml(self, mock_open, mock_listdir, mock_exists): + result = create.get_elb_type_from_configs(use_saved_config=False) + self.assertEqual(result, True) def test_get_elb_type_from_customer__single_instance_environment(self): self.assertIsNone( @@ -2423,27 +2448,16 @@ def test_get_elb_type_from_customer__single_instance_environment(self): ) ) - @mock.patch('ebcli.controllers.create.get_elb_type_from_configs', return_value=True) - def test_get_elb_type_from_customer__elb_configured(self, mock_get_elb_type_from_configs): - self.assertIsNone( - create.get_elb_type_from_customer( - interactive=False, - single=False, - tier=Tier.from_raw_string('webserver'), - cfg_flag_used=True - ) - ) - mock_get_elb_type_from_configs.assert_called_once_with(use_saved_config=True) + - @mock.patch('ebcli.controllers.create.get_elb_type_from_configs', return_value=None) - def test_get_elb_type_from_customer__non_interactive_mode(self, mock_get_elb_type_from_configs): + def test_get_elb_type_from_customer__non_interactive_mode(self): self.assertEqual( create.get_elb_type_from_customer( interactive=False, single=False, tier=None, - cfg_flag_used=True + ), 'application' ) From 2eefd3b0990fce32811b320c92637911d427424e Mon Sep 17 00:00:00 2001 From: NihalM99 Date: Fri, 27 Oct 2023 12:42:22 +0000 Subject: [PATCH 07/19] Updated tests --- ebcli/controllers/create.py | 5 +++-- tests/unit/controllers/test_create.py | 10 +++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/ebcli/controllers/create.py b/ebcli/controllers/create.py index b41031afb..fb2026ee3 100644 --- a/ebcli/controllers/create.py +++ b/ebcli/controllers/create.py @@ -553,7 +553,7 @@ def get_elb_type_from_configs(use_saved_config=False): if namespace == 'aws:elasticbeanstalk:environment' and setting.get('LoadBalancerType'): return True except yaml.YAMLError: - continue + raise ValueError(f"Malformed YAML in file {config_file} in saved_configs.") else: # Then check in .ebextensions @@ -569,7 +569,8 @@ def get_elb_type_from_configs(use_saved_config=False): if setting.get('value'): return True except yaml.YAMLError: - continue + raise ValueError(f"Malformed YAML in file {config_file} in .ebextensions.") + return None diff --git a/tests/unit/controllers/test_create.py b/tests/unit/controllers/test_create.py index fe13ecc93..bb01f2118 100644 --- a/tests/unit/controllers/test_create.py +++ b/tests/unit/controllers/test_create.py @@ -2396,7 +2396,7 @@ def test_get_template_name__config_file_name_passed_in( ''' @mock.patch('ebcli.controllers.create.os.path.exists', return_value=True) @mock.patch('ebcli.controllers.create.os.listdir', return_value=['savedconfig.yml']) - @mock.patch('ebcli.controllers.create.builtins.open', mock.mock_open(read_data=SAVED_CONFIG_DATA)) + @mock.patch('builtins.open', mock.mock_open(read_data=SAVED_CONFIG_DATA)) def test_get_elb_from_saved_configs(self, mock_open, mock_listdir, mock_exists): result = create.get_elb_type_from_configs(use_saved_config=True) self.assertEqual(result, True) @@ -2408,7 +2408,7 @@ def test_no_saved_configs(self, mock_exists): @mock.patch('ebcli.controllers.create.os.path.exists', return_value=True) @mock.patch('ebcli.controllers.create.os.listdir', return_value=['config.yml']) - @mock.patch('ebcli.controllers.create.builtins.open', mock.mock_open(read_data=EBEXTENSIONS_DATA)) + @mock.patch('builtins.open', mock.mock_open(read_data=EBEXTENSIONS_DATA)) def test_get_elb_from_ebextensions(self, mock_open, mock_listdir, mock_exists): result = create.get_elb_type_from_configs(use_saved_config=False) self.assertEqual(result, True) @@ -2420,11 +2420,11 @@ def test_no_ebextensions(self, mock_exists): @mock.patch('ebcli.controllers.create.os.path.exists', return_value=True) @mock.patch('ebcli.controllers.create.os.listdir', return_value=['invalid.yml', 'valid.yml']) - @mock.patch('ebcli.controllers.create.builtins.open', side_effect=[mock.mock_open(read_data=MALFORMED)(), + @mock.patch('builtins.open', side_effect=[mock.mock_open(read_data=MALFORMED)(), mock.mock_open(read_data=EBEXTENSIONS_DATA)()]) def test_handle_malformed_yaml(self, mock_open, mock_listdir, mock_exists): - result = create.get_elb_type_from_configs(use_saved_config=False) - self.assertEqual(result, True) + with self.assertRaises(ValueError): + create.get_elb_type_from_configs(use_saved_config=False) @mock.patch('os.path.exists', return_value=False) def test_no_ebextensions(self, mock_exists): From 6d9646fa245ed1fce1d38015abca46bc95d472c4 Mon Sep 17 00:00:00 2001 From: NihalM99 Date: Fri, 27 Oct 2023 12:54:37 +0000 Subject: [PATCH 08/19] fix5 --- tests/unit/controllers/test_create.py | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/tests/unit/controllers/test_create.py b/tests/unit/controllers/test_create.py index bb01f2118..bec4d8232 100644 --- a/tests/unit/controllers/test_create.py +++ b/tests/unit/controllers/test_create.py @@ -13,7 +13,7 @@ import os import shutil -import mock +#import mock import unittest from unittest import mock from ebcli.controllers import create @@ -2426,18 +2426,9 @@ def test_handle_malformed_yaml(self, mock_open, mock_listdir, mock_exists): with self.assertRaises(ValueError): create.get_elb_type_from_configs(use_saved_config=False) - @mock.patch('os.path.exists', return_value=False) - def test_no_ebextensions(self, mock_exists): - result = create.get_elb_type_from_configs(use_saved_config=False) - self.assertIsNone(result) + - @mock.patch('os.path.exists', return_value=True) - @mock.patch('os.listdir', return_value=['invalid.yml', 'valid.yml']) - @mock.patch('builtins.open', side_effect=[mock.mock_open(read_data='invalid_yaml_here')(), - mock.mock_open(read_data='valid_ebextensions_yaml_here')()]) - def test_handle_malformed_yaml(self, mock_open, mock_listdir, mock_exists): - result = create.get_elb_type_from_configs(use_saved_config=False) - self.assertEqual(result, True) + def test_get_elb_type_from_customer__single_instance_environment(self): self.assertIsNone( From f5a4d58689b9044fe09561c53930e0606ab5d87d Mon Sep 17 00:00:00 2001 From: NihalM99 Date: Fri, 27 Oct 2023 13:12:53 +0000 Subject: [PATCH 09/19] fix6 --- tests/unit/controllers/test_create.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/tests/unit/controllers/test_create.py b/tests/unit/controllers/test_create.py index bec4d8232..a19ba99fb 100644 --- a/tests/unit/controllers/test_create.py +++ b/tests/unit/controllers/test_create.py @@ -2389,15 +2389,12 @@ def test_get_template_name__config_file_name_passed_in( value: classic ''' MALFORMED=''' -option_settings: - namespace: aws:elasticbeanstalk:environment - option_name: LoadBalancerType - value: classic + ''' - @mock.patch('ebcli.controllers.create.os.path.exists', return_value=True) - @mock.patch('ebcli.controllers.create.os.listdir', return_value=['savedconfig.yml']) @mock.patch('builtins.open', mock.mock_open(read_data=SAVED_CONFIG_DATA)) - def test_get_elb_from_saved_configs(self, mock_open, mock_listdir, mock_exists): + @mock.patch('ebcli.controllers.create.os.listdir', return_value=['savedconfig.yml']) + @mock.patch('ebcli.controllers.create.os.path.exists', return_value=True) + def test_get_elb_from_saved_configs(self): result = create.get_elb_type_from_configs(use_saved_config=True) self.assertEqual(result, True) From 4b2d2ce08368f88f7fcc4847554a6ce00ff42d69 Mon Sep 17 00:00:00 2001 From: NihalM99 Date: Fri, 27 Oct 2023 14:16:03 +0000 Subject: [PATCH 10/19] fix7 --- tests/unit/controllers/test_create.py | 71 ++++++++++++++++----------- 1 file changed, 41 insertions(+), 30 deletions(-) diff --git a/tests/unit/controllers/test_create.py b/tests/unit/controllers/test_create.py index a19ba99fb..4f5ac1678 100644 --- a/tests/unit/controllers/test_create.py +++ b/tests/unit/controllers/test_create.py @@ -16,7 +16,11 @@ #import mock import unittest from unittest import mock +from unittest.mock import patch, mock_open + from ebcli.controllers import create +from ebcli.controllers.create import get_elb_type_from_configs + from ebcli.core import fileoperations from ebcli.core.ebcore import EB from ebcli.objects.exceptions import ( @@ -2391,37 +2395,44 @@ def test_get_template_name__config_file_name_passed_in( MALFORMED=''' ''' - @mock.patch('builtins.open', mock.mock_open(read_data=SAVED_CONFIG_DATA)) - @mock.patch('ebcli.controllers.create.os.listdir', return_value=['savedconfig.yml']) - @mock.patch('ebcli.controllers.create.os.path.exists', return_value=True) - def test_get_elb_from_saved_configs(self): - result = create.get_elb_type_from_configs(use_saved_config=True) - self.assertEqual(result, True) - - @mock.patch('ebcli.controllers.create.os.path.exists', return_value=False) - def test_no_saved_configs(self, mock_exists): - result = create.get_elb_type_from_configs(use_saved_config=True) - self.assertIsNone(result) - - @mock.patch('ebcli.controllers.create.os.path.exists', return_value=True) - @mock.patch('ebcli.controllers.create.os.listdir', return_value=['config.yml']) - @mock.patch('builtins.open', mock.mock_open(read_data=EBEXTENSIONS_DATA)) - def test_get_elb_from_ebextensions(self, mock_open, mock_listdir, mock_exists): - result = create.get_elb_type_from_configs(use_saved_config=False) - self.assertEqual(result, True) - - @mock.patch('ebcli.controllers.create.os.path.exists', return_value=False) - def test_no_ebextensions(self, mock_exists): - result = create.get_elb_type_from_configs(use_saved_config=False) - self.assertIsNone(result) - - @mock.patch('ebcli.controllers.create.os.path.exists', return_value=True) - @mock.patch('ebcli.controllers.create.os.listdir', return_value=['invalid.yml', 'valid.yml']) - @mock.patch('builtins.open', side_effect=[mock.mock_open(read_data=MALFORMED)(), - mock.mock_open(read_data=EBEXTENSIONS_DATA)()]) - def test_handle_malformed_yaml(self, mock_open, mock_listdir, mock_exists): + @mock.patch('os.path.exists') + @mock.patch('os.listdir') + @mock.patch('builtins.open', new_callable=mock.mock_open, read_data="namespace: aws:elasticbeanstalk:environment\noption_name: LoadBalancerType\nvalue: true") + def test_saved_configs_prioritized(self, mock_file, mock_listdir, mock_exists): + mock_exists.return_value = True + mock_listdir.return_value = ['config1.yaml'] + + self.assertTrue(get_elb_type_from_configs(use_saved_config=True)) + + @mock.patch('os.path.exists') + @mock.patch('os.listdir') + @mock.patch('builtins.open', new_callable=mock.mock_open, read_data="option_settings:\n - namespace: aws:elasticbeanstalk:environment\n option_name: LoadBalancerType\n value: true") + def test_ebextensions_checked(self, mock_file, mock_listdir, mock_exists): + mock_exists.return_value = True + mock_listdir.return_value = ['config1.yaml'] + + self.assertTrue(get_elb_type_from_configs(use_saved_config=False)) + + @mock.patch('os.path.exists') + @mock.patch('os.listdir') + @mock.patch('builtins.open', new_callable=mock.mock_open, read_data="invalid: yaml::data") + def test_malformed_yaml_raises_value_error(self, mock_file, mock_listdir, mock_exists): + mock_exists.return_value = True + mock_listdir.return_value = ['config1.yaml'] + with self.assertRaises(ValueError): - create.get_elb_type_from_configs(use_saved_config=False) + get_elb_type_from_configs(use_saved_config=False) + + @mock.patch('os.path.exists') + @mock.patch('os.listdir') + @mock.patch('builtins.open', new_callable=mock.mock_open, read_data="") + def test_returns_none_when_elb_not_found(self, mock_file, mock_listdir, mock_exists): + mock_exists.return_value = True + mock_listdir.return_value = ['config1.yaml'] + + self.assertIsNone(get_elb_type_from_configs(use_saved_config=False)) + + From a334b6dd1027972cb9381ad8a416400ce86f0fe1 Mon Sep 17 00:00:00 2001 From: NihalM99 Date: Fri, 27 Oct 2023 15:24:08 +0000 Subject: [PATCH 11/19] fix8 --- tests/unit/controllers/test_create.py | 47 +++++++++++++-------------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/tests/unit/controllers/test_create.py b/tests/unit/controllers/test_create.py index 4f5ac1678..f6fe7df02 100644 --- a/tests/unit/controllers/test_create.py +++ b/tests/unit/controllers/test_create.py @@ -2377,39 +2377,39 @@ def test_get_template_name__config_file_name_passed_in( self.assertEqual('some_cfg', create.get_template_name('some_app', 'some_cfg')) - SAVED_CONFIG_DATA=''' - EnvironmentConfigurationMetadata: - Description: Configuration created from the EB CLI using "eb config save". -OptionSettings: - aws:elasticbeanstalk:command: - BatchSize: '30' - aws:elasticbeanstalk:environment: - LoadBalancerType: network -''' - EBEXTENSIONS_DATA = ''' -option_settings: - - namespace: aws:elasticbeanstalk:environment - option_name: LoadBalancerType - value: classic -''' - MALFORMED=''' - - ''' + @mock.patch('yaml.safe_load') @mock.patch('os.path.exists') @mock.patch('os.listdir') - @mock.patch('builtins.open', new_callable=mock.mock_open, read_data="namespace: aws:elasticbeanstalk:environment\noption_name: LoadBalancerType\nvalue: true") - def test_saved_configs_prioritized(self, mock_file, mock_listdir, mock_exists): + @mock.patch('builtins.open', new_callable=mock.mock_open, read_data="valid_yaml_content") + def test_saved_configs_prioritized(self, mock_file, mock_listdir, mock_exists, mock_yaml): mock_exists.return_value = True mock_listdir.return_value = ['config1.yaml'] + mock_yaml.return_value = { + 'OptionSettings': { + 'aws:elasticbeanstalk:environment': { + 'LoadBalancerType': True + } + } + } self.assertTrue(get_elb_type_from_configs(use_saved_config=True)) + @mock.patch('yaml.safe_load') @mock.patch('os.path.exists') @mock.patch('os.listdir') - @mock.patch('builtins.open', new_callable=mock.mock_open, read_data="option_settings:\n - namespace: aws:elasticbeanstalk:environment\n option_name: LoadBalancerType\n value: true") - def test_ebextensions_checked(self, mock_file, mock_listdir, mock_exists): + @mock.patch('builtins.open', new_callable=mock.mock_open, read_data="valid_yaml_content") + def test_ebextensions_checked(self, mock_file, mock_listdir, mock_exists, mock_yaml): mock_exists.return_value = True mock_listdir.return_value = ['config1.yaml'] + mock_yaml.return_value = { + 'option_settings': [ + { + 'namespace': 'aws:elasticbeanstalk:environment', + 'option_name': 'LoadBalancerType', + 'value': True + } + ] + } self.assertTrue(get_elb_type_from_configs(use_saved_config=False)) @@ -2425,13 +2425,12 @@ def test_malformed_yaml_raises_value_error(self, mock_file, mock_listdir, mock_e @mock.patch('os.path.exists') @mock.patch('os.listdir') - @mock.patch('builtins.open', new_callable=mock.mock_open, read_data="") + @mock.patch('builtins.open', new_callable=mock.mock_open, read_data="some_other_yaml_content") def test_returns_none_when_elb_not_found(self, mock_file, mock_listdir, mock_exists): mock_exists.return_value = True mock_listdir.return_value = ['config1.yaml'] self.assertIsNone(get_elb_type_from_configs(use_saved_config=False)) - From 93cb006d05b9903f9ba6479f8ff30a3b5b5337ae Mon Sep 17 00:00:00 2001 From: NihalM99 Date: Fri, 27 Oct 2023 15:34:41 +0000 Subject: [PATCH 12/19] fix9 --- tests/unit/controllers/test_create.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/unit/controllers/test_create.py b/tests/unit/controllers/test_create.py index f6fe7df02..22dfbc1df 100644 --- a/tests/unit/controllers/test_create.py +++ b/tests/unit/controllers/test_create.py @@ -2415,7 +2415,7 @@ def test_ebextensions_checked(self, mock_file, mock_listdir, mock_exists, mock_y @mock.patch('os.path.exists') @mock.patch('os.listdir') - @mock.patch('builtins.open', new_callable=mock.mock_open, read_data="invalid: yaml::data") + @mock.patch('builtins.open', new_callable=mock.mock_open, read_data="invalid yaml data") def test_malformed_yaml_raises_value_error(self, mock_file, mock_listdir, mock_exists): mock_exists.return_value = True mock_listdir.return_value = ['config1.yaml'] @@ -2425,7 +2425,7 @@ def test_malformed_yaml_raises_value_error(self, mock_file, mock_listdir, mock_e @mock.patch('os.path.exists') @mock.patch('os.listdir') - @mock.patch('builtins.open', new_callable=mock.mock_open, read_data="some_other_yaml_content") + @mock.patch('builtins.open', new_callable=mock.mock_open, read_data="option_settings: []") def test_returns_none_when_elb_not_found(self, mock_file, mock_listdir, mock_exists): mock_exists.return_value = True mock_listdir.return_value = ['config1.yaml'] From 4d67d57d476495a63b4991145e3caa93856a5671 Mon Sep 17 00:00:00 2001 From: NihalM99 Date: Fri, 27 Oct 2023 15:43:07 +0000 Subject: [PATCH 13/19] fix10 --- tests/unit/controllers/test_create.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/controllers/test_create.py b/tests/unit/controllers/test_create.py index 22dfbc1df..15cd8f621 100644 --- a/tests/unit/controllers/test_create.py +++ b/tests/unit/controllers/test_create.py @@ -2415,7 +2415,7 @@ def test_ebextensions_checked(self, mock_file, mock_listdir, mock_exists, mock_y @mock.patch('os.path.exists') @mock.patch('os.listdir') - @mock.patch('builtins.open', new_callable=mock.mock_open, read_data="invalid yaml data") + @mock.patch('builtins.open', new_callable=mock.mock_open, read_data="invalid: yaml::data") def test_malformed_yaml_raises_value_error(self, mock_file, mock_listdir, mock_exists): mock_exists.return_value = True mock_listdir.return_value = ['config1.yaml'] From c58430649870be68db105cff19038bab985c64bb Mon Sep 17 00:00:00 2001 From: NihalM99 Date: Fri, 27 Oct 2023 16:01:57 +0000 Subject: [PATCH 14/19] fix11 --- tests/unit/controllers/test_create.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/unit/controllers/test_create.py b/tests/unit/controllers/test_create.py index 15cd8f621..477606835 100644 --- a/tests/unit/controllers/test_create.py +++ b/tests/unit/controllers/test_create.py @@ -2415,7 +2415,7 @@ def test_ebextensions_checked(self, mock_file, mock_listdir, mock_exists, mock_y @mock.patch('os.path.exists') @mock.patch('os.listdir') - @mock.patch('builtins.open', new_callable=mock.mock_open, read_data="invalid: yaml::data") + @mock.patch('builtins.open', new_callable=mock.mock_open, read_data="invalid: yaml: data") def test_malformed_yaml_raises_value_error(self, mock_file, mock_listdir, mock_exists): mock_exists.return_value = True mock_listdir.return_value = ['config1.yaml'] From 84fe06626a5f8b08d1559a1035289170ea8a3842 Mon Sep 17 00:00:00 2001 From: NihalM99 Date: Fri, 27 Oct 2023 17:34:25 +0000 Subject: [PATCH 15/19] removing extra spaces --- tests/unit/controllers/test_create.py | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/tests/unit/controllers/test_create.py b/tests/unit/controllers/test_create.py index 477606835..5032cb9ba 100644 --- a/tests/unit/controllers/test_create.py +++ b/tests/unit/controllers/test_create.py @@ -2431,11 +2431,6 @@ def test_returns_none_when_elb_not_found(self, mock_file, mock_listdir, mock_exi mock_listdir.return_value = ['config1.yaml'] self.assertIsNone(get_elb_type_from_configs(use_saved_config=False)) - - - - - def test_get_elb_type_from_customer__single_instance_environment(self): self.assertIsNone( @@ -2445,10 +2440,7 @@ def test_get_elb_type_from_customer__single_instance_environment(self): tier=Tier.from_raw_string('webserver') ) ) - - - - + def test_get_elb_type_from_customer__non_interactive_mode(self): self.assertEqual( create.get_elb_type_from_customer( From 39e89b02f46ddd514d182cf6b3f3634ac9a75ba7 Mon Sep 17 00:00:00 2001 From: NihalM99 Date: Fri, 27 Oct 2023 20:32:24 +0000 Subject: [PATCH 16/19] Updating as per comments --- ebcli/controllers/create.py | 10 +++++----- tests/unit/controllers/test_create.py | 26 +++++++++++++++++++++----- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/ebcli/controllers/create.py b/ebcli/controllers/create.py index fb2026ee3..2c42ed730 100644 --- a/ebcli/controllers/create.py +++ b/ebcli/controllers/create.py @@ -533,11 +533,11 @@ def get_cname_from_customer(env_name): break return cname -def get_elb_type_from_configs(use_saved_config=False): +def check_elb_type_from_configs(use_saved_config=False): """ - Retrieve the ELB type from either the .ebextensions or saved_configs directories. + Checks if the ELB type is present from either the .ebextensions or saved_configs directories. :param use_saved_config: Boolean indicating if --cfg flag was used. - :return: ELB type if found, else None. + :return: True, else False. """ # If --cfg flag is used, prioritize checking saved_configs first @@ -572,7 +572,7 @@ def get_elb_type_from_configs(use_saved_config=False): raise ValueError(f"Malformed YAML in file {config_file} in .ebextensions.") - return None + return False def get_elb_type_from_customer(interactive, single, tier, cfg_flag_used=False): """ @@ -586,7 +586,7 @@ def get_elb_type_from_customer(interactive, single, tier, cfg_flag_used=False): :param tier: the tier type of the environment :return: selected ELB type which is one among ['application', 'classic', 'network'] """ - elb_type_is_configured = get_elb_type_from_configs(use_saved_config=cfg_flag_used) + elb_type_is_configured = check_elb_type_from_configs(use_saved_config=cfg_flag_used) if single or (tier and not tier.is_webserver()) or elb_type_is_configured: return elif not interactive: diff --git a/tests/unit/controllers/test_create.py b/tests/unit/controllers/test_create.py index 5032cb9ba..d4efb51a0 100644 --- a/tests/unit/controllers/test_create.py +++ b/tests/unit/controllers/test_create.py @@ -19,7 +19,7 @@ from unittest.mock import patch, mock_open from ebcli.controllers import create -from ebcli.controllers.create import get_elb_type_from_configs +from ebcli.controllers.create import check_elb_type_from_configs from ebcli.core import fileoperations from ebcli.core.ebcore import EB @@ -2392,7 +2392,7 @@ def test_saved_configs_prioritized(self, mock_file, mock_listdir, mock_exists, m } } - self.assertTrue(get_elb_type_from_configs(use_saved_config=True)) + self.assertTrue(check_elb_type_from_configs(use_saved_config=True)) @mock.patch('yaml.safe_load') @mock.patch('os.path.exists') @@ -2411,7 +2411,7 @@ def test_ebextensions_checked(self, mock_file, mock_listdir, mock_exists, mock_y ] } - self.assertTrue(get_elb_type_from_configs(use_saved_config=False)) + self.assertTrue(check_elb_type_from_configs(use_saved_config=False)) @mock.patch('os.path.exists') @mock.patch('os.listdir') @@ -2421,7 +2421,7 @@ def test_malformed_yaml_raises_value_error(self, mock_file, mock_listdir, mock_e mock_listdir.return_value = ['config1.yaml'] with self.assertRaises(ValueError): - get_elb_type_from_configs(use_saved_config=False) + check_elb_type_from_configs(use_saved_config=False) @mock.patch('os.path.exists') @mock.patch('os.listdir') @@ -2430,7 +2430,23 @@ def test_returns_none_when_elb_not_found(self, mock_file, mock_listdir, mock_exi mock_exists.return_value = True mock_listdir.return_value = ['config1.yaml'] - self.assertIsNone(get_elb_type_from_configs(use_saved_config=False)) + self.assertFalse(check_elb_type_from_configs(use_saved_config=False)) + + @mock.patch('yaml.safe_load') + @mock.patch('os.path.exists') + @mock.patch('os.listdir') + @mock.patch('builtins.open', new_callable=mock.mock_open, read_data="OptionSettings: {random_namespace: {random_option: random_value}}") + def test_setting_not_present_in_saved_configs(self, mock_file, mock_listdir, mock_exists, mock_yaml): + mock_exists.return_value = True + mock_listdir.return_value = ['config1.yaml'] + mock_yaml.return_value = { + 'random_namespace': { + 'random_option': 'random_value' + }} + + self.assertFalse(check_elb_type_from_configs(use_saved_config=True)) + + def test_get_elb_type_from_customer__single_instance_environment(self): self.assertIsNone( From 36a85b70db616a67b7383281aad5ae3cb99c2caa Mon Sep 17 00:00:00 2001 From: NihalM99 Date: Fri, 27 Oct 2023 22:04:35 +0000 Subject: [PATCH 17/19] Update tests 2 --- tests/unit/controllers/test_create.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tests/unit/controllers/test_create.py b/tests/unit/controllers/test_create.py index d4efb51a0..eccf2edcb 100644 --- a/tests/unit/controllers/test_create.py +++ b/tests/unit/controllers/test_create.py @@ -2524,6 +2524,32 @@ def test_get_elb_type_from_customer__interactive_mode__not_applicable_for_worker ) ) + @mock.patch('create.check_elb_type_from_configs') + def test_elb_type_configured_interactive(self, mock_check_elb): + mock_check_elb.return_value = True # ELB type is configured + + result = create.get_elb_type_from_customer( + interactive=True, + single=False, + tier=None, + cfg_flag_used=True + ) + + self.assertIsNone(result) + + @mock.patch('create.check_elb_type_from_configs') + def test_elb_type_configured_non_interactive(self, mock_check_elb): + mock_check_elb.return_value = True # ELB type is configured + + result = create.get_elb_type_from_customer( + interactive=False, + single=False, + tier=None, + cfg_flag_used=True + ) + + self.assertIsNone(result) + @mock.patch('ebcli.controllers.create.shared_lb_ops.validate_shared_lb_for_non_interactive') @mock.patch('ebcli.controllers.create.shared_lb_ops.get_shared_lb_from_customer') def test_get_shared_load_balancer__for_interactive( From 7443df8d93919b5a88d88e1d27577882d8346e1c Mon Sep 17 00:00:00 2001 From: NihalM99 Date: Fri, 27 Oct 2023 22:18:14 +0000 Subject: [PATCH 18/19] Update tests 3 --- tests/unit/controllers/test_create.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/tests/unit/controllers/test_create.py b/tests/unit/controllers/test_create.py index eccf2edcb..a7af983b2 100644 --- a/tests/unit/controllers/test_create.py +++ b/tests/unit/controllers/test_create.py @@ -2381,7 +2381,7 @@ def test_get_template_name__config_file_name_passed_in( @mock.patch('os.path.exists') @mock.patch('os.listdir') @mock.patch('builtins.open', new_callable=mock.mock_open, read_data="valid_yaml_content") - def test_saved_configs_prioritized(self, mock_file, mock_listdir, mock_exists, mock_yaml): + def test_check_elb_type_from_configs_saved_configs_prioritized(self, mock_file, mock_listdir, mock_exists, mock_yaml): mock_exists.return_value = True mock_listdir.return_value = ['config1.yaml'] mock_yaml.return_value = { @@ -2398,7 +2398,7 @@ def test_saved_configs_prioritized(self, mock_file, mock_listdir, mock_exists, m @mock.patch('os.path.exists') @mock.patch('os.listdir') @mock.patch('builtins.open', new_callable=mock.mock_open, read_data="valid_yaml_content") - def test_ebextensions_checked(self, mock_file, mock_listdir, mock_exists, mock_yaml): + def test_check_elb_type_from_configs_ebextensions_checked(self, mock_file, mock_listdir, mock_exists, mock_yaml): mock_exists.return_value = True mock_listdir.return_value = ['config1.yaml'] mock_yaml.return_value = { @@ -2416,7 +2416,7 @@ def test_ebextensions_checked(self, mock_file, mock_listdir, mock_exists, mock_y @mock.patch('os.path.exists') @mock.patch('os.listdir') @mock.patch('builtins.open', new_callable=mock.mock_open, read_data="invalid: yaml: data") - def test_malformed_yaml_raises_value_error(self, mock_file, mock_listdir, mock_exists): + def test_check_elb_type_from_configs_malformed_yaml_raises_value_error(self, mock_file, mock_listdir, mock_exists): mock_exists.return_value = True mock_listdir.return_value = ['config1.yaml'] @@ -2426,7 +2426,7 @@ def test_malformed_yaml_raises_value_error(self, mock_file, mock_listdir, mock_e @mock.patch('os.path.exists') @mock.patch('os.listdir') @mock.patch('builtins.open', new_callable=mock.mock_open, read_data="option_settings: []") - def test_returns_none_when_elb_not_found(self, mock_file, mock_listdir, mock_exists): + def test_check_elb_type_from_configs_returns_none_when_elb_not_found(self, mock_file, mock_listdir, mock_exists): mock_exists.return_value = True mock_listdir.return_value = ['config1.yaml'] @@ -2436,7 +2436,7 @@ def test_returns_none_when_elb_not_found(self, mock_file, mock_listdir, mock_exi @mock.patch('os.path.exists') @mock.patch('os.listdir') @mock.patch('builtins.open', new_callable=mock.mock_open, read_data="OptionSettings: {random_namespace: {random_option: random_value}}") - def test_setting_not_present_in_saved_configs(self, mock_file, mock_listdir, mock_exists, mock_yaml): + def test_check_elb_type_from_configs_setting_not_present_in_saved_configs(self, mock_file, mock_listdir, mock_exists, mock_yaml): mock_exists.return_value = True mock_listdir.return_value = ['config1.yaml'] mock_yaml.return_value = { @@ -2524,7 +2524,7 @@ def test_get_elb_type_from_customer__interactive_mode__not_applicable_for_worker ) ) - @mock.patch('create.check_elb_type_from_configs') + @mock.patch('ebcli.controllers.create.check_elb_type_from_configs') def test_elb_type_configured_interactive(self, mock_check_elb): mock_check_elb.return_value = True # ELB type is configured @@ -2537,7 +2537,7 @@ def test_elb_type_configured_interactive(self, mock_check_elb): self.assertIsNone(result) - @mock.patch('create.check_elb_type_from_configs') + @mock.patch('ebcli.controllers.create.check_elb_type_from_configs') def test_elb_type_configured_non_interactive(self, mock_check_elb): mock_check_elb.return_value = True # ELB type is configured From 9f05da7fced39cd547d4d51dd98e56705d1793d7 Mon Sep 17 00:00:00 2001 From: NihalM99 Date: Fri, 27 Oct 2023 22:41:41 +0000 Subject: [PATCH 19/19] Fix test final --- tests/unit/controllers/test_create.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/unit/controllers/test_create.py b/tests/unit/controllers/test_create.py index a7af983b2..17f0207a8 100644 --- a/tests/unit/controllers/test_create.py +++ b/tests/unit/controllers/test_create.py @@ -2525,7 +2525,7 @@ def test_get_elb_type_from_customer__interactive_mode__not_applicable_for_worker ) @mock.patch('ebcli.controllers.create.check_elb_type_from_configs') - def test_elb_type_configured_interactive(self, mock_check_elb): + def test_get_elb_type_from_customer_elb_type_configured_interactive(self, mock_check_elb): mock_check_elb.return_value = True # ELB type is configured result = create.get_elb_type_from_customer( @@ -2538,7 +2538,7 @@ def test_elb_type_configured_interactive(self, mock_check_elb): self.assertIsNone(result) @mock.patch('ebcli.controllers.create.check_elb_type_from_configs') - def test_elb_type_configured_non_interactive(self, mock_check_elb): + def test_get_elb_type_from_customer_elb_type_configured_non_interactive(self, mock_check_elb): mock_check_elb.return_value = True # ELB type is configured result = create.get_elb_type_from_customer(