code: def _test_algo_fetch_csv_with_extra_symbols(self):
      self.responses.add(
          self.responses.GET,
          "https://fake.urls.com/aapl_ibm_csv_data.csv",
          body=AAPL_IBM_CSV_DATA,
          content_type="text/csv",
      )
  
      results = self.run_algo(
          """
  from catalyst.api import fetch_csv, record, sid
  
  def normalize(df):
      df['scaled'] = df['signal'] * 10
      return df
  
  def initialize(context):
      fetch_csv('https://fake.urls.com/aapl_ibm_csv_data.csv',
              post_func=normalize,
              mask=True)
  
  def handle_data(context, data):
      record(
          signal=data.current(sid(24),"signal"),
          scaled=data.current(sid(24), "scaled"),
          price=data.current(sid(24), "price"))
              """
      )
  
      self.assertEqual(5, results["signal"][-1])
      self.assertEqual(50, results["scaled"][-1])
      self.assertEqual(24, results["price"][-1])
  
imports: from nose_parameterized import parameterized
  import pandas
  import numpy
  from mock import patch
  from catalyst import TradingAlgorithm
  from catalyst.errors import UnsupportedOrderParameters
  from catalyst.sources.requests_csv import mask_requests_args
  from catalyst.utils import factory
  from catalyst.testing import FetcherDataPortal
  from catalyst.testing.fixtures import WithResponses, WithSimParams, CatalystTestCase
  from .resources.fetcher_inputs.fetcher_test_data import AAPL_CSV_DATA, AAPL_IBM_CSV_DATA, AAPL_MINUTE_CSV_DATA, CPIAUCSL_DATA, FETCHER_ALTERNATE_COLUMN_HEADER, FETCHER_UNIVERSE_DATA, FETCHER_UNIVERSE_DATA_TICKER_COLUMN, MULTI_SIGNAL_CSV_DATA, NON_ASSET_FETCHER_UNIVERSE_DATA, PALLADIUM_DATA, NFLX_DATA
label_desc: Use image node_id 7 for calling the FetcherTestCase obj's underlying member method code with example usage: obj._test_algo_fetch_csv_with_extra_symbols() without return types