小编Skh*_*haz的帖子

Jest 期望异常不适用于异步

我正在编写一个应该可以捕获异常的测试

describe('unauthorized', () => {
  const client = jayson.Client.http({
    host: 'localhost',
    port: PORT,
    path: '/bots/uuid',
  })

  it('should return unauthorized response', async () => {
    const t = async () => {
      await client.request('listUsers', {})
    }

    expect(t()).toThrow(Error)
  })
})
Run Code Online (Sandbox Code Playgroud)

我很确定这client.request会引发异常,但 Jest 说:

收到的函数没有抛出

const test = async () => {
 ...
}
Run Code Online (Sandbox Code Playgroud)

检查方法是否正确?

更新

如果我改为

expect(t()).toThrow(Error)
Run Code Online (Sandbox Code Playgroud)

我有

expect(received).toThrow(expected)

Matcher error: received value must be a function

Received has type:  object
Received has value: {}
Run Code Online (Sandbox Code Playgroud)

javascript typescript jestjs

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

仅限 Python 属性设置器

我有一个带有属性装饰器的课程。

class Dispatcher:
    def __init__(self, url):
        self._session = None

    @property
    def session(self):
        return self._session

    @session.setter
    def session(self, value):
        self._session = value
Run Code Online (Sandbox Code Playgroud)

但我不需要getter,我可以只拥有财产setter吗?

这更多的是一种好奇心。

python

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

在 NextJS 的 API 上使用路径参数

我有一个pages/api/thumbnail.js带有处理程序的简单文件:

export default async function handler(req, res) {
  console.dir(req.params)
  // ...
}
Run Code Online (Sandbox Code Playgroud)

在纯 Express 服务器上,可能有一个“路径参数”,但在 NextJS 上,如果尝试在我的 API 上传递某些路径,我会收到错误 404。

例子:

http://localhost:3000/api/thumbnail >> 好的,可以了

现在有一条路径:

http://localhost:3000/api/thumbnail/something >> 错误,404 未找到!

使用 NextJS API 是否可以使用路径参数或仅使用查询字符串

附言。我正在使用Vercel,如果使用重写是唯一的解决方案,它对我来说是可以接受的。

node.js express next.js

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

如果已创建,则忽略 pubsub 主题

我有一个简单的脚本来部署 pubsub 应用程序。

该脚本将在我的 Cloud Run 服务的每次部署上运行,并且我有一行:

gcloud pubsub topics create some-topic
Run Code Online (Sandbox Code Playgroud)

如果主题已经存在,我想改进我的脚本,目前如果我运行我的脚本,输出将是:

错误:无法创建主题 [projects/project-id/topics/some-topic]:项目中已存在资源 (resource=some-topic)。

错误:(gcloud.pubsub.topics.create)无法创建以下内容:[some-topic]。

我尝试了标志--no-user-output-enabled但没有成功。

有没有办法忽略资源是否已存在,或者在创建之前进行检查?

gcloud google-cloud-pubsub gcloud-cli

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

PyMongo在全文搜索中选择字段

伙计们,
我试图在find方法上使用fields参数,但收到以下错误代码:

TypeError: __init__() got multiple values for keyword argument 'fields'
Run Code Online (Sandbox Code Playgroud)

码:

mongo.db.products.find({ '$text': { '$search': string } }, { 'score': { '$meta': 'textScore' } }, fields=('name', 'foo', 'bar',))
Run Code Online (Sandbox Code Playgroud)

如果没有全文搜索,fields参数可以正常工作。

python full-text-search mongodb pymongo mongodb-query

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

在井字游戏中寻找获胜者-NumPy / Python

我想在井字游戏中检查所有可能的获胜者条件,我该如何以功能性方式重写?

board = numpy.array([[0, 0, 0],
                     [0, 0, 0],
                     [0, 0, 0]])
player = 1

if any([(board[0, :] == player).all(),
        (board[:, 0] == player).all(),
        (board[1, :] == player).all(),
        (board[:, 1] == player).all(),
        (board[2, :] == player).all(),
        (board[:, 2] == player).all()]):
    print('Win')
Run Code Online (Sandbox Code Playgroud)

python numpy

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

如何将这段代码从Erlang翻译成Elixir?

如何将这段代码从Erlang翻译成Elixir?

二郎:

xmpp:get_text(Packet#message.body)
Run Code Online (Sandbox Code Playgroud)

药剂:

:xmpp.get_text(packet ... ?
Run Code Online (Sandbox Code Playgroud)

erlang elixir ejabberd

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

递归删除所有值为 NULL 的键

我有一个复杂的dict数组,它有一些作为字符串“NULL”的值,我想删除,我的 dict 看起来像这样:

d = [{
  "key1": "value1",
  "key2": {
    "key3": "value3",
    "key4": "NULL",
    "z": {
       "z1": "NULL",
       "z2": "zzz",
    },
  },
  "key5": "NULL"
}, {
  "KEY": "NULL",
  "AAA": "BBB",
}]
Run Code Online (Sandbox Code Playgroud)

我想清除所有值为NULL 的

像这样:

[{"key1": "value1", "key2": {"key3": "value3", "z": {"z2": "zzz"}}}, {"AAA": "BBB"}]

我使用的是 Python 3.9,因此可以使用 walrus 运算符。

python recursion null dictionary

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

字典列表中的第一个非空值

假设我想获取此字典列表中的第一个key为空:

arr = [
    {
      "key": None,
      "anotherkey": 0
    },
    {
      "another": "ignore"
    },
    {
      "bool": True,
      "key": "this!"
    }
  ]
Run Code Online (Sandbox Code Playgroud)

有一些单行线可以做到这一点吗?我用 for 循环做到了。

python

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

Pandas 最多聚合两列

我有一个包含两列的数据框

df = DataFrame.from_records([
  {"time": 10, "amount": 200},
  {"time": 70, "amount": 1000},
  {"time": 10, "amount": 300},
  {"time": 10, "amount": 100},
])
Run Code Online (Sandbox Code Playgroud)

我想要,给定一段时间80ms,计算可能的最大数量,在这种情况下,输出应该是 1300,因为在此期间,可能的最大数量是 1300。

熊猫可以吗?我想过使用聚合,但我不知道如何使用它

python optimization aggregate knapsack-problem pandas

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