小编Bod*_*dao的帖子

gsutil 不适用于 mac 和 python3.5

我正在尝试使用 google storage lib,但是当我调用 gsutil 时出现错误...

使用 pip 安装 gsutil:

pip install gsutil
Run Code Online (Sandbox Code Playgroud)

我当前的Python版本是3.5

当我gsutil从命令行运行时,出现以下错误:

class AbortException(StandardError): NameError: name 'StandardError' is not defined
Run Code Online (Sandbox Code Playgroud)

不知道如何解决这个问题...有什么想法吗?

编辑:看起来使用 python 3.4 工作正常,尽管他们说 3x 不支持它......

python-3.x google-cloud-storage gsutil

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

如何在python中模拟/修补装饰器?

解决方法:

我无法修补装饰器,但仍然可以访问包装的函数。但是我要测试包装在装饰器中的函数的解决方法如下:

def un_some_method(self):
...

some_method = some_var.some_decorator('somestring')(un_some_method)    
Run Code Online (Sandbox Code Playgroud)

这仍然修饰了我的功能,但是如果我想对其进行测试,可以在其他地方重用它,则可以访问该功能。

这就是问题:

我有一个模块,其中有一个类,以及实例化暴露装饰器的类的变量。

然后在模块内部的类中,将该变量与类的实例一起使用,并在类中装饰一个方法。要清楚,让我们看一些代码:

some_var = ClassX()

class SomeClass(object):

    @some_var.some_decorator('somestring')
    def some_method(self):
        ...
Run Code Online (Sandbox Code Playgroud)

在我的测试中,我想测试其中的代码,some_method并且我不在乎装饰器...尽管我尝试模拟装饰器是没有用的...以下是我尝试过的一些事情:

@patch('path_to_classx.ClassX.some_decorator')
@patch('path_to_someclassmodule.some_var')
@patch('path_to_someclassmodule.ClassX')
Run Code Online (Sandbox Code Playgroud)

上面的尝试都没有阻止功能的修饰...知道为什么吗?

python mocking python-3.x

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

从 DynamoDB 表生成云形成模板

我有一个 DynamoDB 表需要复制到不同的环境。管理表的最佳方法是使用 CloudFormation 模板,以便脚本可以基于该模板创建表。鉴于该表已经存在,我想知道是否可以为现有表生成电子模板,有什么想法吗?google 没找到太多...

模板看起来像这样:

"Resources": {
    "CustomerTable": {
      "Type" : "AWS::DynamoDB::Table",
      "Properties" : {
        "KeySchema": [
          {
            "AttributeName": "customerId",
            "KeyType": "HASH"
          }
        ],
        "AttributeDefinitions": [
          {
            "AttributeName": "customerId",
            "AttributeType": "N"
          }
        ],
        "ProvisionedThroughput" : {
          "ReadCapacityUnits" : { "Ref": "CustomerReadCapacity" },
          "WriteCapacityUnits" : { "Ref": "CustomerWriteCapacity" }
        },
        "TableName" : "customer"
      }
    }
}
Run Code Online (Sandbox Code Playgroud)

amazon-web-services

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

如何发送基于水豚中元素的 JavaScript

我希望在水豚做这样的事情:

browser.execute_script("arguments[0].setAttribute('value', 'value')", element)
Run Code Online (Sandbox Code Playgroud)

上面的行是在 selenium/ruby 上运行的,但是使用带有水豚的 execute_script 只需要 1 个参数(脚本),因此我无法定义我希望在...上执行脚本的元素……有什么想法吗?

ruby capybara selenium-webdriver

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

capybara :: dsl :: module的未定义方法'委托'

我有一个处理jquery-ui的水豚猴补丁,它在Ubuntu上运行得很好......虽然移动到Windows时我得到以下错误(所有依赖宝石都安装成功):

capybara :: dsl :: module的未定义方法'委托'

发生这种情况的代码行是:

module Capybara::DSL
  delegate :datepick, :datetimepick, :timepick, to: :page
end
Run Code Online (Sandbox Code Playgroud)

这可能是什么想法?有点失去了为什么只是通过切换OS来显示这个错误...

ruby selenium capybara

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