Skip to content

MockObject.__eq__ behaviour causes problems when the mocks are used in lists.  #59

@GoogleCodeExporter

Description

@GoogleCodeExporter
MockObject and MockAnything are just equal to any other mock that happens to 
have the same "replay_mode" and "expected_calls_queue". That creates problem 
when the mocks are used in sequences / collections / lists. For example, 
list.count() will probably give the wrong result as it will count all mock 
instances. 

Here is an example 

import mox

mocker = mox.Mox()
mock1 = mocker.CreateMockAnything(description="mock1 is unique")
mock2 = mocker.CreateMockAnything(description="mock2 is also unique")
print [mock1, mock2].count(mock1) #=> 2 but should be 1 


Wouldn't be better if __eq__ compared at least the attrs of the mocks? If they 
have a different set of mocked attributes they can't be "equal", right?

Original issue reported on code.google.com by [email protected] on 12 Oct 2014 at 6:09

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions