-
-
Notifications
You must be signed in to change notification settings - Fork 21
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* add unittest for secret * fix codecov for all branch * add unittest for secret * fix test class name * fix test_secrete_manager name * add unittest for resource add unittest for exception * fix exceptions.py for mypy
- Loading branch information
Showing
7 changed files
with
169 additions
and
11 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
|
||
from unittest import TestCase | ||
|
||
from local_data_api.exceptions import DataAPIException | ||
|
||
|
||
class TestDataAPIException(TestCase): | ||
def test_code(self) -> None: | ||
class DummyError(DataAPIException): | ||
STATUS_CODE = 500 | ||
self.assertEqual(DummyError('test').code, 'DummyError') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
|
||
from unittest import TestCase | ||
|
||
from local_data_api.exceptions import BadRequestException | ||
from local_data_api.secret_manager import register_secret, get_secret, create_secret_arn, SECRETS, Secret | ||
|
||
|
||
class TestSecretManagerFunction(TestCase): | ||
def setUp(self) -> None: | ||
SECRETS.clear() | ||
|
||
def test_create_secret_arn(self) -> None: | ||
self.assertEqual(create_secret_arn()[:67], 'arn:aws:secretsmanager:us-east-1:123456789012:secret:local-data-api') | ||
self.assertEqual(create_secret_arn(region_name='ap-northeast-1', account='000000000000')[:72], | ||
'arn:aws:secretsmanager:ap-northeast-1:000000000000:secret:local-data-api') | ||
|
||
def test_register_secret(self) -> None: | ||
|
||
register_secret(user_name='root', password='example', | ||
secret_arn='arn:aws:secretsmanager:ap-northeast-1:000000000000:secret:local-data-api') | ||
|
||
secret: Secret = SECRETS['arn:aws:secretsmanager:ap-northeast-1:000000000000:secret:local-data-api'] | ||
self.assertEqual(secret, Secret('root', 'example')) | ||
|
||
def test_register_secret_no_arn(self) -> None: | ||
|
||
secret_arn: str = register_secret('root', 'example') | ||
|
||
secret: Secret = SECRETS[secret_arn] | ||
self.assertEqual(secret, Secret('root', 'example')) | ||
|
||
def test_get_secret(self) -> None: | ||
secret_arn = 'arn:aws:secretsmanager:ap-northeast-1:000000000000:secret:local-data-api' | ||
|
||
expected_secret: Secret = Secret('root', 'example') | ||
SECRETS[secret_arn] = expected_secret | ||
|
||
secret: Secret = get_secret(secret_arn) | ||
|
||
self.assertEqual(secret, expected_secret) | ||
|
||
def test_get_secret_notfound_secret(self) -> None: | ||
secret_arn = 'arn:aws:secretsmanager:ap-northeast-1:000000000000:secret:local-data-api' | ||
|
||
exception = BadRequestException(f'Error fetching secret {secret_arn} : Secrets Manager can’t find the specified ' | ||
f'secret. (Service: AWSSecretsManager; Status Code: 400; Error Code: ' | ||
f'ResourceNotFoundException; Request ID: 00000000-1111-2222-3333-44444444444)') | ||
|
||
with self.assertRaises(BadRequestException, ): | ||
try: | ||
get_secret(secret_arn) | ||
except BadRequestException as e: | ||
self.assertEqual(e.message, exception.message) | ||
raise |