code: def test_add_branches(self):
      with self.connection.begin():
          self.updater.update_to_step(_up(None, "a", True))
          self.updater.update_to_step(_up("a", "b"))
          self.updater.update_to_step(_up(None, "c", True))
          self._assert_heads(("b", "c"))
          self.updater.update_to_step(_up("c", "d"))
          self.updater.update_to_step(_up("d", "e1"))
          self.updater.update_to_step(_up("d", "e2", True))
          self._assert_heads(("b", "e1", "e2"))
  
imports: from sqlalchemy import Column
  from sqlalchemy import inspect
  from sqlalchemy import MetaData
  from sqlalchemy import String
  from sqlalchemy import Table
  from alembic import migration
  from alembic.testing import assert_raises
  from alembic.testing import assert_raises_message
  from alembic.testing import config
  from alembic.testing import eq_
  from alembic.testing import mock
  from alembic.testing.fixtures import TestBase
  from alembic.util import CommandError
label_desc: Use image node_id 8 for calling the UpdateRevTest obj's underlying member method code with example usage: obj.test_add_branches() without return types