-
Notifications
You must be signed in to change notification settings - Fork 81
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Integration tests executed on a real deployment as part of the CICD -…
… Redshift Shares (#1643)⚠️ MERGE AFTER #1636 ### Feature or Bugfix - Feature: Testing ### Detail Add integration tests for Redshift shares. Implements #1620 - Implemented inside the shares modules in a subdirectory so that each share type can have its own conftest but still re-use common methods from shares queries - This PR is focused on testing the Redshift shares functionality, it does not include all tests that test the workflow of the share (e.g. submit, reject...) - It does not validate if after a share the user has access to data. We could implement it using the Redshift Data API, but I left it as optional for a separate PR ### Tested Locally: ![image](https://github.com/user-attachments/assets/3a2acc79-d025-483f-949b-23e31b23d26e) ### Relates - #1620 - #1619 - #1220 ### Security Please answer the questions below briefly where applicable, or write `N/A`. Based on [OWASP 10](https://owasp.org/Top10/en/). - Does this PR introduce or modify any input fields or queries - this includes fetching data from storage outside the application (e.g. a database, an S3 bucket)? - Is the input sanitized? - What precautions are you taking before deserializing the data you consume? - Is injection prevented by parametrizing queries? - Have you ensured no `eval` or similar functions are used? - Does this PR introduce any functionality or component that requires authorization? - How have you ensured it respects the existing AuthN/AuthZ mechanisms? - Are you logging failed auth attempts? - Are you using or adding any cryptographic features? - Do you use a standard proven implementations? - Are the used keys controlled by the customer? Where are they stored? - Are you introducing any new policies/roles/users? - Have you used the least-privilege principle? How? By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
- Loading branch information
Showing
17 changed files
with
540 additions
and
55 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
12 changes: 0 additions & 12 deletions
12
tests_new/integration_tests/modules/share_base/input_types.py
This file was deleted.
Oops, something went wrong.
File renamed without changes.
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
23 changes: 23 additions & 0 deletions
23
tests_new/integration_tests/modules/shares/redshift_datasets_shares/aws_clients.py
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,23 @@ | ||
import logging | ||
from typing import Any, Dict | ||
from botocore.exceptions import ClientError | ||
|
||
log = logging.getLogger(__name__) | ||
|
||
|
||
class RedshiftClient: | ||
def __init__(self, session, region): | ||
self._client = session.client('redshift', region_name=region) | ||
self._region = region | ||
|
||
def deauthorize_datashare(self, datashare_arn: str, target_account: str) -> Dict[str, Any]: | ||
log.info('Deauthorizing Redshift datashare...') | ||
try: | ||
response = self._client.deauthorize_data_share( | ||
DataShareArn=datashare_arn, ConsumerIdentifier=target_account | ||
) | ||
log.info(f'Datashare deauthorized successfully: {datashare_arn}') | ||
return response | ||
except ClientError as e: | ||
log.exception('Error deauthorizing datashare') | ||
raise e |
Oops, something went wrong.