def testPageSource(self): from zim.newfs.mock import MockFile, MockFolder file = MockFile('/mock/test/page.txt') folder = MockFile('/mock/test/page/') page = Page(Path('Foo'), False, file, folder) self.assertFalse(page.readonly) self.assertFalse(page.hascontent) self.assertIsNone(page.ctime) self.assertIsNone(page.mtime) self.assertIsNone(page.get_parsetree()) page1 = Page(Path('Foo'), False, file, folder) self.assertTrue(page.isequal(page1)) tree = ParseTree().fromstring('''\ <zim-tree> <link href='foo:bar'>foo:bar</link> <link href='bar'>bar</link> <tag name='baz'>@baz</tag> </zim-tree> ''') page.set_parsetree(tree) page._store() self.assertTrue(file.exists()) self.assertTrue(page.hascontent) self.assertIsInstance(page.ctime, float) self.assertIsInstance(page.mtime, float) lines = file.readlines() self.assertEqual(lines[0], 'Content-Type: text/x-zim-wiki\n') self.assertEqual(lines[1][:11], 'Wiki-Format') self.assertEqual(lines[2][:13], 'Creation-Date') self.assertEqual(page.get_parsetree(), tree) self.assertTrue(page.isequal(page1)) self.assertTrue(page1.hascontent) self.assertIsInstance(page1.ctime, float) self.assertIsInstance(page1.mtime, float) self.assertIsNotNone(page1.get_parsetree()) file.write('foo 123') page.set_parsetree(tree) self.assertRaises(zim.newfs.FileChangedError, page._store) ### Custom header should be preserved file.writelines(lines[0:3] + ['X-Custom-Header: MyTest'] + lines[3:]) page = Page(Path('Foo'), False, file, folder) tree = page.get_parsetree() page.set_parsetree(tree) page._store() lines = file.readlines() self.assertEqual(lines[0], 'Content-Type: text/x-zim-wiki\n') self.assertEqual(lines[3], 'X-Custom-Header: MyTest\n')
def testPageSource(self): from zim.newfs.mock import MockFile, MockFolder file = MockFile('/mock/test/page.txt') folder = MockFile('/mock/test/page/') page = Page(Path('Foo'), False, file, folder) self.assertFalse(page.readonly) self.assertFalse(page.hascontent) self.assertIsNone(page.ctime) self.assertIsNone(page.mtime) self.assertIsNone(page.get_parsetree()) page1 = Page(Path('Foo'), False, file, folder) self.assertTrue(page.isequal(page1)) tree = ParseTree().fromstring('''\ <zim-tree> <link href='foo:bar'>foo:bar</link> <link href='bar'>bar</link> <tag name='baz'>@baz</tag> </zim-tree> ''') page.set_parsetree(tree) page._store() self.assertTrue(file.exists()) self.assertTrue(page.hascontent) self.assertIsInstance(page.ctime, float) self.assertIsInstance(page.mtime, float) self.assertEqual(page.get_parsetree(), tree) self.assertTrue(page.isequal(page1)) self.assertTrue(page1.hascontent) self.assertIsInstance(page1.ctime, float) self.assertIsInstance(page1.mtime, float) self.assertIsNotNone(page1.get_parsetree()) file.write('foo 123') page.set_parsetree(tree) self.assertRaises(zim.newfs.FileChangedError, page._store)