小编all*_*evo的帖子

如何在flask资源中测试会话

我想测试资源.响应取决于会话中的参数(已记录)为了测试此资源,我编写了这些测试:

import app
import unittest

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

    def test_without_session(self):
        resp = self.app.get('/')
        self.assertEqual('without session', resp.data)

    def test_with_session(self):
        with self.app as c:
            with c.session_transaction() as sess:
                sess['logged'] = True
            resp = c.get('/')
        self.assertEqual('with session', resp.data)


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

我的app.py是这样的:

from flask import Flask, session


app = Flask(__name__)


@app.route('/')
def home():
    if 'logged' in session:
        return 'with session'
    return 'without session'


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

当我运行测试时,我有这个错误:

ERROR: test_pippo_with_session (__main__.Test)
----------------------------------------------------------------------
Traceback (most recent call …
Run Code Online (Sandbox Code Playgroud)

python session unit-testing flask

13
推荐指数
1
解决办法
5240
查看次数

使用 Serde 将 json 字符串序列化为对象

我有以下结构

#[derive(Serialize)]
pub struct MyStruct {
    pub id: String,
    pub score: f32,
    pub json: String,
}
Run Code Online (Sandbox Code Playgroud)

json字段始终包含已字符串化的有效 JSON 对象。

给定一个实例,我想使用 JSON 内容对其进行序列化。就像是:

let a = MyStruct {
    id: "my-id".to_owned(),
    score: 20.3,
    json: r#"{
       "ffo": 4
    }"#,
};
let r = to_string(&a).unwrap();
assert_eq!(r, r#"{
        "id": "my-id",
        "score": 20.3,
        "json": {
            "ffo": 4
        }
    }"#);
Run Code Online (Sandbox Code Playgroud)

注意:我不需要支持不同的序列化格式,只需要支持 JSON。NB2:我确信该json字段始终包含有效的 JSON 对象。NB3:我通常使用 serde,但我愿意使用不同的库。

我怎样才能做到这一点?

编辑:如果可能的话,我想避免在序列化过程中反序列化字符串。

serialization json rust serde

4
推荐指数
1
解决办法
1494
查看次数

React-router - 无法读取undefined的属性'query'

我有这个错误: Cannot read property 'query' of undefined 当我导航到/仪表板

app.jsx是这样的

import React from 'react'
import { render } from 'react-dom'
import { Router, Route, Link } from 'react-router'
import { createHistory } from 'history'

const App = React.createClass({
  getInitialState() {
    return {
      loggedIn: false
    }
  },

  render() {
    return (
      <div>
        <ul>
          <li>
            {this.state.loggedIn ? (
              <Link to="/logout">Log out</Link>
            ) : (
              <Link to="/login">Sign in</Link>
            )}
          </li>
          <li><Link to="/dashboard">Dashboard</Link> (authenticated)</li>
        </ul>
      </div>
    )
  }
})

const Dashboard = React.createClass({
  render() { …
Run Code Online (Sandbox Code Playgroud)

reactjs react-router

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

Nodejs插件uv_queue_work分段错误

我正在尝试创建一个非常小的 nodejs 插件示例。我的 C++ 代码是这样的:

void __sleep(uv_work_t* req) {
    usleep(1000 * 1000 * 5); // = 5seconds
}

void after(uv_work_t *handle, int status) {
    printf("After\n");
}

Handle<Value> foo(const Arguments& args) {
    HandleScope scope;
    uv_loop_t *loop = uv_default_loop();
    uv_work_t req;
    uv_queue_work(loop, &req, __sleep, after);
    return scope.Close(Undefined());
}

void InitAll(Handle<Object> exports, Handle<Object> module) {
    NODE_SET_METHOD(exports, "foo", foo);
}

NODE_MODULE("myModule", InitAll)
Run Code Online (Sandbox Code Playgroud)

在js中,这个:

console.log(myModule);
myModule.foo();
console.log("started sleeping...");
Run Code Online (Sandbox Code Playgroud)

当我调用myModule.foo函数时,进程会因分段错误而终止。

我试图添加,uv_run(loop, UV_RUN_DEFAULT)但这会阻止主线程。

我哪里做错了?谢谢

c++ node.js libuv

2
推荐指数
1
解决办法
734
查看次数

如何在 Rust 中连接静态数组?

我有两个静态数组,u8我会实现一个函数来连接它们。类似的东西

fn concat_u8(first: &'static [u8], second: &'static [u8]) -> &'static [u8] {
    &[&first[..], &second[..]].concat()
}
Run Code Online (Sandbox Code Playgroud)

编译器向我展示了错误returns a reference to data owned by the current function。那是因为分配的内存将在函数结束时空闲。

我怎样才能“强制”生命周期是静态的?

编辑

我有一个长期运行的过程。

在开始时,进程处理一些输入以计算结果(即concat_u8 函数)。结果是一个数组,u8并且将在进程生命周期的剩余时间中以只读方式使用。concat_u8 在“内部start事件”之后无法调用该函数。

我不想使用,Box因为动态分配意味着一点开销(可能无法衡量?)并将结果存储为&[u8].

我有机会这样做吗?

我有机会在不使用unsafe块的情况下做到这一点吗?

rust

2
推荐指数
1
解决办法
6457
查看次数

v8如何处理闭包中的堆栈分配变量?

我读了很多文章说“v8 使用堆栈来分配像数字这样的基元”。我还准备了有关 CG 仅适用于堆分配的信息。但是,如果我将堆栈分配的变量与闭包结合起来,那么谁来释放堆栈分配的变量呢?

例如:

function foo() {
    const b = 5;

    return function bar(x) {
        return x * b
    }
}

// This invocation allocate in the stack the variable `b`
// in the head the code of `bar`
const bar = foo()
// here the `b` should be freed

// here `b` is used, so should not be free
bar()
Run Code Online (Sandbox Code Playgroud)

怎么运行的?函数如何bar指向bifb存在于堆栈中?这里是怎样[[Environment]]建造的?

javascript closures memory-management v8

2
推荐指数
1
解决办法
480
查看次数

git sha 使用它来指向依赖版本是否安全?

我想知道使用 git sha 指向依赖项的特定版本是否安全。我知道这不是一个好的做法,但有时是必要的。

我已经读到,通常情况下,不可能选择提交 ID,因为它是使用很多东西自动计算的。但没有人提到你可以在本地重建 git 来覆盖这个算法,让我们生成重复的 sha。

我没有读到 gitserver 检查它以确保 gitclient 没有“损坏”,就是这样。

那么,假设上述情况是可能的(请确认与否),sha git是否就被认为是sicured呢?

git devops

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