forked from astral-sh/ruff
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmod.rs
More file actions
66 lines (62 loc) · 3.8 KB
/
mod.rs
File metadata and controls
66 lines (62 loc) · 3.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
//! Airflow-specific rules.
pub(crate) mod helpers;
pub(crate) mod rules;
#[cfg(test)]
mod tests {
use std::path::Path;
use anyhow::Result;
use test_case::test_case;
use crate::registry::Rule;
use crate::test::test_path;
use crate::{assert_diagnostics, settings};
#[test_case(Rule::AirflowVariableNameTaskIdMismatch, Path::new("AIR001.py"))]
#[test_case(Rule::AirflowDagNoScheduleArgument, Path::new("AIR002.py"))]
#[test_case(Rule::Airflow3Removal, Path::new("AIR301_args.py"))]
#[test_case(Rule::Airflow3Removal, Path::new("AIR301_names.py"))]
#[test_case(Rule::Airflow3Removal, Path::new("AIR301_names_fix.py"))]
#[test_case(Rule::Airflow3Removal, Path::new("AIR301_provider_names_fix.py"))]
#[test_case(Rule::Airflow3Removal, Path::new("AIR301_names_try.py"))]
#[test_case(Rule::Airflow3Removal, Path::new("AIR301_class_attribute.py"))]
#[test_case(Rule::Airflow3Removal, Path::new("AIR301_airflow_plugin.py"))]
#[test_case(Rule::Airflow3Removal, Path::new("AIR301_context.py"))]
#[test_case(Rule::Airflow31Moved, Path::new("AIR321_names.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_amazon.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_celery.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_common_sql.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_daskexecutor.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_druid.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_fab.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_hdfs.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_hive.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_http.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_jdbc.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_kubernetes.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_mysql.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_oracle.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_papermill.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_pig.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_postgres.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_presto.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_samba.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_slack.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_smtp.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_sqlite.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_zendesk.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_standard.py"))]
#[test_case(Rule::Airflow3MovedToProvider, Path::new("AIR302_try.py"))]
#[test_case(Rule::Airflow3IncompatibleFunctionSignature, Path::new("AIR303.py"))]
#[test_case(Rule::Airflow3SuggestedUpdate, Path::new("AIR311_args.py"))]
#[test_case(Rule::Airflow3SuggestedUpdate, Path::new("AIR311_names.py"))]
#[test_case(Rule::Airflow3SuggestedUpdate, Path::new("AIR311_try.py"))]
#[test_case(Rule::Airflow3SuggestedToMoveToProvider, Path::new("AIR312.py"))]
#[test_case(Rule::Airflow3SuggestedToMoveToProvider, Path::new("AIR312_try.py"))]
fn rules(rule_code: Rule, path: &Path) -> Result<()> {
let snapshot = format!("{}_{}", rule_code.noqa_code(), path.to_string_lossy());
let diagnostics = test_path(
Path::new("airflow").join(path).as_path(),
&settings::LinterSettings::for_rule(rule_code),
)?;
assert_diagnostics!(snapshot, diagnostics);
Ok(())
}
}