code: def test_ops_on_closed_reader_raise(self):
      reader = sam_reader.SamReader.from_file(
          reads_path=self.bam, ref_path="", options=self.options
      )
      with reader:
          pass
      # At this point the reader is closed.
      with self.assertRaisesRegex(
          ValueError, "Cannot Iterate a closed"
      ):
          reader.iterate()
      with self.assertRaisesRegex(ValueError, "Cannot Query a closed"):
          reader.query(
              ranges.parse_literal("chr20:10,000,000-10,000,100")
          )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from absl.testing import absltest
  from absl.testing import parameterized
  from third_party.nucleus.io import clif_postproc
  from third_party.nucleus.io.python import sam_reader
  from third_party.nucleus.protos import reads_pb2
  from third_party.nucleus.protos import reference_pb2
  from third_party.nucleus.testing import test_utils
  from third_party.nucleus.util import ranges
label_desc: Use image node_id 8 for calling the SamReaderTest obj's underlying member method code with example usage: obj.test_ops_on_closed_reader_raise() without return types