class TestDocumentSimple(unittest.TestCase): def setUp(self): self.doc = Document("testing") def test_serialize(self): expected_original = { 'handler' : '/handler.lua', 'hash' : None, 'resources': {}, } serial = self.doc.serialize() self.assertEqual( sorted(serial.keys()), ['events', 'original'] ) self.assertEqual(serial['original'], expected_original) self.assertEqual(serial['events'], []) self.doc.add_resource( Resource(path="/example", content="example"), False ) self.assertEqual(self.doc.serialize()['original'], expected_original) self.doc.freeze() self.assertEqual( self.doc.serialize()['original'], { 'handler': '/handler.lua', 'hash': 'current', 'resources': { '/example': { 'comment': '', 'content': 'example', 'path': '/example', 'type': 'application/x-octet-stream' } } } ) def test_deserialize(self): self.doc.add_resource( Resource(path="/example", content="example"), False ) self.doc.freeze() serial = self.doc.serialize() newdoc = Document(self.doc.name) newdoc.deserialize(serial) self.assertEqual(list(newdoc.resources.keys()), ['/example']) self.assertIsInstance(newdoc.resources['/example'], Resource) initial_resources = newdoc._initial.resources self.assertEqual(list(initial_resources.keys()), ['/example']) self.assertIsInstance(initial_resources['/example'], Resource) def test_saving(self): self.doc.add_resource( Resource(path="/example", content="example"), False ) self.doc.freeze() save_to(self.doc, "example.dje") newdoc = load_from("example.dje") self.assertEqual(newdoc.serialize(), self.doc.serialize())