code: def test_update_snapshot(self):
      snapshot = self.dal.snapshot.create(
          Snapshot(self.snapshot_input_dict)
      )
  
      # Update required and optional parameters
      updated_snapshot_input_dict = self.snapshot_input_dict.copy()
      updated_snapshot_input_dict["id"] = snapshot.id
      updated_snapshot_input_dict["message"] = "this is really cool"
      updated_snapshot_input_dict["label"] = "new"
      updated_snapshot = self.dal.snapshot.update(
          updated_snapshot_input_dict
      )
  
      assert snapshot.id == updated_snapshot.id
      assert snapshot.updated_at < updated_snapshot.updated_at
      assert (
          updated_snapshot.message
          == updated_snapshot_input_dict["message"]
      )
      assert (
          updated_snapshot.label == updated_snapshot_input_dict["label"]
      )
  
imports: from __future__ import division
  from __future__ import print_function
  from __future__ import unicode_literals
  import os
  import tempfile
  import platform
  from datmo.core.storage.driver.blitzdb_dal_driver import BlitzDBDALDriver
  from datmo.core.storage.local.dal import LocalDAL
  from datmo.core.entity.model import Model
  from datmo.core.entity.snapshot import Snapshot
  from datmo.core.util.exceptions import EntityNotFound, InvalidArgumentType
label_desc: Use image node_id 7 for calling the TestLocalDAL obj's underlying member method code with example usage: obj.test_update_snapshot() without return types