Exemple #1
0
	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'])
Exemple #2
0
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 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'])
Exemple #4
0
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
Exemple #5
0
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
Exemple #6
0
	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()
Exemple #7
0
	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
Exemple #8
0
    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()
Exemple #9
0
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()
Exemple #11
0
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()
Exemple #12
0
 def setUp(self):
     self.tmpdir = Dir(self.create_tmp_dir())
     self.notebook = self.tmpdir.subdir('notebook')
     init_notebook(self.notebook)
Exemple #13
0
 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)
Exemple #14
0
	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()))
Exemple #15
0
    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)