Пример #1
0
    def test_set_basic(self):
        commands = [
            EventualCommand('set', ['foo', 1], {'timeout': 1}),
            EventualCommand('set', ['bar', 2], {'timeout': 1}),
            EventualCommand('set', ['baz', 3], {'timeout': 2}),
        ]

        items = self.get_grouped_results(commands, 2)

        new_command, grouped_commands = items[0]
        self.assertEqual(len(grouped_commands), 2)
        self.assertEqual(grouped_commands, commands[0:2])
        self.assertEqual(new_command.get_name(), 'set_multi')
        self.assertEqual(new_command.get_args(), ({
            'foo': 1,
            'bar': 2,
        }, ))
        self.assertEqual(new_command.get_kwargs(), {
            'timeout': 1,
        })

        new_command, grouped_commands = items[1]
        self.assertEqual(len(grouped_commands), 1)
        self.assertEqual(grouped_commands, commands[2:3])
        self.assertEqual(new_command.get_name(), 'set')
        self.assertEqual(new_command.get_args(), ['baz', 3])
        self.assertEqual(new_command.get_kwargs(), {
            'timeout': 2,
        })
Пример #2
0
    def test_get_basic(self):
        commands = [
            EventualCommand('get', ['foo'], {'key_prefix': 1}),
            EventualCommand('get', ['bar'], {'key_prefix': 1}),
            EventualCommand('get', ['baz'], {'key_prefix': 2}),
        ]
        items = self.get_grouped_results(commands, 2)

        new_command, grouped_commands = items[0]
        self.assertEqual(len(grouped_commands), 2)
        self.assertEqual(grouped_commands, commands[0:2])
        self.assertEqual(new_command.get_name(), 'get_multi')
        self.assertEqual(new_command.get_args(), (['foo', 'bar'], ))
        self.assertEqual(new_command.get_kwargs(), {
            'key_prefix': 1,
        })

        new_command, grouped_commands = items[1]
        self.assertEqual(len(grouped_commands), 1)
        self.assertEqual(grouped_commands, commands[2:3])
        self.assertEqual(new_command.get_name(), 'get')
        self.assertEqual(new_command.get_args(), ['baz'])
        self.assertEqual(new_command.get_kwargs(), {
            'key_prefix': 2,
        })
Пример #3
0
    def test_evaled_repr(self):
        ec = EventualCommand('foo')
        ec('bar', baz='foo')
        ec.resolve_as('biz')

        if PY2:
            self.assertEqual(repr(ec), "u'biz'")
        else:
            self.assertEqual(repr(ec), "'biz'")
Пример #4
0
    def test_evaled_repr(self):
        ec = EventualCommand('foo')
        ec('bar', baz='foo')
        ec.resolve_as('biz')

        if PY2:
            self.assertEqual(repr(ec), "u'biz'")
        else:
            self.assertEqual(repr(ec), "'biz'")
def grouped_command(commands):
    """
    Given a list of commands (which are assumed groupable), return
    a new command which is a batch (multi) command.

    For ``set`` commands the outcome will be::

        set_multi({key: value}, **kwargs)

    For ``get`` and ``delete`` commands, the outcome will be::

        get_multi(list_of_keys, **kwargs)

    (Or respectively ``delete_multi``)
    """
    base = commands[0]
    name = base.get_name()
    multi_command = EventualCommand('%s_multi' % name)
    if name in ('get', 'delete'):
        args = [c.get_args()[0] for c in commands]
    elif base.get_name() == 'set':
        args = dict(c.get_args()[0:2] for c in commands)
    else:
        raise ValueError('Command not supported: %r' % (base.get_name(), ))

    multi_command(args, *grouped_args_for_command(base), **base.get_kwargs())

    return multi_command
Пример #6
0
    def test_unevaled_repr(self):
        ec = EventualCommand('foo')
        ec('bar', baz='foo')

        self.assertEquals(
            repr(ec),
            u"<EventualCommand: foo args=('bar',) kwargs={'baz': 'foo'}>")
Пример #7
0
    def test_unevaled_repr(self):
        ec = EventualCommand('foo')
        ec('bar', baz='foo')

        if PY2:
            self.assertEqual(
                repr(ec),
                "<EventualCommand: foo args=(u'bar',) kwargs={'baz': u'foo'}>")
        else:
            self.assertEqual(
                repr(ec),
                "<EventualCommand: foo args=('bar',) kwargs={'baz': 'foo'}>")
Пример #8
0
    def test_coersion(self):
        ec = EventualCommand('foo')()
        ec.resolve_as('5')

        self.assertEquals(int(ec), 5)
