Skip to content

Commit 64d0d9c

Browse files
authored
Add AWS project structure tests (re: AIP-47) (#23630)
1 parent 3993cb8 commit 64d0d9c

File tree

2 files changed

+59
-1
lines changed

2 files changed

+59
-1
lines changed

airflow/providers/amazon/aws/sensors/s3.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ def __init__(
155155
):
156156
warnings.warn(
157157
"""
158-
S3PrefixSensor is deprecated.
158+
S3KeySizeSensor is deprecated.
159159
Please use `airflow.providers.amazon.aws.sensors.s3.S3KeySensor`.
160160
""",
161161
DeprecationWarning,

tests/always/test_project_structure.py

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -419,6 +419,64 @@ def test_missing_assets(self):
419419
super().test_missing_assets()
420420

421421

422+
class TestAmazonProviderProjectStructure(ExampleCoverageTest):
423+
PROVIDER = "amazon"
424+
CLASS_DIRS = ProjectStructureTest.CLASS_DIRS
425+
426+
BASE_CLASSES = {
427+
'airflow.providers.amazon.aws.operators.rds.RdsBaseOperator',
428+
'airflow.providers.amazon.aws.operators.sagemaker.SageMakerBaseOperator',
429+
'airflow.providers.amazon.aws.sensors.dms.DmsTaskBaseSensor',
430+
'airflow.providers.amazon.aws.sensors.emr.EmrBaseSensor',
431+
'airflow.providers.amazon.aws.sensors.rds.RdsBaseSensor',
432+
'airflow.providers.amazon.aws.sensors.sagemaker.SageMakerBaseSensor',
433+
}
434+
435+
MISSING_EXAMPLES_FOR_CLASSES = {
436+
# DMS examples DAGs are currently in development
437+
'airflow.providers.amazon.aws.operators.dms.DmsDescribeTasksOperator',
438+
'airflow.providers.amazon.aws.operators.dms.DmsStopTaskOperator',
439+
# EMR legitimately missing, needs development
440+
'airflow.providers.amazon.aws.operators.emr.EmrModifyClusterOperator',
441+
'airflow.providers.amazon.aws.sensors.emr.EmrContainerSensor',
442+
# S3 Exasol transfer difficult to test, see: https://github.com/apache/airflow/issues/22632
443+
'airflow.providers.amazon.aws.transfers.exasol_to_s3.ExasolToS3Operator',
444+
# S3 legitimately missing, needs development
445+
'airflow.providers.amazon.aws.transfers.gcs_to_s3.GCSToS3Operator',
446+
# Glue Catalog sensor difficult to test
447+
'airflow.providers.amazon.aws.sensors.glue_catalog_partition.GlueCatalogPartitionSensor',
448+
}
449+
450+
DEPRECATED_CLASSES = {
451+
'airflow.providers.amazon.aws.operators.athena.AWSAthenaOperator',
452+
'airflow.providers.amazon.aws.operators.batch.AwsBatchOperator',
453+
'airflow.providers.amazon.aws.operators.datasync.AWSDataSyncOperator',
454+
'airflow.providers.amazon.aws.operators.ecs.ECSOperator',
455+
'airflow.providers.amazon.aws.operators.eks.EKSCreateClusterOperator',
456+
'airflow.providers.amazon.aws.operators.eks.EKSCreateFargateProfileOperator',
457+
'airflow.providers.amazon.aws.operators.eks.EKSCreateNodegroupOperator',
458+
'airflow.providers.amazon.aws.operators.eks.EKSDeleteClusterOperator',
459+
'airflow.providers.amazon.aws.operators.eks.EKSDeleteFargateProfileOperator',
460+
'airflow.providers.amazon.aws.operators.eks.EKSDeleteNodegroupOperator',
461+
'airflow.providers.amazon.aws.operators.eks.EKSPodOperator',
462+
'airflow.providers.amazon.aws.operators.emr_containers.EMRContainerOperator',
463+
'airflow.providers.amazon.aws.operators.glue.AwsGlueJobOperator',
464+
'airflow.providers.amazon.aws.operators.glue_crawler.AwsGlueCrawlerOperator',
465+
'airflow.providers.amazon.aws.operators.sqs.SQSPublishOperator',
466+
'airflow.providers.amazon.aws.sensors.eks.EKSClusterStateSensor',
467+
'airflow.providers.amazon.aws.sensors.eks.EKSFargateProfileStateSensor',
468+
'airflow.providers.amazon.aws.sensors.eks.EKSNodegroupStateSensor',
469+
'airflow.providers.amazon.aws.sensors.emr_containers.EMRContainerSensor',
470+
'airflow.providers.amazon.aws.sensors.glue.AwsGlueJobSensor',
471+
'airflow.providers.amazon.aws.sensors.glue_catalog_partition.AwsGlueCatalogPartitionSensor',
472+
'airflow.providers.amazon.aws.sensors.glue_crawler.AwsGlueCrawlerSensor',
473+
'airflow.providers.amazon.aws.sensors.s3.S3KeySizeSensor',
474+
'airflow.providers.amazon.aws.sensors.s3.S3PrefixSensor',
475+
'airflow.providers.amazon.aws.sensors.sqs.SQSSensor',
476+
'airflow.providers.amazon.aws.transfers.mysql_to_s3.MySQLToS3Operator',
477+
}
478+
479+
422480
class TestElasticsearchProviderProjectStructure(ExampleCoverageTest):
423481
PROVIDER = "elasticsearch"
424482
CLASS_DIRS = {"hooks"}

0 commit comments

Comments
 (0)