小编Har*_*ary的帖子

Python 单元测试模拟。ValueError:DataFrame 的真值不明确

我正在为我的 python 2.7 方法之一编写单元测试用例。

在我的测试方法中,有一个方法调用将带有字符串键和 panadas 数据框的字典作为该键的值。

我想为此方法编写一个交互测试,以检查它是否使用正确的字典在内部调用该方法

def MethodUnderTest(self):
    #some code here
    externalMethod(dictionary_of_string_dataframe)
    #some code here
Run Code Online (Sandbox Code Playgroud)

在单元测试中,我确实编写了我的断言来测试这种交互

mock_externalClass.externalMethod.assert_called_once_with(dictionary_of_string_dataframe) 
Run Code Online (Sandbox Code Playgroud)

我创建 dictionary_of_string_dataframe 的方式与在实际方法中创建的方式完全相同。事实上,我复制了在测试代码中执行此操作的辅助方法只是为了确保两个字典相同。我什至在 python 控制台上调试测试方法时打印了两个字典,两者看起来完全一样。

我使用 @patch 装饰器修补外部类,一切正常。

问题是在上面提到的 assert 语句中,我收到以下错误:

 mock_externalClass.externalMethod.assert_called_once_with(dictionary_of_string_dataframe)
  File "C:\Python27\lib\site-packages\mock\mock.py", line 948, in assert_called_once_with
    return self.assert_called_with(*args, **kwargs)
  File "C:\Python27\lib\site-packages\mock\mock.py", line 935, in assert_called_with
    if expected != actual:
  File "C:\Python27\lib\site-packages\mock\mock.py", line 2200, in __ne__
    return not self.__eq__(other)
  File "C:\Python27\lib\site-packages\mock\mock.py", line 2196, in __eq__
    return (other_args, other_kwargs) == (self_args, self_kwargs)
  File "C:\Python27\lib\site-packages\pandas\core\generic.py", line 953, in __nonzero__
    .format(self.__class__.__name__))
ValueError: The …
Run Code Online (Sandbox Code Playgroud)

python pandas python-unittest python-unittest.mock

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

Swagger Schema 错误不应具有其他属性

我正在尝试创建 swagger json 并尝试在http://editor.swagger.io 中检查它的有效性

验证json后,上面提到的编辑器给出了以下错误:

Schema error should NOT have additional properties
additionalProperty: components
Jump to line 0
Run Code Online (Sandbox Code Playgroud)

如果由于某种原因我无法在根级别定义一个名为 components 的元素,我将在其中拥有某种 json 模式,那么按照我的意图对 requestBody 的模式执行 $ref 的正确方法是什么如下例所示。另外,你看到我的 swagger json 有什么问题吗?

我的 swagger2.0 的 swagger json 看起来像这样。

