Ejemplo n.º 1
0
	def test_encode_circular(self):
		thing = {}
		thing['me'] = thing

		encoded = jsog.encode(thing)

		self.assertTrue(encoded['@id'])
		self.assertTrue(encoded['me']['@ref'] == encoded['@id'])
Ejemplo n.º 2
0
	def test_decode_circular(self):
		thing = {}
		thing['me'] = thing

		encoded = jsog.encode(thing)
		back = jsog.decode(encoded)

		self.assertFalse('@id' in back)
		self.assertTrue(back['me'] is back)
Ejemplo n.º 3
0
	def test_encode_reference(self):
		inner = { "foo": "bar" }
		outer = { "inner1": inner, "inner2": inner }
		encoded = jsog.encode(outer)

		inner1 = encoded['inner1']
		inner2 = encoded['inner2']

		# one has @id, one has @ref
		self.assertNotEqual('@id' in inner1, '@id' in inner2)
		self.assertNotEqual('@ref' in inner1, '@ref' in inner2)

		if '@id' in inner1:
			self.assertEqual(inner1['@id'], inner2['@ref'])
		else:
			self.assertEqual(inner1['@ref'], inner2['@id'])
Ejemplo n.º 4
0
	def test_encode_null(self):
		encoded = jsog.encode(None)
		self.assertEqual(encoded, None)