Exemple #1
0
def test_set_success():
    client = Client(None)
    client.sock = MockSocket(['STORED\r\n'])
    result = client.set('key', 'value', noreply=False)
    tools.assert_equal(result, True)
    tools.assert_equal(client.sock.closed, False)
    tools.assert_equal(len(client.sock.send_bufs), 1)
Exemple #2
0
def test_get_many_all_found():
    client = Client(None)
    client.sock = MockSocket(
        ['VALUE key1 0 6\r\nvalue1\r\n'
         'VALUE key2 0 6\r\nvalue2\r\nEND\r\n'])
    result = client.get_many(['key1', 'key2'])
    tools.assert_equal(result, {'key1': 'value1', 'key2': 'value2'})
Exemple #3
0
def test_quit():
    client = Client(None)
    client.sock = MockSocket([])
    result = client.quit()
    tools.assert_equal(result, None)
    tools.assert_equal(client.sock, None)
    tools.assert_equal(client.buf, '')
Exemple #4
0
def test_set_success():
    client = Client(None)
    client.sock = MockSocket(['STORED\r\n'])
    result = client.set('key', 'value', noreply=False)
    tools.assert_equal(result, 'STORED')
    tools.assert_equal(client.sock.closed, False)
    tools.assert_equal(len(client.sock.send_bufs), 1)
Exemple #5
0
def test_quit():
    client = Client(None)
    client.sock = MockSocket([])
    result = client.quit()
    tools.assert_equal(result, None)
    tools.assert_equal(client.sock, None)
    tools.assert_equal(client.buf, '')
Exemple #6
0
def test_stats_conversions():
    client = Client(None)
    client.sock = MockSocket([
        # Most stats are converted to int
        'STAT cmd_get 2519\r\n',
        'STAT cmd_set 3099\r\n',

        # Unless they can't be, they remain str
        'STAT libevent 2.0.19-stable\r\n',

        # Some named stats are explicitly converted
        'STAT hash_is_expanding 0\r\n',
        'STAT rusage_user 0.609165\r\n',
        'STAT rusage_system 0.852791\r\n',
        'STAT slab_reassign_running 1\r\n',
        'STAT version 1.4.14\r\n',
        'END\r\n',
    ])
    result = client.stats()
    tools.assert_equal(client.sock.send_bufs, ['stats \r\n'])
    expected = {
        'cmd_get': 2519,
        'cmd_set': 3099,
        'libevent': '2.0.19-stable',
        'hash_is_expanding': False,
        'rusage_user': 0.609165,
        'rusage_system': 0.852791,
        'slab_reassign_running': True,
        'version': '1.4.14',
    }
    tools.assert_equal(result, expected)
Exemple #7
0
def test_stats_conversions():
    client = Client(None)
    client.sock = MockSocket([
        # Most stats are converted to int
        'STAT cmd_get 2519\r\n',
        'STAT cmd_set 3099\r\n',

        # Unless they can't be, they remain str
        'STAT libevent 2.0.19-stable\r\n',

        # Some named stats are explicitly converted
        'STAT hash_is_expanding 0\r\n',
        'STAT rusage_user 0.609165\r\n',
        'STAT rusage_system 0.852791\r\n',
        'STAT slab_reassign_running 1\r\n',
        'STAT version 1.4.14\r\n',
        'END\r\n',
    ])
    result = client.stats()
    tools.assert_equal(client.sock.send_bufs, [
        'stats \r\n'
    ])
    expected = {
        'cmd_get': 2519,
        'cmd_set': 3099,
        'libevent': '2.0.19-stable',
        'hash_is_expanding': False,
        'rusage_user': 0.609165,
        'rusage_system': 0.852791,
        'slab_reassign_running': True,
        'version': '1.4.14',
    }
    tools.assert_equal(result, expected)
Exemple #8
0
def test_set_server_error():
    client = Client(None)
    client.sock = MockSocket(['SERVER_ERROR some message\r\n'])

    def _set():
        client.set('key', 'value', noreply=False)

    tools.assert_raises(MemcacheServerError, _set)
Exemple #9
0
def test_get_error():
    client = Client(None)
    client.sock = MockSocket(['ERROR\r\n'])

    def _get():
        client.get('key')

    tools.assert_raises(MemcacheUnknownCommandError, _get)
