code: def test_create_task_by_dictionary(self):
      task = self.dal.task.create(Task(self.task_input_dict))
  
      assert task.id
      assert task.command == self.task_input_dict["command"]
      assert isinstance(task.start_time, datetime)
      assert isinstance(task.end_time, datetime)
      assert isinstance(task.duration, float)
      assert isinstance(task.created_at, datetime)
      assert isinstance(task.updated_at, datetime)
  
      # Create a new Task and test if None values work and not same as first
      test_task_input_dict = self.task_input_dict.copy()
      test_task_input_dict["start_time"] = None
      test_task_input_dict["end_time"] = None
      test_task_input_dict["duration"] = None
  
      task_2 = self.dal.task.create(Task(test_task_input_dict))
  
      assert task_2.id != task.id
      assert not task_2.start_time
      assert not task_2.end_time
      assert not task_2.duration
  
      test_task_input_dict_1 = self.task_input_dict.copy()
      test_task_input_dict_1["id"] = "task_id"
      task_3 = self.dal.task.create(Task(test_task_input_dict_1))
  
      assert task_3.id == test_task_input_dict_1["id"]
  
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 3 for calling the TestLocalDAL obj's underlying member method code with example usage: obj.test_create_task_by_dictionary() without return types