code: def test_resultset_to_g_multi_node_attributed(self):
      nodes = [
          {
              "type": "vertex",
              "id": "a",
              "label": "b",
              "properties": {"a": "b", "c": "d", "id": "ignoreme"},
          },
          {
              "type": "vertex",
              "id": "b",
              "label": "bb",
              "properties": {"a": "bb", "c": "dd", "label": "ignoreme"},
          },
      ]
      rs = make_resultset(nodes)
      tg = TGFull()
      g = tg.resultset_to_g(rs)
      assert g._nodes.to_dict(orient="records") == [
          {"id": "a", "label": "b", "a": "b", "c": "d"},
          {"id": "b", "label": "bb", "a": "bb", "c": "dd"},
      ]
      assert g._edges.to_dict(orient="records") == []
      assert g._node == "id"
      assert g._source == "src"
      assert g._destination == "dst"
  
imports: from typing import Iterable
  import os, numpy, pandas, pyarrow, pytest, queue
  from common import NoAuthTestCase
  from concurrent.futures import Future
  from mock import patch
  from gremlin_python.driver.resultset import ResultSet
  from gremlin_python.structure.graph import Vertex, Edge, Path
  from graphistry.gremlin import CosmosMixin, GremlinMixin, DROP_QUERY, nodes_to_queries, edges_to_queries
  from graphistry.plotter import PlotterBase
label_desc: Use image node_id 11 for calling the TestGremlinMixin obj's underlying member method code with example usage: obj.test_resultset_to_g_multi_node_attributed() without return types