nonprims iterate over all prims

This commit is contained in:
Kishan Karunaratne
2014-07-22 12:26:24 -07:00
parent 1692c375f7
commit 4ef6739426
2 changed files with 22 additions and 18 deletions

View File

@@ -119,18 +119,21 @@ def get_sample(datatype):
return SAMPLE_DATA[datatype]
def get_nonprim_sample(non_prim_type):
def get_nonprim_sample(non_prim_type, datatype):
"""
Helper method to access created sample data for non-primitives
"""
if non_prim_type == 'list':
return ['text', 'text']
return [get_sample(datatype), get_sample(datatype)]
elif non_prim_type == 'set':
return sortedset(['text'])
return sortedset([get_sample(datatype)])
elif non_prim_type == 'map':
return {'text': 'text'}
if datatype == 'blob':
return {get_sample('ascii'): get_sample(datatype)}
else:
return {get_sample(datatype): get_sample(datatype)}
elif non_prim_type == 'tuple':
return ('text', 'text')
return (get_sample(datatype),)
else:
raise Exception('Missing handling of non-primitive type {0}.'.format(non_prim_type))

View File

@@ -17,11 +17,6 @@ try:
except ImportError:
import unittest # noqa
# try:
# from blist import sortedset
# except ImportError:
# sortedset = set # noqa
import logging
log = logging.getLogger(__name__)
@@ -310,11 +305,14 @@ class TypeTests(unittest.TestCase):
# create UDT
alpha_type_list = []
start_index = ord('a')
for i, datatype in enumerate(DATA_TYPE_NON_PRIMITIVE_NAMES):
if datatype == "map":
alpha_type_list.append("{0} {1}<text, text>".format(chr(start_index + i), datatype))
else:
alpha_type_list.append("{0} {1}<text>".format(chr(start_index + i), datatype))
for i, nonprim_datatype in enumerate(DATA_TYPE_NON_PRIMITIVE_NAMES):
for j, datatype in enumerate(DATA_TYPE_PRIMITIVES):
if nonprim_datatype == "map":
alpha_type_list.append("{0}_{1} {2}<{3}, {3}>".format(chr(start_index + i), chr(start_index + j),
nonprim_datatype, datatype))
else:
alpha_type_list.append("{0}_{1} {2}<{3}>".format(chr(start_index + i), chr(start_index + j),
nonprim_datatype, datatype))
s.execute("""
CREATE TYPE alldatatypes ({0})
@@ -326,14 +324,17 @@ class TypeTests(unittest.TestCase):
# register UDT
alphabet_list = []
for i in range(ord('a'), ord('a')+len(DATA_TYPE_NON_PRIMITIVE_NAMES)):
alphabet_list.append('{}'.format(chr(i)))
for j in range(ord('a'), ord('a')+len(DATA_TYPE_PRIMITIVES)):
alphabet_list.append('{0}_{1}'.format(chr(i), chr(j)))
Alldatatypes = namedtuple("alldatatypes", alphabet_list)
c.register_user_type("test_nonprimitive_datatypes", "alldatatypes", Alldatatypes)
# insert UDT data
params = []
for datatype in DATA_TYPE_NON_PRIMITIVE_NAMES:
params.append((get_nonprim_sample(datatype)))
for nonprim_datatype in DATA_TYPE_NON_PRIMITIVE_NAMES:
for datatype in DATA_TYPE_PRIMITIVES:
params.append((get_nonprim_sample(nonprim_datatype, datatype)))
insert = s.prepare("INSERT INTO mytable (a, b) VALUES (?, ?)")
s.execute(insert, (0, Alldatatypes(*params)))