Пример #9
0
    def test_evaled_repr(self):
        ec = EventualCommand('foo')
        ec('bar', baz='foo')
        ec.resolve_as('biz')

        self.assertEquals(repr(ec), u"'biz'")
Пример #10
0
 def test_ungroupable_delete_commands(self):
     command = EventualCommand('delete', ['foo'], {'timeout': 1})
     other = EventualCommand('delete', ['bar'], {'timeout': 2})
     self.assertEqual(can_group_commands(command, other), False)
Пример #11
0
    def test_isinstance_check(self):
        ec = EventualCommand('foo')
        ec.resolve_as(['foo', 'bar'])

        self.assertEquals(isinstance(ec, list), True)
Пример #12
0
 def test_command_error_returns_as_error(self):
     ec = EventualCommand('foo')
     ec.resolve_as(CommandError([ValueError('test')]))
     self.assertEquals(ec.is_error, True)
Пример #13
0
    def test_evaled_unicode(self):
        ec = EventualCommand('foo')
        ec.resolve_as('biz')

        self.assertEquals(unicode(ec), u'biz')
Пример #14
0
    def test_evaled_repr(self):
        ec = EventualCommand('foo')
        ec('bar', baz='foo')
        ec.resolve_as('biz')

        self.assertEquals(repr(ec), u"'biz'")
Пример #15
0
 def test_groupable_set_commands(self):
     command = EventualCommand('set', ['foo', 1])
     other = EventualCommand('set', ['bar', 2])
     self.assertEqual(can_group_commands(command, other), True)
Пример #16
0
 def test_ungroupable_set_commands(self):
     command = EventualCommand('set', ['foo', 1], {'timeout': 1})
     other = EventualCommand('set', ['bar', 2], {'timeout': 2})
     self.assertEqual(can_group_commands(command, other), False)
Пример #17
0
 def test_delete_excludes_first_arg(self):
     command = EventualCommand('delete', ['foo', 1])
     result = grouped_args_for_command(command)
     self.assertEqual(result, [1])
Пример #18
0
 def test_set_excludes_first_two_args(self):
     command = EventualCommand('set', ['foo', 1, 'biz'])
     result = grouped_args_for_command(command)
     self.assertEqual(result, ['biz'])
Пример #19
0
    def test_nonzero(self):
        ec = EventualCommand('foo')()
        ec.resolve_as(None)

        self.assertEquals(int(ec or 0), 0)
Пример #20
0
    def test_evaled_unicode(self):
        ec = EventualCommand('foo')
        ec.resolve_as('biz')

        self.assertEquals(unicode(ec), u'biz')
Пример #21
0
    def test_coersion(self):
        ec = EventualCommand('foo')()
        ec.resolve_as('5')

        self.assertEqual(int(ec), 5)
Пример #22
0
 def test_other_error_does_not_return_as_error(self):
     ec = EventualCommand('foo')
     ec.resolve_as(ValueError('test'))
     self.assertEquals(ec.is_error, False)
Пример #23
0
    def test_evaled_unicode(self):
        ec = EventualCommand('foo')
        ec.resolve_as('biz')

        self.assertEqual('%s' % ec, 'biz')
Пример #24
0
 def test_other_error_does_not_return_as_error(self):
     ec = EventualCommand('foo')
     ec.resolve_as(ValueError('test'))
     self.assertEqual(ec.is_error, False)
Пример #25
0
 def test_groupable_delete_commands(self):
     command = EventualCommand('delete', ['foo'])
     other = EventualCommand('delete', ['bar'])
     self.assertEqual(can_group_commands(command, other), True)
Пример #26
0
    def test_nonzero(self):
        ec = EventualCommand('foo')()
        ec.resolve_as(None)

        self.assertEqual(int(ec or 0), 0)
Пример #27
0
    def test_evaled_unicode(self):
        ec = EventualCommand('foo')
        ec.resolve_as('biz')

        self.assertEqual('%s' % ec, 'biz')
Пример #28
0
 def test_command_error_returns_as_error(self):
     ec = EventualCommand('foo')
     ec.resolve_as(CommandError([ValueError('test')]))
     self.assertEqual(ec.is_error, True)
Пример #29
0
Файл: map.py Проект: tupy/nydus
 def __getattr__(self, attr):
     command = EventualCommand(attr)
     self._commands.append(command)
     return command
Пример #30
0
    def test_isinstance_check(self):
        ec = EventualCommand('foo')
        ec.resolve_as(['foo', 'bar'])

        self.assertEqual(isinstance(ec, list), True)
Пример #31
0
 def test_groupable_get_commands(self):
     command = EventualCommand('get', ['foo'])
     other = EventualCommand('get', ['bar'])
     self.assertEquals(can_group_commands(command, other), True)