code: def test_to_frames_schema(self):
      sample = fo.Sample(filepath="video.mp4")
      sample.frames[1] = fo.Frame(filepath="image.jpg")
  
      dataset = fo.Dataset()
      dataset.add_sample(sample)
  
      frames = dataset.to_frames()
      view = frames.select_fields()
  
      sample = view.first()
      sample["foo"] = "bar"
      sample.save()
  
      self.assertNotIn("foo", view.get_field_schema())
      self.assertIn("foo", frames.get_field_schema())
      self.assertIn("foo", dataset.get_frame_field_schema())
  
      frame = frames.first()
      self.assertEqual(frame["foo"], "bar")
  
      frame = dataset.first().frames.first()
      self.assertEqual(frame["foo"], "bar")
  
imports: from copy import deepcopy
  from datetime import date, datetime
  from bson import ObjectId
  import numpy
  import unittest
  import fiftyone
  import fiftyone.core.odm
  from fiftyone import ViewField
  from decorators import drop_datasets
label_desc: Use image node_id 27 for calling the VideoTests obj's underlying member method code with example usage: obj.test_to_frames_schema() without return types