Example #1
0
 def test_binary_set(self):
     """ Store and retrieve a binary set """
     self.make_table()
     item = {
         'id': 'a',
         'datas': set([Binary('a'), Binary('b')]),
     }
     self.dynamo.put_item('foobar', item)
     ret = list(self.dynamo.scan('foobar'))[0]
     self.assertEqual(ret, item)
Example #2
0
 def test_binary_set(self):
     """Store and retrieve a binary set"""
     self.make_table()
     item = {
         "id": "a",
         "datas": set([Binary("a"), Binary("b")]),
     }
     self.dynamo.put_item("foobar", item)
     ret = list(self.dynamo.scan("foobar"))[0]
     self.assertEqual(ret, item)
Example #3
0
File: util.py Project: oranie/dql
def resolve(val):
    """ Convert a pyparsing value to the python type """
    name = val.getName()
    if name == 'number':
        try:
            return int(val.number)
        except ValueError:
            return Decimal(val.number)
    elif name == 'str':
        return unwrap(val.str)
    elif name == 'null':
        return None
    elif name == 'binary':
        return Binary(val.binary[2:-1])
    elif name == 'set':
        if val.set == '()':
            return set()
        return set([resolve(v) for v in val.set])
    elif name == 'bool':
        return val.bool == 'TRUE'
    elif name == 'list':
        return [resolve(v) for v in val.list]
    elif name == 'dict':
        dict_val = {}
        for k, v in val.dict:
            dict_val[resolve(k)] = resolve(v)
        return dict_val
    elif name == 'ts_function':
        return dt_to_ts(eval_function(val.ts_function))
    elif name == 'ts_expression':
        return dt_to_ts(eval_expression(val))
    else:
        raise SyntaxError("Unable to resolve value '%s'" % val)
Example #4
0
File: util.py Project: Braniton/dql
def resolve(val):
    """ Convert a pyparsing value to the python type """
    name = val.getName()
    if name == "number":
        try:
            return int(val.number)
        except ValueError:
            return Decimal(val.number)
    elif name == "str":
        return unwrap(val.str)
    elif name == "null":
        return None
    elif name == "binary":
        return Binary(val.binary[2:-1])
    elif name == "set":
        if val.set == "()":
            return set()
        return set([resolve(v) for v in val.set])
    elif name == "bool":
        return val.bool == "TRUE"
    elif name == "list":
        return [resolve(v) for v in val.list]
    elif name == "dict":
        dict_val = {}
        for k, v in val.dict:
            dict_val[resolve(k)] = resolve(v)
        return dict_val
    elif name == "ts_function":
        return dt_to_ts(eval_function(val.ts_function))
    elif name == "ts_expression":
        return dt_to_ts(eval_expression(val))
    else:
        raise SyntaxError("Unable to resolve value '%s'" % val)
Example #5
0
 def test_binary_bytes(self):
     """Store and retrieve bytes as a binary"""
     self.make_table()
     data = {"a": 1, "b": 2}
     self.dynamo.put_item("foobar", {"id": "a", "data": Binary(dumps(data))})
     item = list(self.dynamo.scan("foobar"))[0]
     self.assertEqual(loads(item["data"].value), data)
Example #6
0
 def test_binary_bytes(self):
     """ Store and retrieve bytes as a binary """
     self.make_table()
     data = {'a': 1, 'b': 2}
     self.dynamo.put_item('foobar', {'id': 'a',
                                     'data': Binary(dumps(data))})
     item = list(self.dynamo.scan('foobar'))[0]
     self.assertEqual(loads(item['data'].value), data)
Example #7
0
 def test_binary_force_string(self):
     """ Binary must wrap a string type """
     with self.assertRaises(TypeError):
         Binary(2)
Example #8
0
 def test_binary_converts_unicode(self):
     """ Binary will convert unicode to bytes """
     b = Binary('a')
     self.assertTrue(isinstance(b.value, six.binary_type))
Example #9
0
 def test_binary_repr(self):
     """ Binary repr should wrap the contained value """
     self.assertEqual(repr(Binary('a')), 'Binary(%s)' % b'a')
Example #10
0
 def test_binary_equal(self):
     """ Binary should eq other Binaries and also raw bytestrings """
     self.assertEqual(Binary('a'), Binary('a'))
     self.assertEqual(Binary('a'), b'a')
     self.assertFalse(Binary('a') != Binary('a'))
Example #11
0
 def test_binary(self):
     """ Store and retrieve a binary """
     self.make_table()
     self.dynamo.put_item('foobar', {'id': 'a', 'data': Binary('abc')})
     item = list(self.dynamo.scan('foobar'))[0]
     self.assertEqual(item['data'].value, b'abc')
Example #12
0
 def test_insert_binary(self):
     """ INSERT can insert binary values """
     self.query("CREATE TABLE foobar (id BINARY HASH KEY)")
     self.query("INSERT INTO foobar (id) VALUES (b'a')")
     items = list(self.dynamo.scan('foobar'))
     self.assertEqual(items, [{'id': Binary(b'a')}])
Example #13
0
 def ddb_dump(self, value):
     return Binary(value)
Example #14
0
 def test_binary_converts_unicode(self):
     """Binary will convert unicode to bytes"""
     b = Binary("a")
     self.assertTrue(isinstance(b.value, bytes))
Example #15
0
 def test_binary_repr(self):
     """Binary repr should wrap the contained value"""
     self.assertEqual(repr(Binary("a")), "Binary(%r)" % b"a")
Example #16
0
 def test_binary(self):
     """Store and retrieve a binary"""
     self.make_table()
     self.dynamo.put_item("foobar", {"id": "a", "data": Binary("abc")})
     item = list(self.dynamo.scan("foobar"))[0]
     self.assertEqual(item["data"].value, b"abc")