thanks guys.
I do:
os.environ['USER_EMAIL'] = "[email protected]"
user = users.get_current_user()
and even user.nickname returns right string.
BUT, when i want to create connected data in model it does not work.
Creating model:
..
player = Player(user=users.get_current_user(), ...) # <<- wrong right
here
player.put()
..
it returns:
<pre>Traceback (most recent call last):
File "/base/python_lib/versions/1/google/appengine/ext/webapp/
__init__.py", line 501, in
__call__
handler.get(*groups)
File "/base/data/home/apps/gpsball/1.332716226397017546/
helloworld.py", line 272, in get
player = game.Player()
File "/base/data/home/apps/gpsball/1.332716226397017546/
helloworld.py", line 23, in Play
er
player = Player(user=users.get_current_user(), ... )
File "/base/python_lib/versions/1/google/appengine/ext/db/
__init__.py", line 596, in __i
nit__
prop.__set__(self, value)
File "/base/python_lib/versions/1/google/appengine/ext/db/
__init__.py", line 396, in __s
et__
value = self.validate(value)
File "/base/python_lib/versions/1/google/appengine/ext/db/
__init__.py", line 2305, in va
lidate
value = super(UserProperty, self).validate(value)
File "/base/python_lib/versions/1/google/appengine/ext/db/
__init__.py", line 423, in val
idate
raise BadValueError('Property %s is required' % self.name)
BadValueError: Property user is required
</pre>
What's wrong? is this way logining not fully?
On Apr 10, 2:56 pm, Alkis Evlogimenos ('Αλκης Ευλογημένος)
<[email protected]> wrote:
> I switched to using this decorator for my test methods using webtest:
> from nose.tools import make_decorator
>
> def credentials(user=False, admin=False):
> def _decorator(func):
> def _wrapper(*args, **kwds):
> old_user = os.environ.get('USER_EMAIL', '')
> old_admin = os.environ.get('USER_IS_ADMIN', '0')
>
> if user or admin:
> os.environ['USER_EMAIL'] = '[email protected]'
> else:
> os.environ['USER_EMAIL'] = ''
>
> if admin:
> os.environ['USER_IS_ADMIN'] = '1'
> else:
> os.environ['USER_IS_ADMIN'] = '0'
>
> try:
> func(*args, **kwds)
> finally:
> os.environ['USER_EMAIL'] = old_user
> os.environ['USER_IS_ADMIN'] = old_admin
>
> _wrapper = make_decorator(func)(_wrapper)
> return _wrapper
> return _decorator
>
> Usage is:
>
> class MyTest(unittest.TestCase):
> def setUp(self):
> self.app = ... make your app here using webtest or any other webtesting
> framework
>
> @credentials
> def testIndexPublic(self):
> response = self.app.get('/')
> self.assertTrue('some string only found when noone has logged in' in
> response)
>
> @credentials(user=True)
> def testIndexUser(self):
> response = self.app.get('/')
> self.assertTrue('some string only found in user logged in rendering' in
> response)
>
> @credentials(admin=True)
> def testIndexAdmin(self):
> response = self.app.get('/')
> self.assertTrue('some string only found in admin rendering' in response)
>
> I hope this helps.
>
>
>
> On Fri, Apr 10, 2009 at 12:30 PM, slatvick <[email protected]> wrote:
>
> > Mahmoud:
> > Thanks, but this method does not do loging as the standard login form
> > does.
> > I already have data connected to "[email protected]"-user in my model
> > and this:
> > os.environ['USER_EMAIL'] ="[email protected]"
> > does not logins properly, but redirects to the login-form.
>
> > Alkis Evlogimenos:
> > Sorry, but where is "env" contains? Because i have "global name 'env'
> > is not defined" and cannot find in docs.
> > thanks in advance.
>
> --
>
> Alkis
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google App Engine" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/google-appengine?hl=en
-~----------~----~----~----~------~----~------~--~---