code: def should_error(self, f, exc_type, expected_message):
      with self.assertRaises(exc_type) as e:
          f()
  
      message = str(e.exception)
      self.assertIn(expected_message, message)
  
imports: import numpy
  from zipline.lib.labelarray import LabelArray
  from zipline.pipeline import Classifier, Factor, Filter
  from zipline.testing import parameter_space
  from zipline.utils.numpy_utils import categorical_dtype, datetime64ns_dtype, float64_dtype, int64_dtype, NaTns
  from .base import BaseUSEquityPipelineTestCase
label_desc: Use image node_id 3 for calling the FillNATestCase obj's underlying member method code with example usage: obj.should_error(f, exc_type, expected_message) without return types