def test_user_assign_role_remove_successful(admin_token, execute_sql): """ 删除用户的角色成功 :param admin_token: :param execute_sql: :return: """ sql1 = """ DELETE FROM user_role where user_id=5; """ sql2 = """ INSERT INTO user_role VALUES (5, 3); """ sql3 = """ INSERT INTO user_role VALUES (5, 2); """ execute_sql(sql1) execute_sql(sql2) execute_sql(sql3) data = {"action": "remove", "role_ids": [1, 2]} result = http_post(user_assign_role_url.format(user_id=5), data=data, token=admin_token) assert result.json()['code'] == 0 assert result.json()['msg'] == "ok" assert len(result.json()["data"]["assigned_roles"]) == 1 assert result.json()["data"]["assigned_roles"][0]["id"] == 3 assert 1 in [x["id"] for x in result.json()["data"]["available_roles"]]
def test_update_device_successful(admin_token): """ 更新设备成功 :param admin_token: :return: """ data = { "type": "phone", "brand": "小米", "model": "小米9 4800万超广角三摄 8GB+256GB update", "os": "android", "os_version": "9.0", "resolution": "2340*1080", "asset_no": "20150731-5555", "root": "yes", "location": "北京", "owner": { "id": 2, "realname": "test1" }, "current_user": { "id": 2, "realname": "test1" }, "desc": "京东链接:https://item.jd.com/100002757767.html" } result = http_post(update_device_url.format(device_id=4), data=data, token=admin_token) assert result.json()['code'] == 0 assert result.json()['data']['model'] == "小米9 4800万超广角三摄 8GB+256GB update"
def test_assign_permission_remove_successful(admin_token, empty_role_permission, execute_sql): """ 删除角色权限成功 :param admin_token: :param empty_role_permission: :param execute_sql: :return: """ empty_role_permission(3) sql2 = """ INSERT INTO role_permission VALUES (3, 1); """ sql3 = """ INSERT INTO role_permission VALUES (3, 4); """ execute_sql(sql2) execute_sql(sql3) data = {"action": "remove", "permission_ids": [1, 5]} result = http_post(assign_permission_url.format(role_id=3), data=data, token=admin_token) assert result.json()['code'] == 0 assert result.json()['msg'] == "ok" assert len(result.json()["data"]["assigned_permissions"]) == 1 assert result.json()["data"]["assigned_permissions"][0]["id"] == 4 assert 1 in [ x["id"] for x in result.json()["data"]["available_permissions"] ]
def test_modify_apply_device_successful(admin_token, empty_device_apply_record, execute_sql): """ 修改设备申请成功 :param admin_token: :param empty_device_apply_record: :param execute_sql: :return: """ empty_device_apply_record(1, 1) sql = """ INSERT INTO device_apply_record VALUES (5, 1, 1, '2019-10-15 09:28:55', '2019-10-30 00:55:55', '测试需要', 3, NULL, NULL, NULL, NULL, 0, 0, '2019-10-15 16:16:48.399755', '2019-10-15 16:16:48.399755'); """ execute_sql(sql) data = { "apply_id": 5, "start_time": "2019-10-15 00:00:00", "end_time": "2019-10-30 23:59:59", "application_desc": "修改申请" } result = http_post(apply_url.format(device_id=1), data=data, token=admin_token) assert result.json()['code'] == 0 assert result.json()['msg'] == "ok"
def test_assign_permission_add_successful(admin_token, empty_role, execute_sql): """ 添加角色权限成功 :param admin_token: :param empty_role: :param execute_sql: :return: """ empty_role(3) sql1 = """ INSERT INTO role VALUES (3, '角色3', '描述3', '2019-10-18 17:45:21', '2019-10-18 17:45:21'); """ sql2 = """ INSERT INTO role_permission VALUES (3, 1); """ execute_sql(sql1) execute_sql(sql2) data = {"action": "add", "permission_ids": [2, 5]} result = http_post(assign_permission_url.format(role_id=3), data=data, token=admin_token) assert result.json()['code'] == 0 assert result.json()['msg'] == "ok" assert len(result.json()["data"]["assigned_permissions"]) == 3 assert result.json()["data"]["assigned_permissions"][0]["id"] == 1 assert result.json()["data"]["assigned_permissions"][1]["id"] == 2 assert result.json()["data"]["assigned_permissions"][2]["id"] == 5 assert 2 not in [ x["id"] for x in result.json()["data"]["available_permissions"] ] assert 5 not in [ x["id"] for x in result.json()["data"]["available_permissions"] ]
def test_apply_device_failed_duplicate_apply(admin_token, empty_device_apply_record): """ 申请设备失败,重复申请 :param admin_token: :param empty_device_apply_record: :return: """ empty_device_apply_record(1) data = { "start_time": "2019-10-15 09:28:55", "end_time": "2019-10-30 00:55:55", "application_desc": "测试需要" } http_post(apply_url.format(device_id=1), data=data, token=admin_token) result = http_post(apply_url.format(device_id=1), data=data, token=admin_token) assert result.json()['code'] == 3005 assert result.json()['msg'] == "重复申请"
def test_update_user_failed(admin_token, user_id, username, realname, email): """ 更新用户信息失败 :param admin_token: :return: """ data = {"username": username, "realname": realname, "email": email} result = http_post(update_user_url.format(user_id=user_id), data=data, token=admin_token) assert result.json()['code'] == 2005 assert result.json()['msg'] == "更新用户资料失败"
def test_login_successful(add_test_user): """ 成功登录 :param add_test_user: :return: """ data = {"username": "******", "password": "******"} result = http_post(login_url, data) assert result.json()['code'] == 0 assert result.json()['data']['username'] == 'username_test' assert result.json()['data']['access_token']
def test_login_failed_not_correct(add_test_user, username, password): """ 用户名或密码不正确,登录失败 :param add_test_user: :param username: :param password: :return: """ data = {"username": username, "password": password} result = http_post(login_url, data) assert result.json()['code'] == 2003 assert result.json()['msg'] == "用户名或密码无效"
def test_register_failed_exist_user(add_test_user): """ 用户名已存在,注册失败 :param add_test_user: :return: """ data = {"username": "******", "realname": "realname_test", "email": "*****@*****.**", "password": "******", "repeat_password": "******"} result = http_post(register_url, data) assert result.json()["code"] == 2000 assert result.json()["msg"] == "用户已存在"
def test_register_successful(delete_test_user): """ 成功注册 :param delete_test_user: :return: """ data = {"username": "******", "realname": "realname_test", "email": "*****@*****.**", "password": "******", "repeat_password": "******"} result = http_post(register_url, data) assert result.json()["code"] == 0 assert result.json()["data"]["username"] == "username_test"
def test1_token(): session = get_db_session() user = session.query(User).filter_by(username='******').first() if not user: user = User(id=2, username='******', realname="test1", email="*****@*****.**", password="******", status=1) session.add(user) session.commit() data = {"username": "******", "password": "******"} return http_post(HOST + "auth/login", data).json()['data']['access_token']
def test_update_password_successful(test1_token): """ 修改密码成功 :param test1_token: :return: """ data = { "old_password": "******", "new_password": "******", "repeat_password": "******" } result = http_post(update_password_url.format(user_id=2), data=data, token=test1_token) assert result.json()['code'] == 0
def test_update_role_failed(admin_token, empty_role, execute_sql): """ 更新角色失败,不存在的角色 :param admin_token: :param empty_role: :param execute_sql: :return: """ empty_role(997) data = {"name": "角色997", "desc": "描述998"} result = http_post(update_role_url.format(role_id=997), data=data, token=admin_token) assert result.json()['code'] == 4002 assert result.json()['msg'] == "角色不存在"
def test_add_role_successful(admin_token, execute_sql): """ 添加角色成功 :param admin_token: :param execute_sql: :return: """ sql = """ DELETE FROM role WHERE name="角色add"; """ execute_sql(sql) data = {"name": "角色add", "desc": "描述add"} result = http_post(add_role_url, data=data, token=admin_token) assert result.json()['code'] == 0 assert result.json()['msg'] == "ok"
def test_apply_device_failed_not_available(admin_token): """ 申请设备失败,设备不可用 :param admin_token: :return: """ data = { "start_time": "2019-10-15 09:28:55", "end_time": "2019-10-30 00:55:55", "application_desc": "测试需要" } result = http_post(apply_url.format(device_id=9999), data=data, token=admin_token) assert result.json()['code'] == 3004 assert result.json()['msg'] == "设备不可用"
def test_update_password_failed(admin_token): """ 修改密码失败,原密码校验不通过 :param admin_token: :return: """ data = { "old_password": "******", "new_password": "******", "repeat_password": "******" } result = http_post(update_password_url.format(user_id=1), data=data, token=admin_token) assert result.json()['code'] == 2006 assert result.json()['msg'] == "密码不一致"
def test_update_password_failed_repeat_password(admin_token): """ 修改密码失败,新密码输入不一致 :param admin_token: :return: """ data = { "old_password": "******", "new_password": "******", "repeat_password": "******" } result = http_post(update_password_url.format(user_id=1), data=data, token=admin_token) assert result.json()['code'] == 1000 assert result.json()['data']['_schema'] == ['password must be equivalent']
def test_login_failed_disable_user(add_test_user): """ 已被禁用的用户无法登录 :param add_test_user: :return: """ session = get_db_session() user = session.query(User).filter_by(username='******').first() user.status = 0 session.add(user) session.commit() data = {"username": "******", "password": "******"} result = http_post(login_url, data) assert result.json()['code'] == 2002 assert result.json()['msg'] == "用户已被禁用"
def test_update_user_successful(admin_token): """ 更新用户信息成功 :param admin_token: :return: """ data = { "username": "******", "realname": "new_admin", "email": "*****@*****.**" } result = http_post(update_user_url.format(user_id=1), data=data, token=admin_token) assert result.json()['code'] == 0 assert result.json()['data']['realname'] == "new_admin" assert result.json()['data']['email'] == "*****@*****.**"
def test_register_failed_error_parameter(username, realname, email, password, repeat_password): """ 使用错误参数注册失败 :param username: :param realname: :param email: :param password: :param repeat_password: :return: """ data = {"username": username, "realname": realname, "email": email, "password": password, "repeat_password": repeat_password} result = http_post(register_url, data) assert result.json()['code'] == 1000 assert result.json()['msg'] == "参数错误"
def test_apply_device_successful(admin_token, empty_device_apply_record): """ 申请设备成功 :param admin_token: :param empty_device_apply_record: :return: """ empty_device_apply_record(1) data = { "start_time": "2019-10-15 09:28:55", "end_time": "2019-10-30 00:55:55", "application_desc": "测试需要" } result = http_post(apply_url.format(device_id=1), data=data, token=admin_token) assert result.json()['code'] == 0 assert result.json()['msg'] == "ok"
def test_owner_approval_apply_failed(test1_token, empty_device_apply_record, execute_sql): """ owner审批失败,不能审批其他owner的 :param test1_token: :param empty_device_apply_record: :param execute_sql: :return: """ empty_device_apply_record(1, 1) sql = """INSERT INTO device_apply_record VALUES (1, 1, 2, '2019-10-15 09:28:55', '2019-10-30 00:55:55', '测试需要', 1, NULL, NULL, NULL, NULL, 0, 0, '2019-10-15 16:16:48.399755', '2019-10-15 16:16:48.399755'); """ execute_sql(sql) data = {"approval": 1, "reason": "owner审批apply记录,失败"} result = http_post(audit_url.format(apply_id=1), data=data, token=test1_token) assert result.json()['code'] == 3007 assert result.json()['msg'] == "审批失败"
def test_update_role_successful(admin_token, empty_role, execute_sql): """ 更新角色成功 :param admin_token: :param empty_role: :param execute_sql: :return: """ empty_role(998) sql = """ INSERT INTO role VALUES (998, '角色998', '描述998', '2019-10-18 17:45:21', '2019-10-18 17:45:21'); """ execute_sql(sql) data = {"name": "角色998_new", "desc": "描述998"} result = http_post(update_role_url.format(role_id=998), data=data, token=admin_token) assert result.json()['code'] == 0 assert result.json()['msg'] == "ok"
def test_admin_enable_device_successful(admin_token, execute_sql, empty_device): """ admin启用设备成功 :param admin_token: :param execute_sql: :param empty_device: :return: """ empty_device(13) sql = """ INSERT INTO device VALUES (13, 'phone', 'Apple', 'Apple iPhone XR (A2108) 128GB 黑色 移动联通电信4G手机 双卡双待', 'android', '12.1.4', '1792×828', '20150731-0134', 'no', '北京', 0, 2, 3, '这个是补充信息', '2019-09-13 09:28:55', '2019-10-17 16:34:51'); """ execute_sql(sql) data = {"disable": "false"} result = http_post(disable_device_url.format(device_id=13), data=data, token=admin_token) assert result.json()['code'] == 0 assert result.json()['msg'] == "ok"
def test_common_user_disable_device_failed(test1_token, execute_sql, empty_device): """ 普通用户禁用他人设备失败 :param test1_token: :param execute_sql: :param empty_device: :return: """ empty_device(12) sql = """ INSERT INTO device VALUES (12, 'phone', 'Apple', 'Apple iPhone XR (A2108) 128GB 黑色 移动联通电信4G手机 双卡双待', 'android', '12.1.4', '1792×828', '20150731-0134', 'no', '北京', 1, 3, 3, '这个是补充信息', '2019-09-13 09:28:55', '2019-10-17 16:34:51'); """ execute_sql(sql) data = {"disable": "true"} result = http_post(disable_device_url.format(device_id=12), data=data, token=test1_token) assert result.json()['code'] == 3009 assert result.json()['msg'] == "禁用失败"
def test_update_role_failed_already_exist(admin_token, empty_role, execute_sql): """ 更新角色失败,角色重名 :param admin_token: :param empty_role: :param execute_sql: :return: """ empty_role(996) sql = """ INSERT INTO role VALUES (996, '角色996', '描述996', '2019-10-18 17:45:21', '2019-10-18 17:45:21'); """ execute_sql(sql) data = {"name": "角色996", "desc": "描述996"} result = http_post(update_role_url.format(role_id=996), data=data, token=admin_token) assert result.json()['code'] == 4000 assert result.json()['msg'] == "角色已存在"
def test_admin_approval_return_failed(admin_token, empty_device_apply_record, execute_sql): """ 审批记录失败 :param admin_token: :param empty_device_apply_record: :param execute_sql: :return: """ empty_device_apply_record(1, 1) sql = """ INSERT INTO device_apply_record VALUES (1, 1, 1, '2019-10-15 09:28:55', '2019-10-30 00:55:55', '测试需要', 3, NULL, NULL, NULL, NULL, 0, 0, '2019-10-15 16:16:48.399755', '2019-10-15 16:16:48.399755'); """ execute_sql(sql) data = {"approval": 0, "reason": "admin审批return记录,不通过"} result = http_post(audit_url.format(apply_id=1), data=data, token=admin_token) assert result.json()['code'] == 3007 assert result.json()['msg'] == "审批失败"
def test_admin_approval_apply_successful(admin_token, empty_device_apply_record, execute_sql): """ admin审批通过apply的记录 :param admin_token: :param empty_device_apply_record: :param execute_sql: :return: """ empty_device_apply_record(1, 1) sql = """ INSERT INTO device_apply_record VALUES (1, 1, 1, '2019-10-15 09:28:55', '2019-10-30 00:55:55', '测试需要', 1, NULL, NULL, NULL, NULL, 0, 0, '2019-10-15 16:16:48.399755', '2019-10-15 16:16:48.399755'); """ execute_sql(sql) data = {"approval": 1, "reason": "admin审批apply记录,通过"} result = http_post(audit_url.format(apply_id=1), data=data, token=admin_token) assert result.json()['code'] == 0 assert result.json()['msg'] == "ok"
def test_add_role_failed_already_exist(admin_token, empty_role, execute_sql): """ 添加角色失败,已存在的角色 :param admin_token: :param empty_role: :param execute_sql: :return: """ empty_role(999) sql1 = """ DELETE FROM role WHERE name="角色add_failed"; """ execute_sql(sql1) sql2 = """ INSERT INTO role VALUES (999, '角色add_failed', '描述add_failed', '2019-10-18 17:45:21', '2019-10-18 17:45:21'); """ execute_sql(sql2) data = {"name": "角色add_failed", "desc": "描述add_failed"} result = http_post(add_role_url, data=data, token=admin_token) assert result.json()['code'] == 4000 assert result.json()['msg'] == "角色已存在"