code: def test_update_task(self):
      task = self.dal.task.create(Task(self.task_input_dict))
  
      # Update required and optional parameters
      updated_task_input_dict = self.task_input_dict.copy()
      updated_task_input_dict["id"] = task.id
      updated_task_input_dict["command"] = "task_new"
      updated_task_input_dict["ports"] = ["9000:9000"]
      updated_task_input_dict["interactive"] = True
      updated_task = self.dal.task.update(updated_task_input_dict)
  
      assert task.id == updated_task.id
      assert task.updated_at < updated_task.updated_at
      assert updated_task.command == updated_task_input_dict["command"]
      assert updated_task.ports == updated_task_input_dict["ports"]
      assert (
          updated_task.interactive
          == updated_task_input_dict["interactive"]
      )
  
imports: from __future__ import division
  from __future__ import print_function
  from __future__ import unicode_literals
  import os
  import tempfile
  import platform
  from datetime import datetime
  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.task import Task
  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_task() without return types