Exemple #10
0
def test_set_error():
    client = Client(None)
    client.sock = MockSocket(['ERROR\r\n'])

    def _set():
        client.set('key', 'value', noreply=False)

    tools.assert_raises(MemcacheUnknownCommandError, _set)
Exemple #11
0
def test_set_unicode_value():
    client = Client(None)
    client.sock = MockSocket([''])

    def _set():
        client.set('key', u'\u0FFF', noreply=False)

    tools.assert_raises(MemcacheIllegalInputError, _set)
Exemple #12
0
def test_get_unicode_key():
    client = Client(None)
    client.sock = MockSocket([''])

    def _get():
        client.get(u'\u0FFF')

    tools.assert_raises(MemcacheIllegalInputError, _get)
Exemple #13
0
def test_get_unknown_error():
    client = Client(None)
    client.sock = MockSocket(['foobarbaz\r\n'])

    def _get():
        client.get('key')

    tools.assert_raises(MemcacheUnknownError, _get)
Exemple #14
0
def test_get_error():
    client = Client(None)
    client.sock = MockSocket(['ERROR\r\n'])

    def _get():
        client.get('key')

    tools.assert_raises(MemcacheUnknownCommandError, _get)
Exemple #15
0
def test_set_unicode_value():
    client = Client(None)
    client.sock = MockSocket([''])

    def _set():
        client.set('key', u'\u0FFF', noreply=False)

    tools.assert_raises(MemcacheIllegalInputError, _set)
Exemple #16
0
def test_stats_with_args():
    client = Client(None)
    client.sock = MockSocket(['STAT fake_stats 1\r\n', 'END\r\n'])
    result = client.stats('some_arg')
    tools.assert_equal(client.sock.send_bufs, [
        'stats some_arg\r\n'
    ])
    tools.assert_equal(result, {'fake_stats': 1})
Exemple #17
0
def test_get_unicode_key():
    client = Client(None)
    client.sock = MockSocket([''])

    def _get():
        client.get(u'\u0FFF')

    tools.assert_raises(MemcacheIllegalInputError, _get)
Exemple #18
0
def test_set_unknown_error():
    client = Client(None)
    client.sock = MockSocket(['foobarbaz\r\n'])

    def _set():
        client.set('key', 'value', noreply=False)

    tools.assert_raises(MemcacheUnknownError, _set)
Exemple #19
0
def test_set_unknown_error():
    client = Client(None)
    client.sock = MockSocket(['foobarbaz\r\n'])

    def _set():
        client.set('key', 'value', noreply=False)

    tools.assert_raises(MemcacheUnknownError, _set)
Exemple #20
0
def test_get_unknown_error():
    client = Client(None)
    client.sock = MockSocket(['foobarbaz\r\n'])

    def _get():
        client.get('key')

    tools.assert_raises(MemcacheUnknownError, _get)
Exemple #21
0
def test_set_server_error():
    client = Client(None)
    client.sock = MockSocket(['SERVER_ERROR some message\r\n'])

    def _set():
        client.set('key', 'value', noreply=False)

    tools.assert_raises(MemcacheServerError, _set)
Exemple #22
0
def test_set_error():
    client = Client(None)
    client.sock = MockSocket(['ERROR\r\n'])

    def _set():
        client.set('key', 'value', noreply=False)

    tools.assert_raises(MemcacheUnknownCommandError, _set)
Exemple #23
0
def test_serialization():
    def _ser(key, value):
        return json.dumps(value), 0

    client = Client(None, serializer=_ser)
    client.sock = MockSocket(['STORED\r\n'])
    client.set('key', {'a': 'b', 'c': 'd'})
    tools.assert_equal(client.sock.send_bufs,
                       ['set key 0 0 20 noreply\r\n{"a": "b", "c": "d"}\r\n'])
Exemple #24
0
def test_set_exception():
    client = Client(None)
    client.sock = MockSocket([Exception('fail')])

    def _set():
        client.set('key', 'value', noreply=False)

    tools.assert_raises(Exception, _set)
    tools.assert_equal(client.sock, None)
    tools.assert_equal(client.buf, '')
Exemple #25
0
def test_delete_exception():
    client = Client(None)
    client.sock = MockSocket([Exception('fail')])

    def _delete():
        client.delete('key', noreply=False)

    tools.assert_raises(Exception, _delete)
    tools.assert_equal(client.sock, None)
    tools.assert_equal(client.buf, '')
