def test_basic_pagination(): p = Pagination(None, 1, 20, 500, []) assert p.page == 1 assert not p.has_prev assert p.has_next assert p.total == 500 assert p.pages == 25 assert p.next_num == 2 assert list(p.iter_pages()) == [1, 2, 3, 4, 5, None, 24, 25] p.page = 10 assert list(p.iter_pages()) == [ 1, 2, None, 8, 9, 10, 11, 12, 13, 14, None, 24, 25 ]
def UploadRPCserver(): action = request.form.get('action') page = request.form.get('page', 1, type=int) if action == 'pagination': data = {'code': 1} total = get_upload_tasks_no() pagination = Pagination(query=None, page=page, per_page=50, total=total, items=None) data['page'] = page data['pages'] = pagination.pages page_lists = [] for p in pagination.iter_pages(): page_lists.append(p) data['page_lists'] = page_lists[::-1] data['has_prev'] = pagination.has_prev data['has_next'] = pagination.has_next return jsonify(data) elif action == 'ClearHist': mon_db.upload_queue.delete_many({}) ret = {'msg': '清除成功!'} return jsonify(ret) elif action == 'Restart': cmd = 'python {}/function.py StartUploadQueue'.format(config_dir) subprocess.Popen(cmd, shell=True) ret = {'msg': '重启成功!'} return jsonify(ret) ret = get_upload_tasks(page) data = {'code': 1, 'result': ret} return jsonify(data)