Skip to content

Commit 9dab084

Browse files
author
Fede A
committed
revert OrderedDict and instead use dict names
1 parent e7a231c commit 9dab084

File tree

1 file changed

+36
-17
lines changed

1 file changed

+36
-17
lines changed

tests/tests_v2.py

Lines changed: 36 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -32,22 +32,21 @@
3232
from __future__ import print_function
3333

3434
# Standard library
35+
from javaobj.utils import bytes_char
36+
import javaobj.v2 as javaobj
3537
import logging
3638
import os
3739
import subprocess
3840
import sys
3941
import unittest
4042
import struct
4143

42-
from collections import OrderedDict
4344
from io import BytesIO
4445

4546
# Prepare Python path to import javaobj
4647
sys.path.insert(0, os.path.abspath(os.path.dirname(os.getcwd())))
4748

4849
# Local
49-
import javaobj.v2 as javaobj
50-
from javaobj.utils import bytes_char
5150

5251
# ------------------------------------------------------------------------------
5352

@@ -61,6 +60,8 @@
6160
# ------------------------------------------------------------------------------
6261

6362
# Custom writeObject parsing classes
63+
64+
6465
class CustomWriterInstance(javaobj.beans.JavaInstance):
6566
def __init__(self):
6667
javaobj.beans.JavaInstance.__init__(self)
@@ -74,14 +75,16 @@ def load_from_instance(self):
7475
if self.classdesc and self.classdesc in self.annotations:
7576
fields = ['int_not_in_fields'] + self.classdesc.fields_names
7677
raw_data = self.annotations[self.classdesc]
77-
int_not_in_fields = struct.unpack('>i', BytesIO(raw_data[0].data).read(4))[0]
78+
int_not_in_fields = struct.unpack(
79+
'>i', BytesIO(raw_data[0].data).read(4))[0]
7880
custom_obj = raw_data[1]
7981
values = [int_not_in_fields, custom_obj]
80-
self.field_data = OrderedDict(zip(fields, values))
82+
self.field_data = dict(zip(fields, values))
8183
return True
82-
84+
8385
return False
8486

87+
8588
class RandomChildInstance(javaobj.beans.JavaInstance):
8689
def load_from_instance(self):
8790
"""
@@ -92,20 +95,22 @@ def load_from_instance(self):
9295
if self.classdesc and self.classdesc in self.field_data:
9396
fields = self.classdesc.fields_names
9497
values = self.field_data[self.classdesc].values()
95-
self.field_data = OrderedDict(zip(fields, values))
98+
self.field_data = dict(zip(fields, values))
9699
if self.classdesc.super_class and self.classdesc.super_class in self.annotations:
97100
super_class = self.annotations[self.classdesc.super_class][0]
98-
self.annotations = OrderedDict(
101+
self.annotations = dict(
99102
zip(super_class.fields_names, super_class.field_data))
100103
return True
101104

102105
return False
103106

107+
104108
class BaseTransformer(javaobj.transformers.ObjectTransformer):
105109
"""
106110
Creates a JavaInstance object with custom loading methods for the
107111
classes it can handle
108112
"""
113+
109114
def __init__(self, handled_classes={}):
110115
self.instance = None
111116
self.HANDLED_CLASSES = handled_classes
@@ -123,14 +128,17 @@ def create_instance(self, classdesc):
123128

124129
return None
125130

131+
126132
class RandomChildTransformer(BaseTransformer):
127133
def __init__(self):
128134
super().__init__({'RandomChild': RandomChildInstance})
129135

136+
130137
class CustomWriterTransformer(BaseTransformer):
131138
def __init__(self):
132139
super().__init__({'CustomWriter': CustomWriterInstance})
133140

141+
134142
class JavaRandomTransformer(BaseTransformer):
135143
def __init__(self):
136144
super().__init__()
@@ -537,33 +545,44 @@ def test_writeObject(self):
537545
"""
538546

539547
ser = self.read_file("testCustomWriteObject.ser")
540-
transformers = [CustomWriterTransformer(), RandomChildTransformer(), JavaRandomTransformer()]
548+
transformers = [CustomWriterTransformer(
549+
), RandomChildTransformer(), JavaRandomTransformer()]
541550
pobj = javaobj.loads(ser, *transformers)
542551

543552
self.assertEqual(isinstance(pobj, CustomWriterInstance), True)
544-
self.assertEqual(isinstance(pobj.field_data['custom_obj'], RandomChildInstance), True)
545-
553+
self.assertEqual(isinstance(
554+
pobj.field_data['custom_obj'], RandomChildInstance), True)
555+
546556
parent_data = pobj.field_data
547557
child_data = parent_data['custom_obj'].field_data
548558
super_data = parent_data['custom_obj'].annotations
549-
expected = OrderedDict({
559+
expected = {
550560
'int_not_in_fields': 0,
551561
'custom_obj': {
552562
'field_data': {
553563
'doub': 4.5,
554564
'num': 1
555-
} ,
565+
},
556566
'annotations': {
557567
'haveNextNextGaussian': False,
558568
'nextNextGaussian': 0.0,
559569
'seed': 25214903879
560570
}
561571
}
562-
})
572+
}
563573

564-
self.assertEqual(expected['int_not_in_fields'], parent_data['int_not_in_fields'])
565-
self.assertEqual(expected['custom_obj']['field_data'], child_data)
566-
self.assertEqual(expected['custom_obj']['annotations'], super_data)
574+
self.assertEqual(expected['int_not_in_fields'],
575+
parent_data['int_not_in_fields'])
576+
self.assertEqual(expected['custom_obj']
577+
['field_data']['doub'], child_data['doub'])
578+
self.assertEqual(expected['custom_obj']
579+
['field_data']['num'], child_data['num'])
580+
self.assertEqual(expected['custom_obj']['annotations']
581+
['haveNextNextGaussian'], super_data['haveNextNextGaussian'])
582+
self.assertEqual(expected['custom_obj']['annotations']
583+
['nextNextGaussian'], super_data['nextNextGaussian'])
584+
self.assertEqual(expected['custom_obj']
585+
['annotations']['seed'], super_data['seed'])
567586

568587
# ------------------------------------------------------------------------------
569588

0 commit comments

Comments
 (0)