我正在使用fixture来测试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
第一个请求登录用户,第二个请求检查登录后是否可以访问公司个人资料页面。
这样我得到:
AttributeError:类test_company具有 没有属性'company_id'
我也尝试过:
UserData.test_user.company.ref('company_id')
但结果是:
< Ref.RefValue for CompanyData.test_company.company_id(尚未加载)>
这对我来说似乎很奇怪......为什么不加载?
有没有办法找出什么是主键?
答案 0 :(得分:0)
UserData.test_user.company.ref('id')
or
UserData.test_user.ref('company_id')