diff --git a/brukva/client.py b/brukva/client.py index 5890df5..10bde08 100644 --- a/brukva/client.py +++ b/brukva/client.py @@ -270,6 +270,9 @@ def get(self, key, callbacks=None): def mget(self, keys, callbacks=None): self.execute_command('MGET', callbacks, *keys) + def getset(self, key, value, callbacks=None): + self.execute_command('GETSET', callbacks, key, value) + def exists(self, key, callbacks=None): self.execute_command('EXISTS', callbacks, key) diff --git a/tests/server_commands.py b/tests/server_commands.py index 7f58d26..5eb663b 100644 --- a/tests/server_commands.py +++ b/tests/server_commands.py @@ -111,6 +111,12 @@ def test_mset_mget(self): self.client.mget(['a', 'b'], [self.expect(['1', '2']), self.finish]) self.start() + def test_getset(self): + self.client.set('a', 1, self.expect(True)) + self.client.getset('a', 2, self.expect('1')) + self.client.get('a', [self.expect('2'), self.finish]) + self.start() + def test_hash(self): self.client.hmset('foo', {'a': 1, 'b': 2}, self.expect(True)) self.client.hgetall('foo', self.expect({'a': '1', 'b': '2'}))