code: def test_graph_attributes(self):
      G = nx.path_graph(4)
      G.add_node(1, color="red")
      G.add_edge(1, 2, width=7)
      G.graph[1] = "one"
      G.graph["foo"] = "bar"
  
      H = node_link_graph(node_link_data(G))
      assert H.graph["foo"] == "bar"
      assert H.nodes[1]["color"] == "red"
      assert H[1][2]["width"] == 7
  
      d = json.dumps(node_link_data(G))
      H = node_link_graph(json.loads(d))
      assert H.graph["foo"] == "bar"
      assert H.graph["1"] == "one"
      assert H.nodes[1]["color"] == "red"
      assert H[1][2]["width"] == 7
  
file_path: networkx/networkx/readwrite/json_graph/tests/test_node_link.py
imports: import json
  import pytest
  import networkx
  from networkx.readwrite.json_graph import node_link_data, node_link_graph
label_desc: Use image node_id 4 for calling the TestNodeLink obj's underlying member method code with example usage: obj.test_graph_attributes() without return types