7

フィクスチャを使用してPylonsアプリをテストしていますが、問題が発生しました。

私がそのようなデータセットを持っているとしましょう:

class CompanyData(DataSet):

    class test_company:
        company_full_name = u'Firma Tęst'
        company_short_name = u'TęstCo'

class UserData(DataSet):

    class test_user:
        user_login = 'testuser'
        user_password = 'test'
        company = CompanyData.test_company

問題は、このデータを機能テスト(http://farmdev.com/projects/fixture/using-fixture-with-pylons.htmlで説明されているように)で使用すると、IDを取得できないことです。会社の(主キー)。

私のアプリケーションでは、ログイン後のユーザーは会社のプロファイルページにリダイレクトされる必要があるため、会社のIDが必要です。テストは多かれ少なかれ次のようになります。

self.app.post(url(controller='main', action='login'), params={
    'login': UserData.test_user.user_login,
    'password': UserData.test_user.user_password
})

response = self.app.get(url(
    controller='events', action='index',
    company_id=UserData.test_user.company.company_id, # This doesn't work
    view='active'))
assert ... in response

最初のリクエストはユーザーにログインし、2番目のリクエストはログイン後に会社のプロフィールページにアクセスできるかどうかを確認します。

このように私は得る:

AttributeError:クラスtest_companyには属性'company_id'がありません

私も試しました:

UserData.test_user.company.ref('company_id')

しかし、結果は次のようになります。

<CompanyData.test_company.company_idのRef.RefValue(まだロードされていません)>

それは私には奇妙に思えます...なぜそれがロードされないのですか?

主キーが何であるかを知る方法はありますか?

4

1 に答える 1

0
UserData.test_user.company.ref('id')
or
UserData.test_user.ref('company_id')
于 2011-01-21T14:55:23.800 に答える