@@ -419,6 +419,64 @@ def test_missing_assets(self):
419
419
super ().test_missing_assets ()
420
420
421
421
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
+
422
480
class TestElasticsearchProviderProjectStructure (ExampleCoverageTest ):
423
481
PROVIDER = "elasticsearch"
424
482
CLASS_DIRS = {"hooks" }
0 commit comments