code: def test_multigraph_keys(self):
      # Test that reading multigraphs uses edge id attributes as keys
      s = """<?xml version="1.0" encoding="UTF-8"?>
  <graphml xmlns="http://graphml.graphdrawing.org/xmlns"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
           http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
    <graph id="G" edgedefault="directed">
      <node id="n0"/>
      <node id="n1"/>
      <edge id="e0" source="n0" target="n1"/>
      <edge id="e1" source="n0" target="n1"/>
    </graph>
  </graphml>
  """
      fh = io.BytesIO(s.encode("UTF-8"))
      G = nx.read_graphml(fh)
      expected = [("n0", "n1", "e0"), ("n0", "n1", "e1")]
      assert sorted(G.edges(keys=True)) == expected
      fh.seek(0)
      H = nx.parse_graphml(s)
      assert sorted(H.edges(keys=True)) == expected
  
imports: import io
  import pytest
  import networkx
  from networkx.readwrite.graphml import GraphMLWriter
  from networkx.utils import edges_equal, nodes_equal
label_desc: Use image node_id 12 for calling the TestReadGraphML obj's underlying member method code with example usage: obj.test_multigraph_keys() without return types