Exemple #26
0
def test_serialization():
    def _ser(value):
        return json.dumps(value), 0

    client = Client(None, serializer=_ser)
    client.sock = MockSocket(['STORED\r\n'])
    client.set('key', {'a': 'b', 'c': 'd'})
    tools.assert_equal(client.sock.send_bufs, [
        'set key 0 0 20 noreply\r\n{"a": "b", "c": "d"}\r\n'
    ])
Exemple #27
0
def test_set_exception():
    client = Client(None)
    client.sock = MockSocket([Exception('fail')])

    def _set():
        client.set('key', 'value', noreply=False)

    tools.assert_raises(Exception, _set)
    tools.assert_equal(client.sock, None)
    tools.assert_equal(client.buf, '')
Exemple #28
0
def test_incr_exception():
    client = Client(None)
    client.sock = MockSocket([Exception('fail')])

    def _incr():
        client.incr('key', 1)

    tools.assert_raises(Exception, _incr)
    tools.assert_equal(client.sock, None)
    tools.assert_equal(client.buf, '')
Exemple #29
0
def test_set_many_exception():
    client = Client(None)
    client.sock = MockSocket(['STORED\r\n', Exception('fail')])

    def _set():
        client.set_many({'key': 'value', 'other': 'value'}, noreply=False)

    tools.assert_raises(Exception, _set)
    tools.assert_equal(client.sock, None)
    tools.assert_equal(client.buf, '')
Exemple #30
0
def test_set_many_exception():
    client = Client(None)
    client.sock = MockSocket(['STORED\r\n', Exception('fail')])

    def _set():
        client.set_many({'key' : 'value', 'other' : 'value'}, noreply=False)

    tools.assert_raises(Exception, _set)
    tools.assert_equal(client.sock, None)
    tools.assert_equal(client.buf, '')
Exemple #31
0
def test_delete_exception():
    client = Client(None)
    client.sock = MockSocket([Exception('fail')])

    def _delete():
        client.delete('key', noreply=False)

    tools.assert_raises(Exception, _delete)
    tools.assert_equal(client.sock, None)
    tools.assert_equal(client.buf, '')
Exemple #32
0
def test_incr_exception():
    client = Client(None)
    client.sock = MockSocket([Exception('fail')])

    def _incr():
        client.incr('key', 1)

    tools.assert_raises(Exception, _incr)
    tools.assert_equal(client.sock, None)
    tools.assert_equal(client.buf, '')
Exemple #33
0
def test_cr_nl_boundaries():
    client = Client(None)
    client.sock = MockSocket(['VALUE key1 0 6\r',
                              '\nvalue1\r\n'
                              'VALUE key2 0 6\r\n',
                              'value2\r\n'
                              'END\r\n'])
    result = client.get_many(['key1', 'key2'])
    tools.assert_equals(result, {'key1': 'value1', 'key2': 'value2'})

    client.sock = MockSocket(['VALUE key1 0 6\r\n',
                              'value1\r',
                              '\nVALUE key2 0 6\r\n',
                              'value2\r\n',
                              'END\r\n'])
    result = client.get_many(['key1', 'key2'])
    tools.assert_equals(result, {'key1': 'value1', 'key2': 'value2'})

    client.sock = MockSocket(['VALUE key1 0 6\r\n',
                              'value1\r\n',
                              'VALUE key2 0 6\r',
                              '\nvalue2\r\n',
                              'END\r\n'])
    result = client.get_many(['key1', 'key2'])
    tools.assert_equals(result, {'key1': 'value1', 'key2': 'value2'})


    client.sock = MockSocket(['VALUE key1 0 6\r\n',
                              'value1\r\n',
                              'VALUE key2 0 6\r\n',
                              'value2\r',
                              '\nEND\r\n'])
    result = client.get_many(['key1', 'key2'])
    tools.assert_equals(result, {'key1': 'value1', 'key2': 'value2'})

    client.sock = MockSocket(['VALUE key1 0 6\r\n',
                              'value1\r\n',
                              'VALUE key2 0 6\r\n',
                              'value2\r\n',
                              'END\r',
                              '\n'])
    result = client.get_many(['key1', 'key2'])
    tools.assert_equals(result, {'key1': 'value1', 'key2': 'value2'})

    client.sock = MockSocket(['VALUE key1 0 6\r',
                              '\nvalue1\r',
                              '\nVALUE key2 0 6\r',
                              '\nvalue2\r',
                              '\nEND\r',
                              '\n'])
    result = client.get_many(['key1', 'key2'])
    tools.assert_equals(result, {'key1': 'value1', 'key2': 'value2'})
