Skip to content

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

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 ruben.la...@gmail.com on 12 Oct 2014 at 6:09

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions