code: def test_eulerian_path_multigraph(self):
      G = nx.MultiDiGraph()
      result = [(2, 1), (1, 2), (2, 1), (1, 2), (2, 3), (3, 4), (4, 3)]
      G.add_edges_from(result)
      assert result == list(nx.eulerian_path(G))
      assert result == list(nx.eulerian_path(G, source=2))
      with pytest.raises(nx.NetworkXError):
          list(nx.eulerian_path(G, source=3))
      with pytest.raises(nx.NetworkXError):
          list(nx.eulerian_path(G, source=4))
  
imports: import collections
  import pytest
  import networkx
label_desc: Use image node_id 3 for calling the TestEulerianPath obj's underlying member method code with example usage: obj.test_eulerian_path_multigraph() without return types