Exemple #34
0
def test_cr_nl_boundaries():
    client = Client(None)
    client.sock = MockSocket([
        'VALUE key1 0 6\r', '\nvalue1\r\n'
        'VALUE key2 0 6\r\n', 'value2\r\n'
        'END\r\n'
    ])
    result = client.get_many(['key1', 'key2'])
    tools.assert_equals(result, {'key1': 'value1', 'key2': 'value2'})

    client.sock = MockSocket([
        'VALUE key1 0 6\r\n', 'value1\r', '\nVALUE key2 0 6\r\n', 'value2\r\n',
        'END\r\n'
    ])
    result = client.get_many(['key1', 'key2'])
    tools.assert_equals(result, {'key1': 'value1', 'key2': 'value2'})

    client.sock = MockSocket([
        'VALUE key1 0 6\r\n', 'value1\r\n', 'VALUE key2 0 6\r', '\nvalue2\r\n',
        'END\r\n'
    ])
    result = client.get_many(['key1', 'key2'])
    tools.assert_equals(result, {'key1': 'value1', 'key2': 'value2'})

    client.sock = MockSocket([
        'VALUE key1 0 6\r\n', 'value1\r\n', 'VALUE key2 0 6\r\n', 'value2\r',
        '\nEND\r\n'
    ])
    result = client.get_many(['key1', 'key2'])
    tools.assert_equals(result, {'key1': 'value1', 'key2': 'value2'})

    client.sock = MockSocket([
        'VALUE key1 0 6\r\n', 'value1\r\n', 'VALUE key2 0 6\r\n', 'value2\r\n',
        'END\r', '\n'
    ])
    result = client.get_many(['key1', 'key2'])
    tools.assert_equals(result, {'key1': 'value1', 'key2': 'value2'})

    client.sock = MockSocket([
        'VALUE key1 0 6\r', '\nvalue1\r', '\nVALUE key2 0 6\r', '\nvalue2\r',
        '\nEND\r', '\n'
    ])
    result = client.get_many(['key1', 'key2'])
    tools.assert_equals(result, {'key1': 'value1', 'key2': 'value2'})
Exemple #35
0
def test_touch_not_found():
    client = Client(None)
    client.sock = MockSocket(['NOT_FOUND\r\n'])
    result = client.touch('key', noreply=False)
    tools.assert_equal(result, False)
Exemple #36
0
def test_flush_all():
    client = Client(None)
    client.sock = MockSocket(['OK\r\n'])
    result = client.flush_all(noreply=False)
    tools.assert_equal(result, True)
Exemple #37
0
 def make_client(self, values):
     client = Client(None)
     client.sock = MockSocket(list(values))
     return client
Exemple #38
0
def test_set_noreply():
    client = Client(None)
    client.sock = MockSocket([])
    result = client.set('key', 'value', noreply=True)
    tools.assert_equal(result, None)
Exemple #39
0
def test_delete_found():
    client = Client(None)
    client.sock = MockSocket(['DELETED\r\n'])
    result = client.delete('key', noreply=False)
    tools.assert_equal(result, 'DELETED')
Exemple #40
0
def test_incr_not_found():
    client = Client(None)
    client.sock = MockSocket(['NOT_FOUND\r\n'])
    result = client.incr('key', 1, noreply=False)
    tools.assert_equal(result, 'NOT_FOUND')
Exemple #41
0
def test_incr_noreply():
    client = Client(None)
    client.sock = MockSocket([])
    result = client.incr('key', 1, noreply=True)
    tools.assert_equal(result, None)
Exemple #42
0
def test_delete_noreply():
    client = Client(None)
    client.sock = MockSocket([])
    result = client.delete('key', noreply=True)
    tools.assert_equal(result, True)
Exemple #43
0
def test_delete_found():
    client = Client(None)
    client.sock = MockSocket(['DELETED\r\n'])
    result = client.delete('key', noreply=False)
    tools.assert_equal(result, True)
