class Root(object):
    """ 
    The main root object for any traversal
    """

    __name__ = None
    __parent__ = None

    def __init__(self, request):
        pass

    def __getitem__(self, key):
        next_ctx = None

        if key == 'user':
            next_ctx = User()

        if key == 'domain':
            next_ctx = Domains()

        if next_ctx is None:
            raise KeyError

        next_ctx.__parent__ = self

        return next_ctx

class User(object):
    __name__ = 'user'
    __parent__ = None

    def __init__(self):
        pass

    def __getitem__(self, key):
        raise KeyError

class Domains(object):
    __name__ = 'domain'
    __parent__ = None

    def __init__(self):
        pass

    def __getitem__(self, key):
        next_ctx = Domain(key)
        next_ctx.__parent__ = self

        return next_ctx

class Domain(object):
    __name__ = None
    __parent__ = None

    def __init__(self, key):
        pass

    def __getitem__(self, key):
        raise KeyError

class Root(object):
    """ 
    The main root object for any traversal
    """

    __name__ = None
    __parent__ = None

    def __init__(self, request):
        pass

    def __getitem__(self, key):
        next_ctx = None

        if key == 'user':
            next_ctx = User()

        if key == 'domain':
            next_ctx = Domains()

        if next_ctx is None:
            raise KeyError

        next_ctx.__parent__ = self

        return next_ctx

class User(object):
    __name__ = 'user'
    __parent__ = None

    def __init__(self):
        pass

    def __getitem__(self, key):
        raise KeyError

class Domains(object):
    __name__ = 'domain'
    __parent__ = None

    def __init__(self):
        pass

    def __getitem__(self, key):
        next_ctx = Domain(key)
        next_ctx.__parent__ = self

        return next_ctx

class Domain(object):
    __name__ = None
    __parent__ = None

    def __init__(self, key):
        self.__name__ = key

    def __getitem__(self, key):
        raise KeyError

Set the __name__ on the traversal object
Set the __name__ on the traversal object

  class Root(object):
      """ 
      The main root object for any traversal
      """
  
      __name__ = None
      __parent__ = None
  
      def __init__(self, request):
          pass
  
      def __getitem__(self, key):
          next_ctx = None
  
          if key == 'user':
              next_ctx = User()
  
          if key == 'domain':
              next_ctx = Domains()
  
          if next_ctx is None:
              raise KeyError
  
          next_ctx.__parent__ = self
  
          return next_ctx
  
  class User(object):
      __name__ = 'user'
      __parent__ = None
  
      def __init__(self):
          pass
  
      def __getitem__(self, key):
          raise KeyError
  
  class Domains(object):
      __name__ = 'domain'
      __parent__ = None
  
      def __init__(self):
          pass
  
      def __getitem__(self, key):
          next_ctx = Domain(key)
          next_ctx.__parent__ = self
  
          return next_ctx
  
  class Domain(object):
      __name__ = None
      __parent__ = None
  
      def __init__(self, key):
-         pass
+         self.__name__ = key
  
      def __getitem__(self, key):
          raise KeyError
  
Set the __name__ on the traversal object
## Code Before:
class Root(object):
    """ 
    The main root object for any traversal
    """

    __name__ = None
    __parent__ = None

    def __init__(self, request):
        pass

    def __getitem__(self, key):
        next_ctx = None

        if key == 'user':
            next_ctx = User()

        if key == 'domain':
            next_ctx = Domains()

        if next_ctx is None:
            raise KeyError

        next_ctx.__parent__ = self

        return next_ctx

class User(object):
    __name__ = 'user'
    __parent__ = None

    def __init__(self):
        pass

    def __getitem__(self, key):
        raise KeyError

class Domains(object):
    __name__ = 'domain'
    __parent__ = None

    def __init__(self):
        pass

    def __getitem__(self, key):
        next_ctx = Domain(key)
        next_ctx.__parent__ = self

        return next_ctx

class Domain(object):
    __name__ = None
    __parent__ = None

    def __init__(self, key):
        pass

    def __getitem__(self, key):
        raise KeyError

## Instruction:
Set the __name__ on the traversal object
## Code After:
class Root(object):
    """ 
    The main root object for any traversal
    """

    __name__ = None
    __parent__ = None

    def __init__(self, request):
        pass

    def __getitem__(self, key):
        next_ctx = None

        if key == 'user':
            next_ctx = User()

        if key == 'domain':
            next_ctx = Domains()

        if next_ctx is None:
            raise KeyError

        next_ctx.__parent__ = self

        return next_ctx

class User(object):
    __name__ = 'user'
    __parent__ = None

    def __init__(self):
        pass

    def __getitem__(self, key):
        raise KeyError

class Domains(object):
    __name__ = 'domain'
    __parent__ = None

    def __init__(self):
        pass

    def __getitem__(self, key):
        next_ctx = Domain(key)
        next_ctx.__parent__ = self

        return next_ctx

class Domain(object):
    __name__ = None
    __parent__ = None

    def __init__(self, key):
        self.__name__ = key

    def __getitem__(self, key):
        raise KeyError
