def METHOD_NAME(self, mock_bq: MagicMock):
    # Write data to an temporary file
    test_file_path = '/tmp/test_file.csv'
    test_data = dedent(
        """
        col1,col2,col3,col4
        20201209,13,text,"2,937"
        20210105,"1,400",string,
        """)
    with open(test_file_path, 'w') as f:
        f.write(test_data)
    df = gcs_to_bq_util.load_csv_as_df(
        'gcs_bucket', 'test_file.csv', parse_dates=['col1'], thousands=',')
    # With parse_dates, col1 should be interpreted as numpy datetime. With
    # thousands=',', numeric columns should be interpreted correctly even if
    # they are written as strings with commas. Numeric cols with null values
    # are inferred as floats.
    expected_types = {'col1': np.dtype('datetime64[ns]'), 'col2': np.int64,
                      'col3': object, 'col4': np.float64}
    for col in df.columns:
        self.assertEqual(df[col].dtype, expected_types[col])
    # Re-write the test data since load_csv_as_df removes the file.
    with open(test_file_path, 'w') as f:
        f.write(test_data)
    df = gcs_to_bq_util.load_csv_as_df('gcs_bucket', 'test_file.csv')
    # Without the additional read_csv args, the data are inferred to the
    # default object type.
    expected_types = {'col1': np.int64, 'col2': object,
                      'col3': object, 'col4': object}
    for col in df.columns:
        self.assertEqual(df[col].dtype, expected_types[col])