コード例 #1
0
  def testFunctionCalledTwice(self):
    """Tests that the same entity is returned if the function is called once."""
    first_settings = settings_logic.getUserSettings(self.user_key)
    other_settings = settings_logic.getUserSettings(self.user_key)

    # check that the same entity is returned
    self.assertEqual(first_settings.key, other_settings.key)

    # check that only one entity exists
    count = settings_model.UserSettings.query(ancestor=self.user_key).count()
    self.assertEqual(count, 1)
コード例 #2
0
ファイル: settings.py プロジェクト: rhyolight/nupic.son
  def context(self, data, check, mutator):
    """See base.RequestHandler.context for specification."""
    user_settings = settings_logic.getUserSettings(data.url_ndb_user.key)

    initial = {}
    if user_settings.view_as is not None:
      initial['view_as'] = user_settings.view_as.id()

    return {'form': UserSettingsForm(data=data.POST or None, initial=initial)}
コード例 #3
0
ファイル: settings.py プロジェクト: rhyolight/nupic.son
    def context(self, data, check, mutator):
        """See base.RequestHandler.context for specification."""
        user_settings = settings_logic.getUserSettings(data.url_ndb_user.key)

        initial = {}
        if user_settings.view_as is not None:
            initial['view_as'] = user_settings.view_as.id()

        return {
            'form': UserSettingsForm(data=data.POST or None, initial=initial)
        }
コード例 #4
0
  def testForExistingSettings(self):
    """Tests that existing settings are returned if entity exists."""
    # seed user settings
    properties = {'view_as': ndb.Key('User', 'test_user')}
    user_settings = settings_model.UserSettings(
        parent=self.user_key, **properties).put()

    retrived_settings = settings_logic.getUserSettings(self.user_key)

    # check that the same entity is returned
    self.assertEqual(user_settings, retrived_settings.key)
コード例 #5
0
ファイル: request_data.py プロジェクト: rhyolight/nupic.son
  def ndb_user(self):
    """Returns the ndb_user field."""
    if not self._isSet(self._ndb_user):
      self._ndb_user = ndb_user_logic.getByCurrentAccount()
      # TODO(daniel): add support for "Logged in as" feature

      # developer may view the page as another user
      if self._ndb_user and users.is_current_user_admin():
        settings = settings_logic.getUserSettings(self._ndb_user.key)
        if settings.view_as is not None:
          user = settings.view_as.get()
          if user:
            self._ndb_user = user
          else:
            user_settings_url = links.LINKER.user(
                self._ndb_user, urls.UrlNames.USER_SETTINGS)
            raise exception.BadRequest(
                message=VIEW_AS_USER_DOES_NOT_EXIST % user_settings_url)
    return self._ndb_user
コード例 #6
0
ファイル: request_data.py プロジェクト: rhyolight/nupic.son
  def user(self):
    """Returns the user field."""
    if not self._isSet(self._user):
      self._user = user_logic.current()

      # developer may view the page as another user
      if self._user and user_logic.isDeveloper(user=self._user):
        settings = settings_logic.getUserSettings(
            ndb.Key.from_old_key(self._user.key()))
        if settings.view_as is not None:
          user = user_model.User.get(settings.view_as.to_old_key())
          if user:
            self._user = user
          else:
            # TODO(daniel): use main LINKER object when merged
            linker = links.Linker()
            user_settings_url = linker.user(
                self._user, urls.UrlNames.USER_SETTINGS)
            raise exception.BadRequest(
                message=VIEW_AS_USER_DOES_NOT_EXIST % user_settings_url)

    return self._user
コード例 #7
0
  def testForNonExistingSettings(self):
    """Tests that new entity is created and returned if there is not one."""
    user_settings = settings_logic.getUserSettings(self.user_key)

    # check that settings are created and returned
    self.assertIsNotNone(user_settings)