小编kku*_*ian的帖子

1167
推荐指数
19
解决办法
85万
查看次数

成功运行py.test后模块'threading'中的KeyError

我正在使用py.test运行一组测试.他们过去了.开心辞典!但我收到这条消息:

Exception KeyError: KeyError(4427427920,) in <module 'threading' from '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/threading.pyc'> ignored
Run Code Online (Sandbox Code Playgroud)

我应该如何追查其来源?(我不是直接使用线程,而是使用gevent.)

python pytest gevent

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

使用模拟补丁来模拟实例方法

我正在尝试使用富有想象力的Mock测试库测试Django应用程序时嘲笑某些东西.我似乎无法让它工作,我正在尝试这样做:

models.py

from somelib import FooClass

class Promotion(models.Model):
    foo = models.ForeignKey(FooClass)
    def bar(self):
       print "Do something I don't want!"


test.py

class ViewsDoSomething(TestCase):
    view = 'my_app.views.do_something'

    def test_enter_promotion(self):
        @patch.object(my_app.models.FooClass, 'bar')
        def fake_bar(self, mock_my_method):
            print "Do something I want!"
            return True

        self.client.get(reverse(view))
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

python mocking

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

如何告诉py.test跳过某些目录?

我试图使用norecursedirssetup.cfg中的选项告诉py.test不要从某些目录中收集测试,但它似乎确实忽略了它.

[tool:pytest]
norecursedirs=lib/third
Run Code Online (Sandbox Code Playgroud)

当我跑步时,py.test我确实看到它是如何从内部进行测试的lib/third!

python unit-testing pytest

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

XPath在任何文本节点中查找文本

我试图在文档的任何文本节点中找到某个文本,到目前为止我的语句如下所示:

doc.xpath("//text() = 'Alliance Consulting'") do |node|
  ...
end
Run Code Online (Sandbox Code Playgroud)

这显然不起作用,任何人都可以提出更好的选择吗?

xpath

35
推荐指数
1
解决办法
6万
查看次数

Rails,Devise,Rspec:未定义的方法'sign_in'

我正在尝试在Rails中编写Rspec测试,使用Devise帮助方法进行登录和注销.sign_in方法无效.但是,在对应用程序进行一系列更改之前,它已经提前工作了.

我尝试过的事情:

  • 我在Rspec.configure中包含了测试助手.
  • 使用Warden的login_as
  • 清除Rails缓存.
  • 摆脱Capybara,看看是否导致问题
  • 我没有在我的控制器规范中明确设置会话(例如没有valid_session)

到目前为止,没有骰子.使用已登录用户测试控制器需要做些什么?

错误信息:

 OrderItemsController GET #index renders the :index view
 Failure/Error: sign_in :admin
 NoMethodError:
      undefined method `sign_in' for #  <RSpec::ExampleGroups::OrderItemsController_2::GETIndex:0x00000102c002d0>
 # ./spec/controllers/order_items_controller_spec.rb:6:in `block (2 levels) in <top (required)>'
Run Code Online (Sandbox Code Playgroud)

控制器规格

require 'spec_helper'

describe OrderItemsController do
    before (:each) do
        admin = create(:admin)
        sign_in :admin
    end

    describe "GET #index" do
        it "renders the :index view" do
            get :index
            expect( response ).to render_template :index
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

spec_helper.rb

require 'rspec/rails'
require 'capybara/rspec'

RSpec.configure do |config|

  config.include ApplicationHelper
  config.include …
Run Code Online (Sandbox Code Playgroud)

rspec devise ruby-on-rails-4

30
推荐指数
5
解决办法
2万
查看次数

在Rails 5中添加引用列迁移

用户有很多上传.我想在上传表中添加一个引用该用户的列.迁移应该是什么样的?

Rails 3的相关问题:Rails 3迁移:添加参考列?

Rails 4的相关问题:在Rails 4中添加引用列迁移

rails-migrations rails-activerecord ruby-on-rails-5

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

使用py.test + gevent确定测试覆盖率

如何在使用py.test+ 时获得准确的测试覆盖率报告gevent

我已经尝试了使用pytest-cov插件的显而易见的事情,py.test但是当gevent正在使用时它会生成不准确的报告.

python code-coverage pytest gevent

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

使用 AWS Amplify 更新 DynamoDB 架构

根据 AWS Amplify 文档:

amplify push为每个@model 创建一个 DynamoDB 表似乎很清楚。

我的问题与架构更新有关:

  • 我想通过更新架构文档然后运行amplify push. 那正确吗?

  • 如何重命名模型或字段?如何amplify push知道重命名与删除旧的并添加新的?

  • 如何实现需要一些业务逻辑的迁移,例如,更新现有行的内容?已经解决了在没有 Amplify 的情况下执行此操作的问题,但尚不清楚这是否会与amplify push可能尝试执行的操作发生冲突。

database-migration amazon-web-services amazon-dynamodb graphql aws-amplify

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

Shell进入一个在Heroku dyno上运行的Docker容器.怎么样?

给定一个容器运行的dyno,Heroku相当于docker exec -it blarg /bin/bash什么?也就是说,如何在已经运行的容器中打开shell?

示例Dockerfile:

FROM heroku/heroku:16
CMD while true; do sleep 1; done
Run Code Online (Sandbox Code Playgroud)

示例运行:

$ heroku container:push my_app
<wait a minute>
$ heroku ps
=== my_app (Free): /bin/sh -c while\ true\;\ do\ sleep\ 1\;\ done (1) 
my_app.1: up 2017/10/09 12:13:07 -0600 (~ 4m ago)
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.

但现在...

$ heroku ps:exec --dyno=my_app.1
Establishing credentials... error
 ?    Could not connect to dyno!
 ?    Check if the dyno is running with `heroku ps'
Run Code Online (Sandbox Code Playgroud)

为了更好的衡量,我heroku ps在这一点检查,它表明dyno仍然在运行.

是的,我已经完成了Heroku建议启用Docker支持的所有功能.每文档,我已经用我选择的基本图像,同时确保试过 …

heroku docker

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

如何在gevent中捕获回溯

我已经产生了一个Greenlet并将其链接到一个可调用的.一段时间后,Greenlet因异常而失败.链接的callable被调用.这一切都很棒!

这是问题所在:

正如您所期望的那样,我的控制台上会出现异常的回溯.但我想在链接的callable中使用该回溯做一些事情.如何在链接的callable中访问该回溯?

(我的第一直觉就是使用traceback.extract_stack(),但事实证明它为链接的callable本身而不是Exception提供了追溯.)

python exception-handling gevent greenlets

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