code: def test_get_value_contract_daily(self):
      cf_primary = self.asset_finder.create_continuous_future(
          "FO", 0, "calendar", None
      )
  
      contract = self.data_portal.get_spot_value(
          cf_primary,
          "contract",
          pd.Timestamp("2016-01-26", tz="UTC"),
          "daily",
      )
  
      self.assertEqual(contract.symbol, "FOF16")
  
      contract = self.data_portal.get_spot_value(
          cf_primary,
          "contract",
          pd.Timestamp("2016-01-27", tz="UTC"),
          "daily",
      )
  
      self.assertEqual(
          contract.symbol,
          "FOG16",
          "Auto close at beginning of session so FOG16 is now "
          "the current contract.",
      )
  
      # Test that the current contract outside of the continuous future's
      # start and end dates is None.
      contract = self.data_portal.get_spot_value(
          cf_primary,
          "contract",
          self.START_DATE - self.trading_calendar.day,
          "daily",
      )
      self.assertIsNone(contract)
  
imports: from collections import deque
  from functools import partial
  from textwrap import dedent
  from numpy import arange, array, int64, full, repeat, tile
  from numpy.testing import assert_almost_equal
  import pandas
  from pandas import Timestamp, DataFrame
  from zipline.assets.continuous_futures import OrderedContracts, delivery_predicate
  from zipline.assets.roll_finder import ROLL_DAYS_FOR_CURRENT_CONTRACT, VolumeRollFinder
  from zipline.data.minute_bars import FUTURES_MINUTES_PER_DAY
  from zipline.errors import SymbolNotFound
  import zipline.testing.fixtures
label_desc: Use image node_id 7 for calling the ContinuousFuturesTestCase obj's underlying member method code with example usage: obj.test_get_value_contract_daily() without return types