检查使用运行时对象调用的模拟创建

时间:2016-07-12 03:20:09

标签: python mocking pymock

我有cassandra集群的代码,如

cluster = Cluster(
        config.CASS_CLUSTER,
        load_balancing_policy=policies.DCAwareRoundRobinPolicy(
            config.CASS_D_CENTER))

当我为此编写UT并尝试使用我的参数检查Cluster时。

mock_cluster.assert_called_with(
    config.CASS_CLUSTER,
    load_balancing_policy=policies.DCAwareRoundRobinPolicy(
        config.CASS_D_CENTER))

它给出了错误。

AssertionError: Expected call: Cluster(['192.168.1.1'], load_balancing_policy=<cassandra.policies.DCAwareRoundRobinPolicy object at 0x106fa2ed0>)
Actual call: Cluster(['192.168.1.1'], load_balancing_policy=<cassandra.policies.DCAwareRoundRobinPolicy object at 0x106fa2cd0>)

我得到这个是因为两个对象都不同,有没有办法在模拟中检查called_with

1 个答案:

答案 0 :(得分:1)

mock_cluster.assert_called_with(
    config.CASS_CLUSTER,
    load_balancing_policy=mock.ANY)