def runTest(self):
        defaults = XDGConfigFileIter('foo.conf')
        files = list(defaults)

        self.assertTrue(len(files) > 0)
        self.assertIsInstance(adapt_from_oldfs(files[0]), File)
        self.assertEqual(files[0].basename, 'foo.conf')
    def testInitializedEnvironment(self):
        '''Test config environment with non-default basedir paths'''
        my_environ = {
            'XDG_DATA_HOME': '/foo/data/home',
            'XDG_DATA_DIRS': '/foo/data/dir1:/foo/data/dir2   ',
            'XDG_CONFIG_HOME': '/foo/config/home',
            'XDG_CONFIG_DIRS': '/foo/config/dir1:/foo/config/dir2',
            'XDG_CACHE_HOME': '/foo/cache',
        }
        if os.name == 'nt':
            my_environ['XDG_DATA_DIRS'] = '/foo/data/dir1;/foo/data/dir2'
            my_environ['XDG_CONFIG_DIRS'] = '/foo/config/dir1;/foo/config/dir2'

        with EnvironmentConfigContext(my_environ):
            for k, v in (('XDG_DATA_HOME', '/foo/data/home'),
                         ('XDG_CONFIG_HOME', '/foo/config/home'),
                         ('XDG_CACHE_HOME', '/foo/cache')):
                self.assertEqual(
                    adapt_from_oldfs(getattr(zim.config.basedirs, k)),
                    value_to_folder(v))

            for k, v in (
                ('XDG_DATA_DIRS', '/foo/data/dir1:/foo/data/dir2'),
                ('XDG_CONFIG_DIRS', '/foo/config/dir1:/foo/config/dir2'),
            ):
                self.assertEqual(
                    list(map(adapt_from_oldfs, getattr(zim.config.basedirs,
                                                       k))),
                    list(map(value_to_folder, v.split(':'))))
    def marshalled_path_lookup(*arg, **kwarg):
        value = function(*arg, **kwarg)
        if isinstance(value, ConfigFile):
            p = value.file
        else:
            p = value

        p = adapt_from_oldfs(p)
        if not p is None:
            assert isinstance(p, (File, Folder)), 'BUG: get %r' % p
            assert p.ischild(_cwd), "ERROR: \"%s\" not below \"%s\"" % (p,
                                                                        _cwd)
        return value
    def testAllValid(self):
        '''Test config environment is valid'''
        for var in (
                ZIM_DATA_DIR,  # should always be set when running as test
                XDG_DATA_HOME,
                XDG_CONFIG_HOME,
                XDG_CACHE_HOME):
            self.assertTrue(isinstance(adapt_from_oldfs(var), Folder))

        for var in (
                XDG_DATA_DIRS,
                XDG_CONFIG_DIRS,
        ):
            self.assertTrue(
                isinstance(var, list)
                and isinstance(adapt_from_oldfs(var[0]), Folder))

        self.assertEqual(adapt_from_oldfs(ZIM_DATA_DIR), tests.ZIM_DATA_FOLDER)
        self.assertTrue(ZIM_DATA_DIR.file('zim.png').exists())
        self.assertTrue(data_file('zim.png').exists())
        self.assertTrue(data_dir('templates').exists())
        self.assertEqual(list(data_dirs(('foo', 'bar'))),
                         [d.subdir(['foo', 'bar']) for d in data_dirs()])
    def runTest(self):
        '''Test config environment setup of test'''
        zim.config.log_basedirs()

        for k, v in (('XDG_DATA_HOME', os.path.join(tests.TMPDIR,
                                                    'data_home')),
                     ('XDG_CONFIG_HOME',
                      os.path.join(tests.TMPDIR, 'config_home')),
                     ('XDG_CACHE_HOME', os.path.join(tests.TMPDIR,
                                                     'cache_home'))):
            self.assertEqual(adapt_from_oldfs(getattr(zim.config, k)),
                             LocalFolder(v))

        for k, v in (
                #~ ('XDG_DATA_DIRS', os.path.join(tests.TMPDIR, 'data_dir')),
            ('XDG_CONFIG_DIRS', os.path.join(tests.TMPDIR, 'config_dir')), ):
            self.assertEqual(
                list(map(adapt_from_oldfs, getattr(zim.config, k))),
                list(map(LocalFolder, v.split(os.pathsep))))
