code: def test_mongo_store_partition_permissions_update(
      root_verify_key: SyftVerifyKey,
      guest_verify_key: SyftVerifyKey,
      mongo_store_partition: MongoStorePartition,
  ) -> None:
      res = mongo_store_partition.init_store()
      assert res.is_ok()
      # the root client set an object
      obj = MockSyftObject(data=1)
      mongo_store_partition.set(
          credentials=root_verify_key, obj=obj, ignore_duplicates=False
      )
      assert (
          len(
              mongo_store_partition.all(
                  credentials=root_verify_key
              ).ok()
          )
          == 1
      )
  
      qk: QueryKey = mongo_store_partition.settings.store_key.with_obj(
          obj
      )
      permsissions: MongoCollection = (
          mongo_store_partition.permissions.ok()
      )
  
      for v in range(REPEATS):
          # the guest client should not have permission to update obj
          obj_new = MockSyftObject(data=v)
          res = mongo_store_partition.update(
              credentials=guest_verify_key, qk=qk, obj=obj_new
          )
          assert res.is_err()
          # the root client has the permission to update obj
          res = mongo_store_partition.update(
              credentials=root_verify_key, qk=qk, obj=obj_new
          )
          assert res.is_ok()
          # the id of the object in the permission collection should not be changed
          assert (
              permsissions.find_one(qk.as_dict_mongo)["_id"] == obj.id
          )
  
imports: import sys
  from threading import Thread
  from typing import List
  from typing import Set
  from typing import Tuple
  from joblib import Parallel
  from joblib import delayed
  from pymongo.collection import Collection
  import pytest
  from result import Err
  from syft.node.credentials import SyftVerifyKey
  from syft.service.action.action_permissions import ActionObjectPermission
  from syft.service.action.action_permissions import ActionPermission
  from syft.service.action.action_store import ActionObjectEXECUTE
  from syft.service.action.action_store import ActionObjectOWNER
  from syft.service.action.action_store import ActionObjectREAD
  from syft.service.action.action_store import ActionObjectWRITE
  from syft.store.document_store import PartitionSettings
  from syft.store.document_store import QueryKey
  from syft.store.document_store import QueryKeys
  from syft.store.mongo_client import MongoStoreClientConfig
  from syft.store.mongo_document_store import MongoStoreConfig
  from syft.store.mongo_document_store import MongoStorePartition
  from .store_constants_test import generate_db_name
  from .store_constants_test import test_verify_key_string_hacker
  from .store_fixtures_test import mongo_store_partition_fn
  from .store_mocks_test import MockObjectType
  from .store_mocks_test import MockSyftObject
label_desc: Use image node_id 20 for calling a global function with example usage: test_mongo_store_partition_permissions_update(root_verify_key, guest_verify_key, mongo_store_partition) without return types