本文整理汇总了Python中jsonpickle._samples.Thing类的典型用法代码示例。如果您正苦于以下问题:Python Thing类的具体用法?Python Thing怎么用?Python Thing使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Thing类的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_thing_with_module
def test_thing_with_module(self):
obj = Thing('with-module')
obj.themodule = os
flattened = self.pickler.flatten(obj)
inflated = self.unpickler.restore(flattened)
self.assertEqual(inflated.themodule, os)
示例2: test_thing_with_module_safe
def test_thing_with_module_safe(self):
obj = Thing("with-module")
obj.themodule = os
flattened = self.pickler.flatten(obj)
self.unpickler.safe = True
inflated = self.unpickler.restore(flattened)
self.assertEqual(inflated.themodule, None)
示例3: test_recursive
def test_recursive(self):
"""create a recursive structure and test that we can handle it
"""
parent = Thing('parent')
child = Thing('child')
child.sibling = Thing('sibling')
parent.self = parent
parent.child = child
parent.child.twin = child
parent.child.parent = parent
parent.child.sibling.parent = parent
cloned = jsonpickle.decode(jsonpickle.encode(parent))
self.assertEqual(parent.name,
cloned.name)
self.assertEqual(parent.child.name,
cloned.child.name)
self.assertEqual(parent.child.sibling.name,
cloned.child.sibling.name)
self.assertEqual(cloned,
cloned.child.parent)
self.assertEqual(cloned,
cloned.child.sibling.parent)
self.assertEqual(cloned,
cloned.child.twin.parent)
self.assertEqual(cloned.child,
cloned.child.twin)
示例4: test_list_item_reference
def test_list_item_reference(self):
thing = Thing('parent')
thing.child = Thing('child')
thing.child.refs = [thing]
encoded = jsonpickle.encode(thing)
decoded = jsonpickle.decode(encoded)
self.assertEqual(id(decoded.child.refs[0]), id(decoded))
示例5: test_thing_with_submodule
def test_thing_with_submodule(self):
from distutils import sysconfig
obj = Thing('with-submodule')
obj.submodule = sysconfig
flattened = self.pickler.flatten(obj)
inflated = self.unpickler.restore(flattened)
self.assertEqual(inflated.submodule, sysconfig)
示例6: test_class_reference
def test_class_reference(self):
"""This test ensures that users can store references to classes.
"""
obj = Thing("object-with-class-reference")
# reference the 'Thing' class (not an instance of the class)
obj.classref = Thing
flattened = self.pickler.flatten(obj)
self.assertEqual(flattened["classref"], {tags.TYPE: "jsonpickle._samples.Thing"})
inflated = self.unpickler.restore(flattened)
self.assertEqual(inflated.classref, Thing)
示例7: test_type_reference
def test_type_reference(self):
"""This test ensures that users can store references to types.
"""
obj = Thing("object-with-type-reference")
# reference the built-in 'object' type
obj.typeref = object
flattened = self.pickler.flatten(obj)
self.assertEqual(flattened["typeref"], {tags.TYPE: "__builtin__.object"})
inflated = self.unpickler.restore(flattened)
self.assertEqual(inflated.typeref, object)
示例8: test_class
def test_class(self):
inst = Thing('test name')
inst.child = Thing('child name')
flattened = self.pickler.flatten(inst)
self.assertEqual('test name', flattened['name'])
child = flattened['child']
self.assertEqual('child name', child['name'])
inflated = self.unpickler.restore(flattened)
self.assertEqual('test name', inflated.name)
self.assertTrue(type(inflated) is Thing)
self.assertEqual('child name', inflated.child.name)
self.assertTrue(type(inflated.child) is Thing)
示例9: test_make_refs_disabled_reference_to_list
def test_make_refs_disabled_reference_to_list(self):
thing = Thing('parent')
thing.a = [1]
thing.b = thing.a
thing.b.append(thing.a)
thing.b.append([thing.a])
encoded = jsonpickle.encode(thing, make_refs=False)
decoded = jsonpickle.decode(encoded)
self.assertEqual(decoded.a[0], 1)
self.assertEqual(decoded.b[0:3], '[1,')
self.assertEqual(decoded.a[1][0:3], '[1,')
self.assertEqual(decoded.a[2][0][0:3], '[1,')
示例10: test_reference_to_list
def test_reference_to_list(self):
thing = Thing('parent')
thing.a = [1]
thing.b = thing.a
thing.b.append(thing.a)
thing.b.append([thing.a])
encoded = jsonpickle.encode(thing)
decoded = jsonpickle.decode(encoded)
self.assertEqual(decoded.a[0], 1)
self.assertEqual(decoded.b[0], 1)
self.assertEqual(id(decoded.a), id(decoded.b))
self.assertEqual(id(decoded.a), id(decoded.a[1]))
self.assertEqual(id(decoded.a), id(decoded.a[2][0]))
示例11: test_refs_recursive
def test_refs_recursive(self):
"""Test that complicated recursive refs work"""
a = Thing('a')
a.self_list = [Thing('0'), Thing('1'), Thing('2')]
a.first = a.self_list[0]
a.stuff = {a.first: a.first}
a.morestuff = {a.self_list[1]: a.stuff}
pickle = jsonpickle.encode(a, keys=True)
b = jsonpickle.decode(pickle, keys=True)
item = b.self_list[0]
self.assertEqual(b.first, item)
self.assertEqual(b.stuff[b.first], item)
self.assertEqual(b.morestuff[b.self_list[1]][b.first], item)
示例12: test_references_in_number_keyed_dict
def test_references_in_number_keyed_dict(self):
"""
Make sure a dictionary with numbers as keys and objects as values
can make the round trip.
Because JSON must coerce integers to strings in dict keys, the sort
order may have a tendency to change between pickling and unpickling,
and this could affect the object references.
"""
one = Thing("one")
two = Thing("two")
twelve = Thing("twelve")
two.child = twelve
obj = {1: one, 2: two, 12: twelve}
self.assertNotEqual(list(sorted(obj.keys())), list(map(int, sorted(map(str, obj.keys())))))
flattened = self.pickler.flatten(obj)
inflated = self.unpickler.restore(flattened)
self.assertEqual(len(inflated), 3)
self.assertEqual(inflated["12"].name, "twelve")