code: def testUnionManyAttributes(self):
      gs = [
          Graph.Formula("A-B"),
          Graph.Formula("A-B,C-D"),
      ]
      gs[0]["attr"] = "graph1"
      gs[0].vs["attr"] = ["set", "set_too"]
      gs[0].vs["attr2"] = ["set", "set_too"]
      gs[1].vs[0]["attr"] = "set"
      gs[1].vs[0]["attr2"] = "conflict"
      g = union(gs)
      names = g.vs["name"]
      self.assertTrue(g["attr"] == "graph1")
      self.assertTrue(g.vs[names.index("A")]["attr"] == "set")
      self.assertTrue(g.vs[names.index("B")]["attr"] == "set_too")
      self.assertTrue(g.ecount() == 2)
      self.assertTrue(
          sorted(g.vertex_attributes())
          == ["attr", "attr2_1", "attr2_2", "name"]
      )
  
imports: import unittest
  from igraph import Graph, disjoint_union, intersection, union
label_desc: Use image node_id 14 for calling the OperatorTests obj's underlying member method code with example usage: obj.testUnionManyAttributes() without return types