小编Ayu*_*mar的帖子

如何将集成测试(而不是单元测试)应用于Flask RESTful API

[根据/sf/answers/3245896181/,标题应参考集成测试而不是单元测试]

假设我想测试以下Flask API(从这里开始):

import flask
import flask_restful

app = flask.Flask(__name__)
api = flask_restful.Api(app)

class HelloWorld(flask_restful.Resource):
    def get(self):
        return {'hello': 'world'}

api.add_resource(HelloWorld, '/')

if __name__ == "__main__":
    app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)

将此保存flaskapi.py并运行后,在同一目录中运行脚本test_flaskapi.py:

import unittest
import flaskapi
import requests

class TestFlaskApiUsingRequests(unittest.TestCase):
    def test_hello_world(self):
        response = requests.get('http://localhost:5000')
        self.assertEqual(response.json(), {'hello': 'world'})


class TestFlaskApi(unittest.TestCase):
    def setUp(self):
        self.app = flaskapi.app.test_client()

    def test_hello_world(self):
        response = self.app.get('/')

if __name__ == "__main__":
    unittest.main()
Run Code Online (Sandbox Code Playgroud)

两个测试都通过了,但对于第二个测试(在TestFlaskApi类中定义),我还没有弄清楚如何断言JSON响应是否符合预期(即{'hello': 'world'}).这是因为它是一个实例flask.wrappers.Response(可能基本上是一个Werkzeug响应对象(参见http://werkzeug.pocoo.org/docs/0.11/wrappers/)),但我找不到相应的Response …

python integration-testing werkzeug flask flask-restful

22
推荐指数
3
解决办法
3万
查看次数

还记得我最好的Cookie吗?

我读到关于这个论点许多老问题,我认为最好的做法是设置了一个cookie username,user_id并随机令牌.

在创建cookie时,相同cookie的数据存储在DB中,当用户拥有cookie时,它们将被比较(cookie数据,DB数据).

如果这是真正的最佳实践,我真的无法理解安全逻辑在哪里.

窃取cookie的攻击者与原始用户具有相同的cookie:|

忘了一步?:P

security cookies session-cookies

20
推荐指数
3
解决办法
2万
查看次数

在Ubuntu 17.04上sudo apt-get update失败

sudo apt-get update在ubuntu 17.04 Zesty Zapus上运行时,我收到以下错误.我发布了错误行.我想安装像matplotlib和tkinter这样的python库,因为上面的命令没有成功运行,因此无法安装.请建议我做什么.

Err:9 http://security.ubuntu.com/ubuntu zesty-security/main amd64 Packages
  404  Not Found [IP: 2001:67c:1560:8001::14 80]
Err:25 http://in.archive.ubuntu.com/ubuntu zesty/main i386 Packages
  404  Not Found [IP: 2001:67c:1360:8001::21 80]
Err:81 http://in.archive.ubuntu.com/ubuntu zesty-updates/main amd64 Packages
  404  Not Found [IP: 2001:67c:1360:8001::21 80]
Err:113 http://in.archive.ubuntu.com/ubuntu zesty-backports/main amd64 Packages
  404  Not Found [IP: 2001:67c:1360:8001::21 80]
Reading package lists... Done
W: The repository 'http://security.ubuntu.com/ubuntu zesty-security Release' does not have a Release file.
N: Data from such a repository can't be authenticated and is therefore potentially …
Run Code Online (Sandbox Code Playgroud)

linux ubuntu apt-get ubuntu-17.04

7
推荐指数
3
解决办法
1万
查看次数

GoLang - 如何将值初始化为 *time.Time

我在某个device.go文件中定义了一个结构

type Payload struct {
    ...
    Timestamp *time.Time  `json:"timestamp,omitempty"`
    ...
}
Run Code Online (Sandbox Code Playgroud)

现在我想在其他文件中初始化这个结构,我正在尝试这个:

payload:= &device.Payload{
    ....
    Timestamp: time.Now(), // throws error
    ... //other initializations work fine
}
Run Code Online (Sandbox Code Playgroud)

不能使用 time.Now()(time.Time 类型的值)作为结构体中的 *time.Time 值

我想将变量初始化为当前的 UTC 时间。我是 golang 的新手。我怎么做?

struct pointers go

0
推荐指数
1
解决办法
62
查看次数