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)
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)}
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) }
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)
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
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
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)