# sqlobject.inheritance.tests.test_deep_inheritance module

class `sqlobject.inheritance.tests.test_deep_inheritance.``DIEmployee`(**kw)

  Bases: `sqlobject.inheritance.tests.test_deep_inheritance.DIPerson`

  classmethod `bySo_position`(val, connection=None)
  `childName`
  `firstName`
  `j` = di_employee
  `lastName`
  `manager`
  `q` = di_employee
  `so_position`
  class `sqlmeta`(instance)

    Bases: `sqlobject.declarative.sqlmeta`

    `childClasses` = {'DIManager': <class 'sqlobject.inheritance.tests.test_deep_inheritance.DIManager'>}
    `childName` = 'DIEmployee'
    `columnDefinitions` = {'childName': <StringCol b4a5ea8cL childName>, 'so_position': <StringCol b472b1ecL so_position>}
    `columnList` = [<SOStringCol so_position>, <SOStringCol childName default=None>]
    `columns` = {'childName': <SOStringCol childName default=None>, 'so_position': <SOStringCol so_position>}
    `indexDefinitions` = []
    `indexes` = []
    `joinDefinitions` = []
    `joins` = []
    `parentClass`

      alias of `DIPerson`

    `soClass`

      alias of `DIEmployee`

    `table` = 'di_employee'

class `sqlobject.inheritance.tests.test_deep_inheritance.``DIManager`(**kw)

  Bases: `sqlobject.inheritance.tests.test_deep_inheritance.DIEmployee`

  `childName`
  `j` = di_manager
  `q` = di_manager
  `so_position`
  class `sqlmeta`(instance)

    Bases: `sqlobject.declarative.sqlmeta`

    `childClasses` = {}
    `childName` = 'DIManager'
    `columnDefinitions` = {'childName': <StringCol b4706bccL childName>}
    `columnList` = [<SOStringCol childName default=None>]
    `columns` = {'childName': <SOStringCol childName default=None>}
    `indexDefinitions` = []
    `indexes` = []
    `joinDefinitions` = [<sqlobject.joins.MultipleJoin object>]
    `joins` = [<sqlobject.joins.SOMultipleJoin object>]
    `parentClass`

      alias of `DIEmployee`

    `soClass`

      alias of `DIManager`

    `table` = 'di_manager'
  `DIManager.``subdudes`

class `sqlobject.inheritance.tests.test_deep_inheritance.``DIPerson`(**kw)

  Bases: `sqlobject.inheritance.InheritableSQLObject`

  classmethod `byLastName`(val, connection=None)
  `childName`
  `firstName`
  `j` = di_person
  `lastName`
  `manager`
  `managerID`
  `q` = di_person
  class `sqlmeta`(instance)

    Bases: `sqlobject.inheritance.InheritableSQLMeta`

    `childClasses` = {'DIEmployee': <class 'sqlobject.inheritance.tests.test_deep_inheritance.DIEmployee'>}
    `childName` = None
    `columnDefinitions` = {'lastName': <StringCol b4d1c16cL lastName>, 'childName': <StringCol b48a5a4cL childName>, 'firstName': <StringCol b47012ccL firstName>, 'managerID': <ForeignKey b516cf8cL manager>}
    `columnList` = [<SOStringCol firstName>, <SOStringCol lastName alternate ID>, <SOForeignKey managerID default=None connected to DIManager>, <SOStringCol childName default=None>]
    `columns` = {'lastName': <SOStringCol lastName alternate ID>, 'childName': <SOStringCol childName default=None>, 'firstName': <SOStringCol firstName>, 'managerID': <SOForeignKey managerID default=None connected to DIManager>}
    `indexDefinitions` = []
    `indexes` = []
    `joinDefinitions` = []
    `joins` = []
    `parentClass` = None
    `soClass`

      alias of `DIPerson`

    `table` = 'di_person'

`sqlobject.inheritance.tests.test_deep_inheritance.``test_creation_fail`()

  Try to create a Manager without specifying a position. This should fail without leaving any partial records in the database.

`sqlobject.inheritance.tests.test_deep_inheritance.``test_creation_fail2`()

  Try to create two Managers with the same position. This should fail without leaving any partial records in the database.

`sqlobject.inheritance.tests.test_deep_inheritance.``test_deep_inheritance`()