小编Rac*_*ers的帖子

使用Python的fixture模块生成夹具数据

我是第一次使用夹具模块,试图获得更好的夹具数据,这样我就可以使我们的功能测试更加完整.

我发现夹具模块有点笨重,我希望有更好的方法来做我正在做的事情.这是Python 2.7中的Flask/SQLAlchemy应用程序,我们使用nose作为测试运行器.

所以我有一套员工.员工有角色.有几个页面具有相当复杂的权限,我想确保这些页面经过测试.

我创建了一个具有每种角色类型的DataSet(我们的应用程序中大约有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
Run Code Online (Sandbox Code Playgroud)

我想做的是编写一个功能测试,只检查合适的人可以访问页面.(实际的权限更复杂,我只是想给你一个玩具示例.)

像这样的东西:

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)
Run Code Online (Sandbox Code Playgroud)

有没有办法生成灯具数据,所以我的开发人员不必记得每次添加角色时都要在灯具上添加一行?我们将所有角色的规范列表作为应用程序中其他位置的配置,所以我有.

我没有结合任何这个或夹具模块,所以我很高兴听到建议!

python sqlalchemy nose flask

6
推荐指数
1
解决办法
3111
查看次数

标签 统计

flask ×1

nose ×1

python ×1

sqlalchemy ×1