def do_add_notebook(self, *a): fields = AddNotebookDialog(self).run() if fields: dir = Dir(fields['folder']) init_notebook(dir, name=fields['name']) model = self.treeview.get_model() model.append_notebook(dir.uri, name=fields['name'])
def new_files_notebook(dir): '''Returns a new Notebook object with a file store Uses data from L{WikiTestData} @param path: a folder path, e.g. created by L{TestCase.create_tmp_dir()} ''' from zim.fs import Dir from zim.notebook import init_notebook, Notebook, Path from zim.index import Index dir = Dir(dir) init_notebook(dir) notebook = Notebook(dir=dir) store = notebook.get_store(':') manifest = [] for name, text in WikiTestData: manifest.append(name) page = store.get_page(Path(name)) page.parse('wiki', text) store.store_page(page) notebook.testdata_manifest = _expand_manifest(manifest) notebook.index.update() return notebook
def write_notebook(dir, pages): init_notebook(dir) notebook = Notebook.new_from_dir(dir) for path, content in pages: p = notebook.get_page(path) p.parse('wiki', content) notebook.store_page(p) print "Wrote", p.source.path
def export(self): dir = Dir(self.create_tmp_dir('source_files')) init_notebook(dir) notebook = Notebook(dir=dir) for name, text in tests.WikiTestData: page = notebook.get_page(Path(name)) page.parse('wiki', text) notebook.store_page(page) file = dir.file('Test/foo.txt') self.assertTrue(file.exists()) zim = Application(('./zim.py', '--export', '--template=Default', dir.path, '--output', self.dir.path, '--index-page', 'index')) zim.run()
def do_add_notebook(self, *a): fields = AddNotebookDialog(self).run() if fields: if fields['type'] == 'local': dir = Dir(fields['folder']) init_notebook(dir, name=fields['name']) model = self.treeview.get_model() model.append_notebook(dir.uri, name=fields['name']) elif fields['type'] == 'google-drive': #TODO set client secret here somehow #make sure we are authenticated virtual.get_credentials() dir = Dir(fields['folder']) init_notebook(dir, name=fields['name']) model = self.treeview.get_model() model.append_notebook(dir.uri, name=fields['name']) else: raise NotImplemented
def export(self): dir = Dir(self.create_tmp_dir('source_files')) init_notebook(dir) notebook = Notebook(dir=dir) for name, text in tests.WikiTestData: page = notebook.get_page(Path(name)) page.parse('wiki', text) notebook.store_page(page) file = dir.file('Test/foo.txt') self.assertTrue(file.exists()) argv = ('./zim.py', '--export', '--template=Default', dir.path, '--output', self.dir.path, '--index-page', 'index') #~ zim = Application(argv) #~ zim.run() cmd = zim.main.build_command(argv[1:]) cmd.run()
def prompt_notebook(): """Prompts the NotebookDialog and returns the result or None. As a special case for first time usage it immediately prompts for the notebook location without showing the notebook list. """ list = get_notebook_list() if len(list) == 0: logger.debug("First time usage - prompt for notebook folder") fields = AddNotebookDialog(ui=None).run() if fields: dir = Dir(fields["folder"]) init_notebook(dir, name=fields["name"]) list.append(NotebookInfo(dir.uri, name=fields["name"])) list.write() return dir.uri else: return None # User canceled the dialog ? else: # Multiple notebooks defined and no default return NotebookDialog(ui=None).run()
def prompt_notebook(): '''Prompts the NotebookDialog and returns the result or None. As a special case for first time usage it immediatly prompts for the notebook location without showing the notebook list. ''' list = get_notebook_list() if not list: logger.debug('First time usage - prompt for notebook folder') fields = AddNotebookDialog(ui=None).run() if fields: dir = Dir(fields['folder']) init_notebook(dir, name=fields['name']) list.append(dir.uri) list.write() return dir else: return None # User cancelled the dialog ? else: # Multiple notebooks defined and no default return NotebookDialog(ui=None).run()
def prompt_notebook(): '''Prompts the NotebookDialog and returns the result or None. As a special case for first time usage it immediately prompts for the notebook location without showing the notebook list. @returns: a L{NotebookInfo} object or C{None} ''' list = get_notebook_list() if len(list) == 0: logger.debug('First time usage - prompt for notebook folder') fields = AddNotebookDialog(ui=None).run() if fields: dir = Dir(fields['folder']) init_notebook(dir, name=fields['name']) list.append(NotebookInfo(dir.uri, name=fields['name'])) list.write() return NotebookInfo(dir.uri, name=fields['name']) else: return None # User canceled the dialog ? else: # Multiple notebooks defined and no default return NotebookDialog(ui=None).run()
def setUp(self): self.tmpdir = Dir(self.create_tmp_dir()) self.notebook = self.tmpdir.subdir('notebook') init_notebook(self.notebook)
def setUp(self): folder = self.setUpFolder(mock=tests.MOCK_ALWAYS_REAL) self.tmpdir = OldDir(folder.path) # XXX self.notebook = self.tmpdir.subdir('notebook') init_notebook(self.notebook)
def runTest(self): '''Test synchronization''' # Test if zim detects pages, that where created with another # zim instance and transfered to this instance with # dropbox or another file synchronization tool. # # The scenario is as follow: # 1) Page.txt is created in this instance # 2) Page/Subpage.txt is created in another instance # and copied into the notebook by the synchronization tool # 3) Zim runs a standard index update # Outcome should be that Page:Subpage shows up in the index # create notebook dir = Dir(self.create_tmp_dir()) init_notebook(dir, name='foo') notebook = get_notebook(dir) index = notebook.index index.update() # add page in this instance path = Path('Page') page = notebook.get_page(path) page.parse('wiki', 'nothing important') notebook.store_page(page) # check file exists self.assertTrue(dir.file('Page.txt').exists()) # check file is indexed self.assertTrue(page in list(index.list_all_pages())) # check attachment dir does not exist subdir = dir.subdir('Page') self.assertEqual(notebook.get_attachments_dir(page), subdir) self.assertFalse(subdir.exists()) for newfile, newpath in ( (subdir.file('NewSubpage.txt').path, Path('Page:NewSubpage')), (dir.file('Newtoplevel.txt').path, Path('Newtoplevel')), (dir.file('SomeDir/Dir/Newpage.txt').path, Path('SomeDir:Dir:Newpage')), ): # make sure ctime changed since last index import time time.sleep(2) # create new page without using zim classes self.assertFalse(os.path.isfile(newfile)) mydir = os.path.dirname(newfile) if not os.path.isdir(mydir): os.makedirs(mydir) fh = open(newfile, 'w') fh.write('Test 123\n') fh.close() self.assertTrue(os.path.isfile(newfile)) # simple index reload index.update() # check if the new page is found in the index self.assertTrue(newpath in list(index.list_all_pages()))
def runTest(self): '''Test synchronization''' # Test if zim detects pages, that where created with another # zim instance and transfered to this instance with # dropbox or another file synchronization tool. # # The scenario is as follow: # 1) Page.txt is created in this instance # 2) Page/Subpage.txt is created in another instance # and copied into the notebook by the synchronization tool # 3) Zim runs a standard index update # Outcome should be that Page:Subpage shows up in the index # create notebook dir = Dir(self.create_tmp_dir()) init_notebook(dir, name='foo') notebook = Notebook(dir=dir) index = notebook.index index.update() # add page in this instance path = Path('Page') page = notebook.get_page(path) page.parse('wiki', 'nothing important') notebook.store_page(page) # check file exists self.assertTrue(dir.file('Page.txt').exists()) # check file is indexed self.assertTrue(page in list(index.list_all_pages())) # check attachment dir does not exist subdir = dir.subdir('Page') self.assertEqual(notebook.get_attachments_dir(page), subdir) self.assertFalse(subdir.exists()) for newfile, newpath in ( (subdir.file('NewSubpage.txt').path, Path('Page:NewSubpage')), (dir.file('Newtoplevel.txt').path, Path('Newtoplevel')), (dir.file('SomeDir/Dir/Newpage.txt').path, Path('SomeDir:Dir:Newpage')), ): # make sure ctime changed since last index import time time.sleep(2) # create new page without using zim classes self.assertFalse(os.path.isfile(newfile)) mydir = os.path.dirname(newfile) if not os.path.isdir(mydir): os.makedirs(mydir) fh = open(newfile, 'w') fh.write('Test 123\n') fh.close() self.assertTrue(os.path.isfile(newfile)) # simple index reload index.update() # check if the new page is found in the index self.assertTrue(newpath in list(index.list_all_pages()))
def setUp(self): self.tmpfolder = self.setUpFolder(mock=tests.MOCK_ALWAYS_REAL) self.notebookfolder = self.tmpfolder.folder('notebook') init_notebook(self.notebookfolder)