code: def test_list_datasets(
      self,
      cli_runner: "CliRunner",
      cli: "Typer",
      mocker: "MockerFixture",
      remote_feedback_dataset: "RemoteFeedbackDataset",
      dataset: "Dataset",
  ) -> None:
      add_row_spy = mocker.spy(Table, "add_row")
      list_datasets_mock = mocker.patch(
          "argilla.client.api.list_datasets",
          return_value=[remote_feedback_dataset, dataset],
      )
  
      result = cli_runner.invoke(cli, "datasets list")
  
      assert result.exit_code == 0
      list_datasets_mock.assert_called_once_with(None, None)
      add_row_spy.assert_has_calls(
          [
              call(
                  ANY,
                  str(remote_feedback_dataset.id),
                  remote_feedback_dataset.name,
                  remote_feedback_dataset.workspace.name,
                  "Feedback",
                  None,
                  remote_feedback_dataset.created_at.isoformat(sep=" "),
                  remote_feedback_dataset.updated_at.isoformat(sep=" "),
              ),
              call(
                  ANY,
                  str(dataset.id),
                  dataset.name,
                  "unit-test",
                  "TextClassification",
                  ANY,
                  dataset.created_at.isoformat(sep=" "),
                  dataset.last_updated.isoformat(sep=" "),
              ),
          ]
      )
  
file_path: argilla/tests/unit/cli/datasets/test_list.py
imports: from typing import TYPE_CHECKING
  from unittest.mock import ANY, call
  import pytest
  from argilla.client.enums import DatasetType
  from rich.table import Table
label_desc: Use image node_id 1 for calling the TestSuiteListDatasetsCommand obj's underlying member method code with example usage: obj.test_list_datasets(cli_runner, cli, mocker, remote_feedback_dataset, dataset) without return types