3
"""This file contains unittests for the shell.py module."""
5
__docformat__ = "restructuredtext en"
7
#-----------------------------------------------------------------------------
8
# Copyright (C) 2008 The IPython Development Team
10
# Distributed under the terms of the BSD License. The full license is in
11
# the file COPYING, distributed as part of this software.
12
#-----------------------------------------------------------------------------
14
#-----------------------------------------------------------------------------
16
#-----------------------------------------------------------------------------
18
# Tell nose to skip this module
21
import zope.interface as zi
22
from twisted.trial import unittest
23
from IPython.testing.util import DeferredTestCase
25
from IPython.kernel.newserialized import \
34
#-----------------------------------------------------------------------------
36
#-----------------------------------------------------------------------------
38
class SerializedTestCase(unittest.TestCase):
46
def testSerializedInterfaces(self):
48
us = UnSerialized({'a':10, 'b':range(10)})
50
uss = IUnSerialized(s)
51
self.assert_(ISerialized.providedBy(s))
52
self.assert_(IUnSerialized.providedBy(us))
53
self.assert_(IUnSerialized.providedBy(uss))
54
for m in list(ISerialized):
55
self.assert_(hasattr(s, m))
56
for m in list(IUnSerialized):
57
self.assert_(hasattr(us, m))
58
for m in list(IUnSerialized):
59
self.assert_(hasattr(uss, m))
61
def testPickleSerialized(self):
62
obj = {'a':1.45345, 'b':'asdfsdf', 'c':10000L}
63
original = UnSerialized(obj)
64
originalSer = ISerialized(original)
65
firstData = originalSer.getData()
66
firstTD = originalSer.getTypeDescriptor()
67
firstMD = originalSer.getMetadata()
68
self.assert_(firstTD == 'pickle')
69
self.assert_(firstMD == {})
70
unSerialized = IUnSerialized(originalSer)
71
secondObj = unSerialized.getObject()
72
for k, v in secondObj.iteritems():
73
self.assert_(obj[k] == v)
74
secondSer = ISerialized(UnSerialized(secondObj))
75
self.assert_(firstData == secondSer.getData())
76
self.assert_(firstTD == secondSer.getTypeDescriptor() )
77
self.assert_(firstMD == secondSer.getMetadata())
79
def testNDArraySerialized(self):
85
a = numpy.linspace(0.0, 1.0, 1000)
86
unSer1 = UnSerialized(a)
87
ser1 = ISerialized(unSer1)
88
td = ser1.getTypeDescriptor()
89
self.assert_(td == 'ndarray')
90
md = ser1.getMetadata()
91
self.assert_(md['shape'] == a.shape)
92
self.assert_(md['dtype'] == a.dtype.str)
94
self.assert_(buff == numpy.getbuffer(a))
95
s = Serialized(buff, td, md)
97
final = us.getObject()
98
self.assert_(numpy.getbuffer(a) == numpy.getbuffer(final))
99
self.assert_(a.dtype.str == final.dtype.str)
100
self.assert_(a.shape == final.shape)