docstr: test that a mapper can have two eager relationships to the same
  table, via two different association tables.  aliases are required.
docstr_tok: ["test","that","a","mapper","can","have","two","eager","relationships","to","the","same","table",",","via","two","different","association","tables",".","aliases","are","required","."]
code: def test_joinedload_on_double(self):
      """test that a mapper can have two eager relationships to the same
      table, via two different association tables.  aliases are required.
      """
  
      (
          place_input,
          transition,
          Transition,
          PlaceThingy,
          place,
          place_thingy,
          Place,
          place_output,
      ) = (
          self.tables.place_input,
          self.tables.transition,
          self.classes.Transition,
          self.classes.PlaceThingy,
          self.tables.place,
          self.tables.place_thingy,
          self.classes.Place,
          self.tables.place_output,
      )
  
      self.mapper_registry.map_imperatively(PlaceThingy, place_thingy)
      self.mapper_registry.map_imperatively(
          Place,
          place,
          properties={
              "thingies": relationship(PlaceThingy, lazy="joined")
          },
      )
  
      self.mapper_registry.map_imperatively(
          Transition,
          transition,
          properties=dict(
              inputs=relationship(Place, place_output, lazy="joined"),
              outputs=relationship(Place, place_input, lazy="joined"),
          ),
      )
  
      tran = Transition("transition1")
      tran.inputs.append(Place("place1"))
      tran.outputs.append(Place("place2"))
      tran.outputs.append(Place("place3"))
      sess = fixture_session()
      sess.add(tran)
      sess.commit()
  
      r = sess.query(Transition).all()
      self.assert_unordered_result(
          r,
          Transition,
          {
              "name": "transition1",
              "inputs": (Place, [{"name": "place1"}]),
              "outputs": (
                  Place,
                  [{"name": "place2"}, {"name": "place3"}],
              ),
          },
      )
  
imports: import sqlalchemy
  from sqlalchemy import ForeignKey
  from sqlalchemy import Integer
  from sqlalchemy import String
  from sqlalchemy import testing
  from sqlalchemy.orm import backref
  from sqlalchemy.orm import exc
  from sqlalchemy.orm import relationship
  from sqlalchemy.testing import assert_raises_message
  from sqlalchemy.testing import eq_
  from sqlalchemy.testing import fixtures
  from sqlalchemy.testing.fixtures import fixture_session
  from sqlalchemy.testing.schema import Column
  from sqlalchemy.testing.schema import Table
label_desc: Use image node_id 6 for calling the M2MTest obj's underlying member method code with example usage: obj.test_joinedload_on_double() without return types