code: def _test_fetch_csv_with_multi_symbols(self):
      self.responses.add(
          self.responses.GET,
          "https://fake.urls.com/multi_signal_csv_data.csv",
          body=MULTI_SIGNAL_CSV_DATA,
          content_type="text/csv",
      )
  
      results = self.run_algo(
          """
  from catalyst.api import fetch_csv, record, sid
  
  def initialize(context):
      fetch_csv('https://fake.urls.com/multi_signal_csv_data.csv')
      context.stocks = [sid(3766), sid(25317)]
  
  def handle_data(context, data):
      record(ibm_signal=data.current(sid(3766), "signal"))
      record(dell_signal=data.current(sid(25317), "signal"))
      """
      )
  
      self.assertEqual(5, results["ibm_signal"].iloc[-1])
      self.assertEqual(5, results["dell_signal"].iloc[-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 4 for calling the FetcherTestCase obj's underlying member method code with example usage: obj._test_fetch_csv_with_multi_symbols() without return types