{
    "swagger": "2.0",
    "info": {
        "version": "1.0",
        "title": "My swagger API",
        "contact": {
            "name": "myName",
            "email": "abc@gmail.com"
        }
    },
    "host": "localhost:1234",
    "basePath": "/",
    "tags": [{
        "name": "someTagName",
        "description": "this is a try"
    }],
    "components":{"schemas": {"myEndPoint": ""}},
    "paths": {
        "/myEndPoint": {
            "post": …
Run Code Online (Sandbox Code Playgroud)

swagger-2.0 swagger-editor

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

在使用消息之前,如何在Kafka中验证/授权消费者的主题

在kafka中,每当消费者尝试阅读有关其订阅者所关注主题的消息时,是否有一种方法可以对消费者进行身份验证/授权?

这里的用例是,消费者应该能够向kafka代理提供身份验证令牌,然后,代理应能够在允许消费者从主题中读取消息之前验证该令牌。

在kafka中可以实现吗?

apache-kafka kafka-consumer-api

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

如何使用不同标签对多个指标名称使用相同的 Counter 对象

我想记录多个指标名称的计数,例如 metricA、metricB、metricC 等等。一种选择是创建多个计数器对象,如下所示

Counter
.builder("metricA")
.register(registry);
Run Code Online (Sandbox Code Playgroud)

然而,这会导致很多我不喜欢的对象。

我想知道是否有一种方法可以使用相同的计数器对象并记录多个指标的计数。

有没有办法创建计数器,然后动态创建标签来获取相同的计数器对象并分别增加这些标签?

这个想法是在监控工具中使用相同的度量(仪表),并在同一图表中的标签周围进行分离。

或者是否有办法创建一个带有 10 个标签的计数器并一次增加一个标签?

micrometer spring-micrometer

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

python如何获取枚举的名称

我有这样的枚举

class testEnum(Enum):
   Code_1 = "successful response"
   Code_2 = "failure response"
Run Code Online (Sandbox Code Playgroud)

然后我有一个方法,它将枚举键名Code_1和枚举键值successful response作为输入.

如果我发送testEnum.Code_1然后解决,successful response而不是Code_1.

我检查了一些建议使用的在线文档,testEnum.Code_1.name但是这会引发一个错误,即enum项目不存在"name".

有谁知道如何获取枚举键的名称?

python enums python-2.7

4
推荐指数
2
解决办法
5024
查看次数

具有相同方法名称但不同限定符的 Spring bean 无法加载

我有两个 Spring Configuration 类定义如下

@Configuration
public class ClsA {

     @Bean
      @Qualifier("ClasA")
      public String getSomething(){
         return "somethingA";
     }
}


@Configuration
public class ClsB {

     @Bean
      @Qualifier("ClsB")
      public String getSomething(){
         return "somethingB";
     }
}
Run Code Online (Sandbox Code Playgroud)

两者具有相同的方法名称。即使限定符不同,应用程序也不会加载,因为它只注入一个,并且在注入另一个的任何地方,如果失败并出现 noBeanDefinition 异常,让我们说 ClsB bean 限定符。

当我保持方法名称不同时,一切都会加载笨拙的多莉。

这种行为正常吗?为什么弹簧不能很好地加载这些 bean,因为它们具有不同的限定符?

spring

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

Grails中渲染和返回渲染之间的区别是什么

grails中的以下内容有何区别:

渲染xyz

返回渲染xyz

我在控制器动作中返回渲染xyz,并且在IE中多次调用该控制器动作.我想知道返回渲染是否是罪魁祸首.这在本地intellij tomcat应用服务器中工作正常,但在生产weblogic服务器中失败.

grails

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

Python jsonschema验证无法按预期工作

我正在使用python 2.7 jsonschema validate方法来针对jsonSchema验证响应json。

我的jsonSchema是一个字典,如下所示:

schema = {
    "type" : "object",
    "properties" : {
        "Country": {"type": "object",
                    "properties":{
                        "State" : { "type" : "object",
                                     "properties": {
                                     "city": {"type": "object",
                                                       "properties":{
                                                           "lat":{"type": "string"},
                                                           "long": {"type": "string"}
                                                           } 
                                                       },
                                    "StateCode": {"type": "string"},
                                    "StateFlagColor111": {"type": "string"},
                                    "StateCapital": {"type": "string"}
                                  }
                                }
                            }
                    }
                 }   
          }                                
Run Code Online (Sandbox Code Playgroud)

我尝试针对此架构进行验证的响应json是

{
  "Country":   {
  "State": {
    "City": {
      "lat": "PP_4001", 
      "long":  "Invalid GlobalParameters"
    }, 
  "StateCode": "2017-06-16 18:15:14.442000", 
  "StateFlagColor": "400", 
 "StateCapital": "ERROR"
  }
  }
}
Run Code Online (Sandbox Code Playgroud)

用于根据JSON模式验证JSON数据的Python代码段是

   import jsonschema 
   from …
Run Code Online (Sandbox Code Playgroud)

python

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