code: def _test_local_file(
      self, path: str, expected_ext: str, custom_ext=None
  ):
      file = File.from_path(path, extension=custom_ext)
      self.assertIs(file.file_type, FileType.LOCAL_FILE)
      self.assertEqual(path, file.path)
      with self.assertRaises(NeptuneException):
          _ = file.content
      with self.assertRaises(NeptuneException):
          file._save(None)
      self.assertEqual(expected_ext, file.extension)
  
imports: import pickle
  import unittest
  from io import BytesIO, StringIO
  import numpy
  from bokeh.plotting import figure
  from PIL import Image
  from neptune.exceptions import NeptuneException, StreamAlreadyUsedException
  from neptune.internal.types.file_types import FileType, InMemoryComposite
  from neptune.internal.utils.images import _get_pil_image_data
  from neptune.types import File
  from tests.e2e.utils import tmp_context
label_desc: Use image node_id 2 for calling the TestFile obj's underlying member method code with example usage: obj._test_local_file(path, expected_ext, custom_ext) without return types