Нос / Носега: проблемы с импортом - PullRequest
3 голосов
/ 27 августа 2010

У меня есть эта проблема, и это сводит меня с ума!

Итак, я разрабатываю свое первое настоящее приложение Google App Engine, и мне всегда нравится находить что-то новое во время написания тестов.

Итак, у меня есть следующие настройки:
У меня есть virtualenv с носом, носом, веб-тестом и гестестом. Это называется porksvr.

Я активирую свой virtualenv так:

source porksvr/bin/activate

Для запуска носа я использую следующую команду:

nosetests --with-gae --gae-lib-root /home/fs/gae

Это дает мне следующую ошибку

DEBUG: Access to module file denied: 
/home/fs/work/gaecode/porksvr/lib/python2.6/site-packages/webtest

Итак, сначала я подумал: «Хорошо, нос запускает приложение в« контексте »dev_appserver, поэтому он не знает о веб-тестировании».

Но чтобы быть уверенным, я создал новый каталог и добавил небольшое приложение GAE. Это всего 3 файла:
-main.py
-app.yaml
-test_huh.py (импортирует модуль веб-теста.)

Что меня смущает, так это то, что это работает. Я запускаю cmds тестов носа, и он фактически проходит мои тесты.

Итак, я начал копаться в своем приложении, чтобы выяснить, что может отличаться, но я действительно ударил стену.

Сначала я подумал, что это может быть проблема с разрешениями, так как ошибка говорит: «доступ ... запрещен», но я не смог найти ничего особенного. Затем я подумал, может быть, это потому, что я создал свое приложение до virtualenv, но я не мог понять, как это может быть проблемой.

Так что, если кто-нибудь знает, почему это происходит, я был бы очень благодарен.

Ответы [ 2 ]

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

Nose-GAE имеет некоторые задокументированные проблемы, когда вы используете virtualenv .

. Вы можете попробовать использовать флаг --without-sandbox для носа.

2 голосов
/ 27 августа 2010

Отлично, так что после нескольких часов попыток я на самом деле просто решил свою проблему сразу после того, как задал этот вопрос.

Что было исправлено для создания virtualenv с помощью следующего переключателя --no-site-packages.Очевидно у меня была копия webtest в Python моей системы, которая как-то создавала проблемы с моим virtualenv.Я должен был заметить это, когда попытался установить pip install webtest в моем virtualenv, и он сказал, что он уже существует.

Все еще не уверен на 100%, почему некоторые приложения работают, а другие нет.

...