Skip to content

Commit 9603334

Browse files
qingchmhawflau
andauthored
chore: Add class tear down for cleaning up custom credentials (#4805)
* Add class tear down for cleaning up custom credentials * Fix failing teardownclass and refactor setup * Address mypy suggestion * Refactoring the teardown to be a test case tear down * Fix mypy issue --------- Co-authored-by: Wing Fung Lau <4760060+hawflau@users.noreply.github.com>
1 parent e39d1e7 commit 9603334

File tree

2 files changed

+38
-40
lines changed

2 files changed

+38
-40
lines changed

tests/integration/init/schemas/schemas_test_data_setup.py

Lines changed: 38 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,23 @@
1818

1919

2020
class SchemaTestDataSetup(TestCase):
21-
original_cred_file = None
22-
original_config_file = None
23-
original_profile = None
24-
original_region = None
21+
original_cred_file: str
22+
original_config_file: str
23+
original_profile: str
24+
original_region: str
2525

2626
@classmethod
2727
def setUpClass(cls):
28+
env = os.environ
29+
if AWS_CONFIG_FILE in env:
30+
cls.original_config_file = env[AWS_CONFIG_FILE]
31+
if AWS_SHARED_CREDENTIALS_FILE in env:
32+
cls.original_cred_file = env[AWS_SHARED_CREDENTIALS_FILE]
33+
if AWS_PROFILE in env:
34+
cls.original_profile = env[AWS_PROFILE]
35+
if AWS_DEFAULT_REGION in env:
36+
cls.original_region = env[AWS_DEFAULT_REGION]
37+
2838
session = Session()
2939
schemas_client = session.client("schemas", region_name=session.region_name)
3040
# all setup is done here to avoid creating side effects in test. Currently we are using CLI and
@@ -55,17 +65,33 @@ def setUpClass(cls):
5565
runner = CliRunner()
5666
runner.invoke(init_cmd, ["--output-dir", temp], input=user_input)
5767

68+
def tearDown(self) -> None:
69+
env = os.environ
70+
if env.get(AWS_CONFIG_FILE):
71+
del env[AWS_CONFIG_FILE]
72+
if self.original_config_file:
73+
env[AWS_CONFIG_FILE] = self.original_config_file
74+
75+
if env.get(AWS_SHARED_CREDENTIALS_FILE):
76+
del env[AWS_SHARED_CREDENTIALS_FILE]
77+
if self.original_cred_file:
78+
env[AWS_SHARED_CREDENTIALS_FILE] = self.original_cred_file
79+
80+
if env.get(AWS_PROFILE):
81+
del env[AWS_PROFILE]
82+
if self.original_profile:
83+
env[AWS_PROFILE] = self.original_profile
84+
85+
if env.get(AWS_DEFAULT_REGION):
86+
del env[AWS_DEFAULT_REGION]
87+
if self.original_region:
88+
env[AWS_DEFAULT_REGION] = self.original_region
89+
90+
shutil.rmtree(self.config_dir, ignore_errors=True)
91+
5892
def _init_custom_config(self, profile, region):
5993
self.config_dir = tempfile.mkdtemp()
6094
env = os.environ
61-
if AWS_CONFIG_FILE in env:
62-
self.original_config_file = env[AWS_CONFIG_FILE]
63-
if AWS_SHARED_CREDENTIALS_FILE in env:
64-
self.original_cred_file = env[AWS_SHARED_CREDENTIALS_FILE]
65-
if AWS_PROFILE in env:
66-
self.original_profile = env[AWS_PROFILE]
67-
if AWS_DEFAULT_REGION in env:
68-
self.original_region = env[AWS_DEFAULT_REGION]
6995

7096
custom_config = self._create_config_file(profile, region)
7197
session = Session()
@@ -81,31 +107,6 @@ def _init_custom_config(self, profile, region):
81107
env[AWS_PROFILE] = profile
82108
env[AWS_DEFAULT_REGION] = region
83109

84-
def _tear_down_custom_config(self):
85-
env = os.environ
86-
87-
if self.original_config_file is None:
88-
del env[AWS_CONFIG_FILE]
89-
else:
90-
env[AWS_CONFIG_FILE] = self.original_config_file
91-
92-
if self.original_cred_file is None:
93-
del env[AWS_SHARED_CREDENTIALS_FILE]
94-
else:
95-
env[AWS_SHARED_CREDENTIALS_FILE] = self.original_cred_file
96-
97-
if self.original_profile is None:
98-
del env[AWS_PROFILE]
99-
else:
100-
env[AWS_PROFILE] = self.original_profile
101-
102-
if self.original_region is None:
103-
del env[AWS_DEFAULT_REGION]
104-
else:
105-
env[AWS_DEFAULT_REGION] = self.original_region
106-
107-
shutil.rmtree(self.config_dir, ignore_errors=True)
108-
109110
def _create_config_file(self, profile, region):
110111
if profile == DEFAULT:
111112
config_file_content = "[{0}]\noutput = json\nregion = {1}".format(profile, region)

tests/integration/init/schemas/test_init_with_schemas_command.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -308,8 +308,6 @@ def test_init_interactive_with_event_bridge_app_non_default_profile_selection(se
308308
self.assertTrue(expected_output_folder.is_dir())
309309
self.assertTrue(Path(expected_output_folder, "hello_world_function", "schema").is_dir())
310310

311-
self._tear_down_custom_config()
312-
313311
def test_init_interactive_with_event_bridge_app_non_supported_schemas_region(self):
314312
self._init_custom_config("default", "cn-north-1")
315313
# WHEN the user follows interactive init prompts
@@ -339,4 +337,3 @@ def test_init_interactive_with_event_bridge_app_non_supported_schemas_region(sel
339337
runner = CliRunner()
340338
result = runner.invoke(init_cmd, ["--output-dir", temp], input=user_input)
341339
self.assertTrue(result.exception)
342-
self._tear_down_custom_config()

0 commit comments

Comments
 (0)