小编Tyr*_*tyk的帖子

wpa_supplicant 中 key_mgmt 属性的用途是什么?是否需要明确定义?

我正在编写一个 bash 脚本,旨在更新包含/etc/wpa_supplicant/wpa_supplicant.conf(运行 raspbian 9stretch)的 Raspberry Pi 的 wifi 设置。

根据 Raspberry Pi 官方文档,我正在使用该wpa_passphrase命令,在其中我可以输入所需网络的 ESSID 和密码,然后将其输出附加到现有文件的末尾/etc/wpa_supplicant/wpa_supplicant.conf,然后使用wpa_cli -i wlan0 reconfigure.

这一切都很好,而且效果很好,但我注意到它不会产生任何key_mgmt字段,这与您通过桌面 GUI 手动登录网络不同。

我只是好奇不明确定义该字段是否有任何危害key_mgmt?如果没有它就可以毫无问题地连接网络(至少在我的情况下),它的用例是什么?我通读了wpa和的稀疏文档wpa_supplicant,但它并没有告诉我太多信息。

key_mgmt=WPA-PSK作为参考,如果我通过 RPi 的桌面 GUI 登录,我注意到无论有或没有此字段,网络都可以工作。我测试过的所有网络都有这个共同点。

提前致谢!

bash wpa raspberry-pi wpa-supplicant

6
推荐指数
0
解决办法
2万
查看次数

在 Flask 应用程序中与 Celery 同步测试

我有一个基于 Flask 的 Web API,它使用异步任务管理器celery。我创建了一个 API 端点,它只是运行我想要的异步任务,然后添加了另一个端点来公开该任务的状态和结果。

通过此 API 端点的集成测试工作正常并通过,但是我还想使用task_always_eagercelery 中的设置同步测试这些功能。但无论我如何尝试设置此配置设置,应用程序仍然异步运行任务(我通过在测试运行时观察 celery 日志知道这一点;celery 仍在启动工作程序并将它们分配给此任务。

我尝试过修改配置变量中间测试文件

# TEST STATISTICS API
current_app.config.update(task_always_eager=True)
Run Code Online (Sandbox Code Playgroud)

以及 config.py 和init .py 文件中

<config.py, next to the rest of the working config settings>
task_always_eager = True

<__init__.py, I use the "application factory" pattern>
celery = Celery(__name__, broker=Config.CELERY_BROKER_URL)
def create_app(config_name):
    app = Flask(__name__)
    celery.conf.update(app.config)
Run Code Online (Sandbox Code Playgroud)

然而,芹菜仍然继续让工人执行这项任务。这是单元测试的一个问题(无法有效地测试它自己的bind = True参数的bc函数),并且因为测试的celery任务不会显示在我们带有coverage.py模块的测试覆盖率套件上。任何帮助将不胜感激!

应用程序编程接口

公开的 API 端点:

@api.route('/stats/<start_time>/<end_time>', methods=['GET'])
def stats_endpoint(start_time, end_time):
    task = async_stats.delay(start_time, end_time)
    return jsonify({}), 202, {'Location': …
Run Code Online (Sandbox Code Playgroud)

python unit-testing asynchronous celery flask

5
推荐指数
0
解决办法
1454
查看次数