2012-11-20 39 views
4

我正在第一次使用夾具模塊,試圖獲得一組更好的夾具數據,以便使我們的功能測試更加完整。用Python的夾具模塊生成夾具數據

我在找夾具模塊有點笨重,我希望有更好的方法來做我正在做的事情。這是一個Python 2.7中的Flask/SQLAlchemy應用程序,我們使用nose作爲測試運行器。

所以我有一套員工。員工有角色。有幾頁的權限相當複雜,我想確保這些頁面已經過測試。

我創造出了每種類型的角色的數據集(有一個在我們的應用程序大約15角色):

class EmployeeData(DataSet): 

    class Meta: 
    storable = Employee 

    class engineer: 
    username = "engineer" 
    role = ROLE_ENGINEER 

    class manager: 
    username = "manager" 
    role = ROLE_MANAGER 

    class admin: 
    username = "admin" 
    role = ROLE_ADMIN 

什麼,我想要做的是寫一個功能測試,檢查只有合適的人可以訪問一個頁面。 (實際權限的方式比較複雜,我就是想要一個玩具例子給你看。)

事情是這樣的:

def test_only_admin_can_see_this_page(): 

    for employee in Employee.query.all(): 
    login(employee) 

    with self.app.test_request_context('/'): 
    response = self.test_client.get(ADMIN_PAGE) 
    if employee.role == ROLE_ADMIN 
     eq_(200, response.status_code) 
    else: 
     eq_(401, response.status_code) 

    logout(employee) 

有沒有辦法讓我的開發者不會產生夾具​​數據每次添加角色時都必須記得在燈具中添加一條線?我們將所有角色的規範列表作爲應用程序中其他位置的配置,因此我擁有該配置。

我並不喜歡這個或夾具模塊,所以我很樂意聽到建議!

+0

你有沒有想出一個好方法呢? – Eli

回答