PYTHON-3757 Bulk write operations don't consider hint field in equality checks (#1402)
This commit is contained in:
parent
b9bb6f847b
commit
19c5fcfb74
@ -126,11 +126,15 @@ class DeleteOne:
|
||||
)
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return f"DeleteOne({self._filter!r}, {self._collation!r})"
|
||||
return f"DeleteOne({self._filter!r}, {self._collation!r}, {self._hint!r})"
|
||||
|
||||
def __eq__(self, other: Any) -> bool:
|
||||
if type(other) == type(self):
|
||||
return (other._filter, other._collation) == (self._filter, self._collation)
|
||||
return (other._filter, other._collation, other._hint) == (
|
||||
self._filter,
|
||||
self._collation,
|
||||
self._hint,
|
||||
)
|
||||
return NotImplemented
|
||||
|
||||
def __ne__(self, other: Any) -> bool:
|
||||
@ -187,11 +191,15 @@ class DeleteMany:
|
||||
)
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return f"DeleteMany({self._filter!r}, {self._collation!r})"
|
||||
return f"DeleteMany({self._filter!r}, {self._collation!r}, {self._hint!r})"
|
||||
|
||||
def __eq__(self, other: Any) -> bool:
|
||||
if type(other) == type(self):
|
||||
return (other._filter, other._collation) == (self._filter, self._collation)
|
||||
return (other._filter, other._collation, other._hint) == (
|
||||
self._filter,
|
||||
self._collation,
|
||||
self._hint,
|
||||
)
|
||||
return NotImplemented
|
||||
|
||||
def __ne__(self, other: Any) -> bool:
|
||||
|
||||
@ -185,15 +185,45 @@ class TestWriteOpsComparison(unittest.TestCase):
|
||||
|
||||
def test_DeleteOneEquals(self):
|
||||
self.assertEqual(DeleteOne({"foo": 42}), DeleteOne({"foo": 42}))
|
||||
self.assertEqual(
|
||||
DeleteOne({"foo": 42}, {"locale": "en_US"}), DeleteOne({"foo": 42}, {"locale": "en_US"})
|
||||
)
|
||||
self.assertEqual(
|
||||
DeleteOne({"foo": 42}, {"locale": "en_US"}, {"hint": 1}),
|
||||
DeleteOne({"foo": 42}, {"locale": "en_US"}, {"hint": 1}),
|
||||
)
|
||||
|
||||
def test_DeleteOneNotEquals(self):
|
||||
self.assertNotEqual(DeleteOne({"foo": 42}), DeleteOne({"foo": 23}))
|
||||
self.assertNotEqual(
|
||||
DeleteOne({"foo": 42}, {"locale": "en_US"}), DeleteOne({"foo": 42}, {"locale": "en_GB"})
|
||||
)
|
||||
self.assertNotEqual(
|
||||
DeleteOne({"foo": 42}, {"locale": "en_US"}, {"hint": 1}),
|
||||
DeleteOne({"foo": 42}, {"locale": "en_US"}, {"hint": 2}),
|
||||
)
|
||||
|
||||
def test_DeleteManyEquals(self):
|
||||
self.assertEqual(DeleteMany({"foo": 42}), DeleteMany({"foo": 42}))
|
||||
self.assertEqual(
|
||||
DeleteMany({"foo": 42}, {"locale": "en_US"}),
|
||||
DeleteMany({"foo": 42}, {"locale": "en_US"}),
|
||||
)
|
||||
self.assertEqual(
|
||||
DeleteMany({"foo": 42}, {"locale": "en_US"}, {"hint": 1}),
|
||||
DeleteMany({"foo": 42}, {"locale": "en_US"}, {"hint": 1}),
|
||||
)
|
||||
|
||||
def test_DeleteManyNotEquals(self):
|
||||
self.assertNotEqual(DeleteMany({"foo": 42}), DeleteMany({"foo": 23}))
|
||||
self.assertNotEqual(
|
||||
DeleteMany({"foo": 42}, {"locale": "en_US"}),
|
||||
DeleteMany({"foo": 42}, {"locale": "en_GB"}),
|
||||
)
|
||||
self.assertNotEqual(
|
||||
DeleteMany({"foo": 42}, {"locale": "en_US"}, {"hint": 1}),
|
||||
DeleteMany({"foo": 42}, {"locale": "en_US"}, {"hint": 2}),
|
||||
)
|
||||
|
||||
def test_DeleteOneNotEqualsDeleteMany(self):
|
||||
self.assertNotEqual(DeleteOne({"foo": 42}), DeleteMany({"foo": 42}))
|
||||
|
||||
Loading…
Reference in New Issue
Block a user