Fixed return value from delete command. #190
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The
delete()
command currently returns1
if the response from the server is either'DELETED'
or'NOT_FOUND'
. This differs from other implementations, e.g.pymemcache
andpylibmc
, and doesn't seem to make sense given that these are the only two documented return types from the protocol for the delete command.It seems that
delete()
was changed to explicitly consider both responses as successful way back in 2010, but that change only seemed to double down on the behavior that was being reported in the issue. See https://bugs.launchpad.net/python-memcached/+bug/471727. The concern was avoiding breaking backward compatibility.It was possible to work around this by calling
_deletetouch()
and passing in theexpected
responses, but that was broken by the change to removetime
in ab668ed.To avoid issues with backward compatibility, I've added astrict
argument which can be enabled to return a non-successful response fromdelete()
for'NOT_FOUND'
.Further, making the change to interpret
'NOT_FOUND'
as0
doesn't cause any test failures. I've added an assertion to check deletion of a non-existent keyusing both strict and non-strict.Fixes #170.