Example #6
0
    def spawn(self, args, callback=None):
        if callback:
            raise NotImplementedError(
                'os.startfile does not support a callback')

        for arg in args:
            arg = adapt_from_oldfs(arg)
            if isinstance(arg, (LocalFile, LocalFolder)):
                path = os.path.normpath(arg.path).replace(
                    '/', SEP)  # msys can use '/' instead of '\\'
            elif is_uri_re.match(arg) and not is_win32_path_re.match(arg):
                # URL or e.g. mailto: or outlook: URI
                path = str(arg)
            else:
                # must be file
                path = os.path.normpath(str(arg)).replace(
                    '/', SEP)  # msys can use '/' instead of '\\'

            logger.info('Opening with os.startfile: %s', path)
            if TEST_MODE:
                TEST_MODE_RUN_CB((self.__class__.__name__, path))
            else:
                os.startfile(path)
    def testDefaults(self):
        '''Test default basedir paths'''
        with EnvironmentConfigContext({
                'XDG_DATA_HOME': None,
                'XDG_DATA_DIRS': '   ',
                'XDG_CONFIG_HOME': None,
                'XDG_CONFIG_DIRS': '',
                'XDG_CACHE_HOME': None,
        }):
            for k, v in (('XDG_DATA_HOME', '~/.local/share'),
                         ('XDG_CONFIG_HOME', '~/.config'), ('XDG_CACHE_HOME',
                                                            '~/.cache')):
                self.assertEqual(
                    adapt_from_oldfs(getattr(zim.config.basedirs, k)),
                    LocalFolder(v))

            for k, v in (
                ('XDG_DATA_DIRS', '/usr/share:/usr/local/share'),
                ('XDG_CONFIG_DIRS', '/etc/xdg'),
            ):
                self.assertEqual(
                    list(map(adapt_from_oldfs, getattr(zim.config.basedirs,
                                                       k))),
                    list(map(LocalFolder, v.split(':'))))
Example #8
0
 def setUp(self):
     data_dir = adapt_from_oldfs(XDG_DATA_DIRS[0])
     tests.TEST_DATA_FOLDER.file('png.xml').copyto(
         data_dir.file('mime/image/png.xml'))
	def testDialog(self):
		'''Test ExportDialog'''
		from zim.gui.exportdialog import ExportDialog, ExportDoneDialog

		dir = self.setUpFolder(mock=tests.MOCK_ALWAYS_REAL)
		notebook = self.setUpNotebook(content={'foo': 'test 123\n', 'bar': 'test 123\n'})

		window = Gtk.Window()
		window.notebook = notebook

		## Test export all pages
		dialog = ExportDialog(window, notebook, Path('foo'))
		dialog.set_page(0)

		page = dialog.get_page()
		page.form['selection'] = 'all'
		dialog.next_page()

		page = dialog.get_page()
		page.form['format'] = 'HTML'
		page.form['template'] = 'Print'
		dialog.next_page()

		page = dialog.get_page()
		page.form['folder'] = dir
		page.form['index'] = 'INDEX_PAGE'
		with tests.DialogContext(ExportDoneDialog):
			dialog.assert_response_ok()

		file = dir.file('foo.html')
		self.assertTrue(file.exists())
		text = file.read()
		self.assertTrue('<!-- Wiki content -->' in text, 'template used')

		#~ print dialog.uistate
		self.assertEqual(dialog.uistate, window.notebook.state['ExportDialog'])
		self.assertIsInstance(dialog.uistate['output_folder'], Dir)

		## Test export single page
		dialog = ExportDialog(window, notebook, Path('foo'))
		dialog.set_page(0)

		page = dialog.get_page()
		page.form['selection'] = 'page'
		page.form['page'] = 'foo'
		dialog.next_page()

		page = dialog.get_page()
		page.form['format'] = 'HTML'
		page.form['template'] = 'Print'
		dialog.next_page()

		page = dialog.get_page()
		page.form['file'] = dir.file('SINGLE_FILE_EXPORT.html').path
		with tests.DialogContext(ExportDoneDialog):
			dialog.assert_response_ok()

		file = dir.file('SINGLE_FILE_EXPORT.html')
		self.assertTrue(file.exists())
		text = file.read()
		self.assertTrue('<!-- Wiki content -->' in text, 'template used')

		#~ print dialog.uistate
		self.assertEqual(dialog.uistate, window.notebook.state['ExportDialog'])
		self.assertIsInstance(adapt_from_oldfs(dialog.uistate['output_file']), File)
		self.assertIsInstance(adapt_from_oldfs(dialog.uistate['output_folder']), Folder) # Keep this in state as well
 def runTest(self):
     '''Test config for user dirs'''
     dirs = user_dirs()
     self.assertEqual(adapt_from_oldfs(dirs['XDG_DOCUMENTS_DIR']),
                      LocalFolder('~/Documents'))