Exemple #44
0
def test_get_recv_chunks():
    client = Client(None)
    client.sock = MockSocket(
        ['VALUE key', ' 0 5\r', '\nvalue', '\r\n', 'END', '\r', '\n'])
    result = client.get('key')
    tools.assert_equal(result, 'value')
Exemple #45
0
def test_gets_many_some_found():
    client = Client(None)
    client.sock = MockSocket(['VALUE key1 0 6 11\r\nvalue1\r\nEND\r\n'])
    result = client.gets_many(['key1', 'key2'])
    tools.assert_equal(result, {'key1': ('value1', '11')})
Exemple #46
0
def test_gets_many_none_found():
    client = Client(None)
    client.sock = MockSocket(['END\r\n'])
    result = client.gets_many(['key1', 'key2'])
    tools.assert_equal(result, {})
Exemple #47
0
def test_touch_found():
    client = Client(None)
    client.sock = MockSocket(['TOUCHED\r\n'])
    result = client.touch('key', noreply=False)
    tools.assert_equal(result, 'TOUCHED')
Exemple #48
0
def test_touch_found():
    client = Client(None)
    client.sock = MockSocket(['TOUCHED\r\n'])
    result = client.touch('key', noreply=False)
    tools.assert_equal(result, True)
Exemple #49
0
def test_decr_found():
    client = Client(None)
    client.sock = MockSocket(['1\r\n'])
    result = client.decr('key', 1, noreply=False)
    tools.assert_equal(result, 1)
Exemple #50
0
 def make_client_pool(self, hostname, mock_socket_values, serializer=None):
     mock_client = Client(hostname, serializer=serializer)
     mock_client.sock = MockSocket(mock_socket_values)
     client = PooledClient(hostname, serializer=serializer)
     client.client_pool = pool.ObjectPool(lambda: mock_client)
     return mock_client
Exemple #51
0
def test_stats_with_args():
    client = Client(None)
    client.sock = MockSocket(['STAT fake_stats 1\r\n', 'END\r\n'])
    result = client.stats('some_arg')
    tools.assert_equal(client.sock.send_bufs, ['stats some_arg\r\n'])
    tools.assert_equal(result, {'fake_stats': 1})
Exemple #52
0
def test_incr_noreply():
    client = Client(None)
    client.sock = MockSocket([])
    result = client.incr('key', 1, noreply=True)
    tools.assert_equal(result, None)
Exemple #53
0
def test_delete_noreply():
    client = Client(None)
    client.sock = MockSocket([])
    result = client.delete('key', noreply=True)
    tools.assert_equal(result, None)
 def make_client(self, mock_socket_values, serializer=None):
     mock_client = Client(None, serializer=serializer, key_prefix=b'xyz:')
     mock_client.sock = MockSocket(list(mock_socket_values))
     client = PooledClient(None, serializer=serializer, key_prefix=b'xyz:')
     client.client_pool = pool.ObjectPool(lambda: mock_client)
     return client
Exemple #55
0
def test_get_recv_chunks():
    client = Client(None)
    client.sock = MockSocket(['VALUE key', ' 0 5\r', '\nvalue', '\r\n',
                              'END', '\r', '\n'])
    result = client.get('key')
    tools.assert_equal(result, 'value')
Exemple #56
0
 def make_client(self, mock_socket_values, serializer=None):
     mock_client = Client(None, serializer=serializer, key_prefix=b'xyz:')
     mock_client.sock = MockSocket(list(mock_socket_values))
     client = PooledClient(None, serializer=serializer, key_prefix=b'xyz:')
     client.client_pool = pool.ObjectPool(lambda: mock_client)
     return client
 def make_client(self, mock_socket_values, serializer=None):
     client = Client(None, serializer=serializer)
     client.sock = MockSocket(list(mock_socket_values))
     return client
Exemple #58
0
def test_flush_all():
    client = Client(None)
    client.sock = MockSocket(['OK\r\n'])
    result = client.flush_all(noreply=False)
    tools.assert_equal(result, 'OK')
Exemple #59
0
 def make_client(self, mock_socket_values, serializer=None):
     client = Client(None, serializer=serializer)
     client.sock = MockSocket(list(mock_socket_values))
     return client
Exemple #60
0
def test_decr_found():
    client = Client(None)
    client.sock = MockSocket(['1\r\n'])
    result = client.decr('key', 1, noreply=False)
    tools.assert_equal(result, 1)