code: def test_frame_overwrite(self):
      sample = fo.Sample(filepath="video.mp4")
      sample.frames[1] = fo.Frame(hello="world")
  
      dataset = fo.Dataset()
      dataset.add_sample(sample)
  
      self.assertEqual(sample.frames[1].hello, "world")
  
      # Overwriting an existing frame is alloed
      sample.frames[1] = fo.Frame(goodbye="world")
      sample.save()
  
      self.assertEqual(dataset.first().frames[1].goodbye, "world")
  
      view = dataset.exclude_fields("frames.goodbye")
      sample = view.first()
      sample.frames[1] = fo.Frame(new="field")
      sample.save()
  
      frame = dataset.first().frames[1]
  
      self.assertEqual(frame.hello, None)
      self.assertEqual(frame.goodbye, "world")
      self.assertEqual(frame.new, "field")
  
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 10 for calling the VideoTests obj's underlying member method code with example usage: obj.test_frame_overwrite() without return types