code: def testEdgeAttributes(self):
      g = Graph.Full(5)
      g.es[0]["name"] = "first"
      self.assertTrue(g.es[0]["name"] == "first")
      del g.es["name"]
      self.assertRaises(KeyError, g.es.__getitem__, "name")
  
      g.es[0]["name"] = "second"
      g.es[0]["date"] = "2007-12-17"
      ans = g.es[0].attribute_names()
      ans.sort()
      self.assertTrue(ans == ["date", "name"])
      attrs = g.es[0].attributes()
      self.assertTrue(attrs == {"name": "second", "date": "2007-12-17"})
  
imports: import unittest
  from igraph import Graph
label_desc: Use image node_id 3 for calling the AttributeTests obj's underlying member method code with example usage: obj.testEdgeAttributes() without return types