Skip to content

Commit 56c526d

Browse files
author
Fede A
committed
uses lists instead dict and fixes python 2 compatibility
1 parent c74e612 commit 56c526d

File tree

1 file changed

+16
-30
lines changed

1 file changed

+16
-30
lines changed

tests/tests_v2.py

Lines changed: 16 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -60,13 +60,6 @@
6060
# ------------------------------------------------------------------------------
6161

6262
# Custom writeObject parsing classes
63-
64-
def assign_dict(fields, values):
65-
ret = dict()
66-
for i, v in enumerate(fields):
67-
ret[v] = values[i]
68-
return ret
69-
7063
class CustomWriterInstance(javaobj.beans.JavaInstance):
7164
def __init__(self):
7265
javaobj.beans.JavaInstance.__init__(self)
@@ -84,7 +77,7 @@ def load_from_instance(self):
8477
'>i', BytesIO(raw_data[0].data).read(4))[0]
8578
custom_obj = raw_data[1]
8679
values = [int_not_in_fields, custom_obj]
87-
self.field_data = assign_dict(fields, values)
80+
self.field_data = dict(zip(fields, values))
8881
return True
8982

9083
return False
@@ -100,15 +93,16 @@ def load_from_instance(self):
10093
if self.classdesc and self.classdesc in self.field_data:
10194
fields = self.classdesc.fields_names
10295
values = self.field_data[self.classdesc].values()
103-
self.field_data = assign_dict(fields, list(values))
96+
self.field_data = dict(zip(fields, values))
10497
if self.classdesc.super_class and self.classdesc.super_class in self.annotations:
10598
super_class = self.annotations[self.classdesc.super_class][0]
106-
self.annotations = assign_dict(super_class.fields_names, super_class.field_data)
99+
self.annotations = dict(zip(super_class.fields_names, super_class.field_data))
107100
return True
108101

109102
return False
110103

111104

105+
__metaclass__ = type
112106
class BaseTransformer(javaobj.transformers.ObjectTransformer):
113107
"""
114108
Creates a JavaInstance object with custom loading methods for the
@@ -147,19 +141,20 @@ class JavaRandomTransformer(BaseTransformer):
147141
def __init__(self):
148142
super(JavaRandomTransformer, self).__init__()
149143
self.name = "java.util.Random"
150-
self.fields = {
151-
'haveNextNextGaussian': javaobj.beans.FieldType.BOOLEAN,
152-
'nextNextGaussian': javaobj.beans.FieldType.DOUBLE,
153-
'seed': javaobj.beans.FieldType.LONG
154-
}
144+
self.field_names = ['haveNextNextGaussian', 'nextNextGaussian', 'seed']
145+
self.field_types = [
146+
javaobj.beans.FieldType.BOOLEAN,
147+
javaobj.beans.FieldType.DOUBLE,
148+
javaobj.beans.FieldType.LONG
149+
]
155150

156151
def load_custom_writeObject(self, parser, reader, name):
157152
if name == self.name:
158153
fields = []
159154
values = []
160-
for field_name, field_type in self.fields.items():
161-
values.append(parser._read_field_value(field_type))
162-
fields.append(javaobj.beans.JavaField(field_type, field_name))
155+
for index, value in enumerate(self.field_types):
156+
values.append(parser._read_field_value(value))
157+
fields.append(javaobj.beans.JavaField(value, self.field_names[index]))
163158

164159
class_desc = javaobj.beans.JavaClassDesc(
165160
javaobj.beans.ClassDescType.NORMALCLASS)
@@ -575,18 +570,9 @@ def test_writeObject(self):
575570
}
576571
}
577572

578-
self.assertEqual(expected['int_not_in_fields'],
579-
parent_data['int_not_in_fields'])
580-
self.assertEqual(expected['custom_obj']
581-
['field_data']['doub'], child_data['doub'])
582-
self.assertEqual(expected['custom_obj']
583-
['field_data']['num'], child_data['num'])
584-
self.assertEqual(expected['custom_obj']['annotations']
585-
['haveNextNextGaussian'], super_data['haveNextNextGaussian'])
586-
self.assertEqual(expected['custom_obj']['annotations']
587-
['nextNextGaussian'], super_data['nextNextGaussian'])
588-
self.assertEqual(expected['custom_obj']
589-
['annotations']['seed'], super_data['seed'])
573+
self.assertEqual(expected['int_not_in_fields'], parent_data['int_not_in_fields'])
574+
self.assertEqual(expected['custom_obj']['field_data'], child_data)
575+
self.assertEqual(expected['custom_obj']['annotations'], super_data)
590576

591577
# ------------------------------------------------------------------------------
592578

0 commit comments

Comments
 (0)