Skip to content

Commit 43a2209

Browse files
S6735: Fix mixed up FQNs for pandas.merge and pandas.join (#1599)
1 parent b81b87c commit 43a2209

File tree

2 files changed

+26
-5
lines changed

2 files changed

+26
-5
lines changed

python-checks/src/main/java/org/sonar/python/checks/PandasAddMergeParametersCheck.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,8 @@ int getArgumentPosition(String fullyQualifiedName) {
9595
}
9696
}
9797

98-
private static final String DATAFRAME_JOIN_FQN = "pandas.core.frame.DataFrame.merge";
99-
private static final String DATAFRAME_MERGE_FQN = "pandas.core.frame.DataFrame.join";
98+
private static final String DATAFRAME_JOIN_FQN = "pandas.core.frame.DataFrame.join";
99+
private static final String DATAFRAME_MERGE_FQN = "pandas.core.frame.DataFrame.merge";
100100
private static final String PANDAS_MERGE_FQN = "pandas.core.reshape.merge.merge";
101101

102102
private static final Set<String> METHODS = Set.of(

python-checks/src/test/java/org/sonar/python/checks/PandasAddMergeParametersCheckTest.java

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,34 @@ void quickfix_test_1() {
4747
" age_df = pd.read_csv(\"age_csv.csv\")\n" +
4848
" name_df = pd.read_csv(\"name_csv.csv\")\n" +
4949
"\n" +
50-
" _ = age_df.merge(name_df, how=\"left\", on=None, validate=\"many_to_many\")";
50+
" _ = age_df.merge(name_df, how=\"inner\", on=None, validate=\"many_to_many\")";
5151
PythonQuickFixVerifier.verify(CHECK, non_compliant, compliant);
5252
PythonQuickFixVerifier.verifyQuickFixMessages(CHECK, non_compliant, "Add the missing parameters");
5353
}
5454

5555
@Test
5656
void quickfix_test_2() {
57+
final String non_compliant = "def non_compliant_merge_1():\n" +
58+
" import pandas as pd\n" +
59+
"\n" +
60+
" age_df = pd.read_csv(\"age_csv.csv\")\n" +
61+
" name_df = pd.read_csv(\"name_csv.csv\")\n" +
62+
"\n" +
63+
" _ = age_df.join(name_df)";
64+
65+
final String compliant = "def non_compliant_merge_1():\n" +
66+
" import pandas as pd\n" +
67+
"\n" +
68+
" age_df = pd.read_csv(\"age_csv.csv\")\n" +
69+
" name_df = pd.read_csv(\"name_csv.csv\")\n" +
70+
"\n" +
71+
" _ = age_df.join(name_df, how=\"left\", on=None, validate=\"many_to_many\")";
72+
PythonQuickFixVerifier.verify(CHECK, non_compliant, compliant);
73+
PythonQuickFixVerifier.verifyQuickFixMessages(CHECK, non_compliant, "Add the missing parameters");
74+
}
75+
76+
@Test
77+
void quickfix_test_3() {
5778
final String non_compliant = "def non_compliant_merge_1():\n" +
5879
" import pandas as pd\n" +
5980
"\n" +
@@ -68,15 +89,15 @@ void quickfix_test_2() {
6889
" age_df = pd.read_csv(\"age_csv.csv\")\n" +
6990
" name_df = pd.read_csv(\"name_csv.csv\")\n" +
7091
"\n" +
71-
" _ = age_df.merge(name_df, on=\"user_id\", how=\"left\", validate=\"many_to_many\")";
92+
" _ = age_df.merge(name_df, on=\"user_id\", how=\"inner\", validate=\"many_to_many\")";
7293

7394
PythonQuickFixVerifier.verify(CHECK, non_compliant, compliant);
7495
PythonQuickFixVerifier.verifyQuickFixMessages(CHECK, non_compliant, "Add the missing parameters");
7596
}
7697

7798

7899
@Test
79-
void quickfix_test_3() {
100+
void quickfix_test_4() {
80101
final String non_compliant = "def non_compliant_merge_1():\n" +
81102
" import pandas as pd\n" +
82103
"\n" +

0 commit comments

Comments
 (0)