Google App Engine: имитация веб-теста вошедшего в систему пользователя и администратора - PullRequest
4 голосов
/ 27 августа 2010

из документации по веб-тестированию я узнаю, что:

Лучший способ симулировать аутентификацию - это если ваше приложение смотрит в среду ['REMOTE_USER'], чтобы узнать, аутентифицирован ли кто-то.Затем вы можете просто установить это значение, например:

app.get('/secret', extra_environ=dict(REMOTE_USER='bob'))

Я пытаюсь сделать то же самое, но в среде движка Google App.Я хотел бы смоделировать вошедшего в систему пользователя и пользователя, который является администратором.

Если возможно, какие значения словаря мне нужно установить в extra_environ для достижения этой цели?

1 Ответ

6 голосов
/ 28 августа 2010

Установить пользователя:

os.environ['USER_EMAIL'] = 'info@example.com'

Установить администратора:

os.environ['USER_IS_ADMIN'] = '1'

Так выглядит весь мой тест.В моем примере используются веб-тесты, нос, носа и гестест.

class TestingRoutes(WebTestCase, unittest.TestCase):

    APPLICATION = application()

    def tearDown(self):
        os.environ['USER_EMAIL'] = ''
        os.environ['USER_IS_ADMIN'] = ''

    #AdminIndex .....
    def test_adminindex_no_user(self):
        #No user: redirect to login form
        response = app.get( url_map['adminindex'] )
        self.assertRedirects(response)

    def test_adminindex_user(self):      
        os.environ['USER_EMAIL'] = 'info@example.com'
        response = app.get( url_map['adminindex'] )
        self.assertForbidden(response)

    def test_adminindex_admin(self):
        os.environ['USER_EMAIL'] = 'info@example.com'
        os.environ['USER_IS_ADMIN'] = '1'
        response = app.get( url_map['adminindex'] )
        self.assertOK(response)

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...