Skip to content

Commit

Permalink
S6735: Fix mixed up FQNs for pandas.merge and pandas.join (#1599)
Browse files Browse the repository at this point in the history
  • Loading branch information
guillaume-dequenne-sonarsource authored Oct 6, 2023
1 parent b81b87c commit 43a2209
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,8 @@ int getArgumentPosition(String fullyQualifiedName) {
}
}

private static final String DATAFRAME_JOIN_FQN = "pandas.core.frame.DataFrame.merge";
private static final String DATAFRAME_MERGE_FQN = "pandas.core.frame.DataFrame.join";
private static final String DATAFRAME_JOIN_FQN = "pandas.core.frame.DataFrame.join";
private static final String DATAFRAME_MERGE_FQN = "pandas.core.frame.DataFrame.merge";
private static final String PANDAS_MERGE_FQN = "pandas.core.reshape.merge.merge";

private static final Set<String> METHODS = Set.of(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,34 @@ void quickfix_test_1() {
" age_df = pd.read_csv(\"age_csv.csv\")\n" +
" name_df = pd.read_csv(\"name_csv.csv\")\n" +
"\n" +
" _ = age_df.merge(name_df, how=\"left\", on=None, validate=\"many_to_many\")";
" _ = age_df.merge(name_df, how=\"inner\", on=None, validate=\"many_to_many\")";
PythonQuickFixVerifier.verify(CHECK, non_compliant, compliant);
PythonQuickFixVerifier.verifyQuickFixMessages(CHECK, non_compliant, "Add the missing parameters");
}

@Test
void quickfix_test_2() {
final String non_compliant = "def non_compliant_merge_1():\n" +
" import pandas as pd\n" +
"\n" +
" age_df = pd.read_csv(\"age_csv.csv\")\n" +
" name_df = pd.read_csv(\"name_csv.csv\")\n" +
"\n" +
" _ = age_df.join(name_df)";

final String compliant = "def non_compliant_merge_1():\n" +
" import pandas as pd\n" +
"\n" +
" age_df = pd.read_csv(\"age_csv.csv\")\n" +
" name_df = pd.read_csv(\"name_csv.csv\")\n" +
"\n" +
" _ = age_df.join(name_df, how=\"left\", on=None, validate=\"many_to_many\")";
PythonQuickFixVerifier.verify(CHECK, non_compliant, compliant);
PythonQuickFixVerifier.verifyQuickFixMessages(CHECK, non_compliant, "Add the missing parameters");
}

@Test
void quickfix_test_3() {
final String non_compliant = "def non_compliant_merge_1():\n" +
" import pandas as pd\n" +
"\n" +
Expand All @@ -68,15 +89,15 @@ void quickfix_test_2() {
" age_df = pd.read_csv(\"age_csv.csv\")\n" +
" name_df = pd.read_csv(\"name_csv.csv\")\n" +
"\n" +
" _ = age_df.merge(name_df, on=\"user_id\", how=\"left\", validate=\"many_to_many\")";
" _ = age_df.merge(name_df, on=\"user_id\", how=\"inner\", validate=\"many_to_many\")";

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


@Test
void quickfix_test_3() {
void quickfix_test_4() {
final String non_compliant = "def non_compliant_merge_1():\n" +
" import pandas as pd\n" +
"\n" +
Expand Down

0 comments on commit 43a2209

Please sign in to comment.