code: def test_init_with_id(self):
      self.input_dict["id"] = "test"
      task_entity = Task(self.input_dict)
  
      for k, v in self.input_dict.items():
          assert getattr(task_entity, k) == v
      assert task_entity.before_snapshot_id == None
      assert task_entity.ports == None
      assert task_entity.interactive == False
      assert task_entity.detach == False
      assert task_entity.task_dirpath == None
      assert task_entity.log_filepath == None
      assert task_entity.start_time == None
  
      # Post-Execution
      assert task_entity.after_snapshot_id == None
      assert task_entity.run_id == None
      assert task_entity.logs == None
      assert task_entity.status == None
      assert task_entity.results == None
      assert task_entity.end_time == None
      assert task_entity.duration == None
      assert task_entity.created_at
      assert task_entity.updated_at
  
file_path: datmo/datmo/core/entity/tests/test_task.py
imports: from datmo.core.entity.task import Task
label_desc: Use image node_id 3 for calling the TestTask obj's underlying member method code with example usage: obj.test_init_with_id() without return types