code: def test_group_id_video(self):
      dataset = (
          foz.load_zoo_dataset("quickstart-video", max_samples=1)
          .select_fields("frames.detections")
          .clone()
      )
      group_id_attr_name = "group_id_attr"
  
      prev_ids = dataset.values(
          "frames.detections.detections.id", unwind=True
      )
  
      # Set group id attribute
      sample = dataset.first()
      for det in sample.frames[1].detections.detections:
          det["group_id_attr"] = 1
      sample.save()
  
      anno_key = "cvat_group_ids"
  
      # Populate a new `group_id` attribute on the existing `ground_truth` labels
      label_schema = {
          "frames.detections": {
              "attributes": {
                  group_id_attr_name: {
                      "type": "group_id",
                  }
              }
          }
      }
  
      results = dataset.annotate(
          anno_key, label_schema=label_schema, backend="cvat"
      )
  
      with results:
          api = results.connect_to_api()
          task_id = results.task_ids[0]
  
          test_group_id = 2
          _create_annotation(
              api,
              task_id,
              track=(0, 1),
              group_id=test_group_id,
          )
  
      dataset.load_annotations(anno_key, cleanup=True)
  
      new_id = list(
          set(
              dataset.values(
                  "frames.detections.detections.id", unwind=True
              )
          )
          - set(prev_ids)
      )[0]
  
      id_group_map = dict(
          zip(
              *dataset.values(
                  [
                      "frames.detections.detections.id",
                      "frames.detections.detections.%s"
                      % group_id_attr_name,
                  ],
                  unwind=True,
              )
          )
      )
      self.assertEqual(id_group_map.pop(new_id), test_group_id)
      self.assertFalse(
          any([gid == test_group_id for gid in id_group_map.values()])
      )
  
imports: from bson import ObjectId
  from collections import defaultdict
  import numpy
  import os
  import unittest
  import eta.core.utils
  import fiftyone
  import fiftyone.utils.cvat
  import fiftyone.zoo
  from fiftyone.core.expressions import ViewField
label_desc: Use image node_id 14 for calling the CVATTests obj's underlying member method code with example usage: obj.test_group_id_video() without return types