Пример #1
0
	def testHomeAndUser(self):
		user = environ.get('USER')
		self.assertIsNotNone(user)

		home = environ.get('HOME')
		self.assertIsNotNone(home)
		self.assertTrue(Dir(home).exists())

		if os.name == 'nt':
			appdata = environ.get('APPDATA')
			self.assertIsNotNone(appdata)
			self.assertTrue(Dir(appdata).exists())
Пример #2
0
	def testGetSet(self):
		k = 'TEST_ZIM_ENVIRON_MODULE'

		with EnvironmentContext({k: None}):
			self.assertNotIn(k, environ)
			self.assertRaises(KeyError, environ.__getitem__, k)
			self.assertIsNone(environ.get(k))
			self.assertEqual(environ.get(k, 'FOO'), 'FOO')

			environ[k] = 'BAR'
			self.assertEqual(environ.get(k, 'FOO'), 'BAR')
			self.assertEqual(environ[k], 'BAR')
			self.assertGreater(len(environ), 0)
			self.assertIn(k, environ)

			del environ[k]
			self.assertNotIn(k, environ)
Пример #3
0
def set_basedirs():
	'''This method sets the global configuration paths for according to the
	freedesktop basedir specification.
	Called automatically when module is first loaded, should be
	called explicitly only when environment has changed.
	'''
	global ZIM_DATA_DIR
	global XDG_DATA_HOME
	global XDG_DATA_DIRS
	global XDG_CONFIG_HOME
	global XDG_CONFIG_DIRS
	global XDG_CACHE_HOME

	# Cast string to folder
	import zim
	zim_data_dir = File(zim.ZIM_EXECUTABLE).dir.subdir('data')
	if zim_data_dir.exists():
		ZIM_DATA_DIR = zim_data_dir

	if os.name == 'nt':
		APPDATA = environ['APPDATA']

		XDG_DATA_HOME = Dir(
			environ.get('XDG_DATA_HOME', APPDATA + r'\zim\data'))

		XDG_DATA_DIRS = map(Dir,
			environ.get_list('XDG_DATA_DIRS', '~/.local/share/')) # Backwards compatibility

		XDG_CONFIG_HOME = Dir(
			environ.get('XDG_CONFIG_HOME', APPDATA + r'\zim\config'))

		XDG_CONFIG_DIRS = map(Dir,
			environ.get_list('XDG_CONFIG_DIRS', '~/.config/')) # Backwards compatibility

		XDG_CACHE_HOME = Dir(
			environ.get('XDG_CACHE_HOME', APPDATA + r'\zim\cache'))
	else:
		XDG_DATA_HOME = Dir(
			environ.get('XDG_DATA_HOME', '~/.local/share/'))

		XDG_DATA_DIRS = map(Dir,
			environ.get_list('XDG_DATA_DIRS', ('/usr/share/', '/usr/local/share/')))

		XDG_CONFIG_HOME = Dir(
			environ.get('XDG_CONFIG_HOME', '~/.config/'))

		XDG_CONFIG_DIRS = map(Dir,
			environ.get_list('XDG_CONFIG_DIRS', ('/etc/xdg/',)))

		XDG_CACHE_HOME = Dir(
			environ.get('XDG_CACHE_HOME', '~/.cache'))
Пример #4
0
def user_site_packages_directory():
	'''Get the per user site-packages directory

	In Python 2.6 the "Per-user site-packages Directory" feature has
	been introduced, see
	U{http://docs.python.org/whatsnew/2.6.html#pep-370-per-user-site-packages-directory}.
	This function backports this feature to Python 2.5.

	@returns: the per user site-packages directory.
	This directoy is part of the search path for plugin modules, so users
	can install plugins in locally.
	'''
	from zim.environ import environ
	if os.name == 'nt':
		appdata = environ.get('APPDATA')
		if appdata:
			dir = Dir((appdata, 'Python/Python25/site-packages'))
			return dir.path
		else:
			return None
	else:
		dir = Dir('~/.local/lib/python2.5/site-packages')
		return dir.path
Пример #5
0
def set_basedirs():
	'''This method sets the global configuration paths for according to the
	freedesktop basedir specification.
	Called automatically when module is first loaded, should be
	called explicitly only when environment has changed.
	'''
	global ZIM_DATA_DIR
	global XDG_DATA_HOME
	global XDG_DATA_DIRS
	global XDG_CONFIG_HOME
	global XDG_CONFIG_DIRS
	global XDG_CACHE_HOME

	# Cast string to folder
	import zim
	zim_data_dir = File(zim.ZIM_EXECUTABLE).dir.subdir('data')
	if zim_data_dir.exists():
		ZIM_DATA_DIR = zim_data_dir

	if os.name == 'nt':
		APPDATA = environ['APPDATA']

		XDG_DATA_HOME = Dir(
			environ.get('XDG_DATA_HOME', APPDATA + r'\zim\data'))

		XDG_DATA_DIRS = map(Dir,
			environ.get_list('XDG_DATA_DIRS', '~/.local/share/')) # Backwards compatibility

		XDG_CONFIG_HOME = Dir(
			environ.get('XDG_CONFIG_HOME', APPDATA + r'\zim\config'))

		XDG_CONFIG_DIRS = map(Dir,
			environ.get_list('XDG_CONFIG_DIRS', '~/.config/')) # Backwards compatibility

		try:
			import _winreg as wreg
			wreg_key = wreg.OpenKey(
				wreg.HKEY_CURRENT_USER,
				r'Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders')
			cache_dir = str(wreg.QueryValueEx(wreg_key, "Cache")[0].replace(u'%USERPROFILE%', environ['USERPROFILE']))
			wreg.CloseKey(wreg_key)
		except:
			cache_dir = APPDATA + r'\zim\cache'
			# Not using TMP here because it is cleaned too often

		XDG_CACHE_HOME = Dir(
			environ.get('XDG_CACHE_HOME', cache_dir + r'\zim'))
	else:
		XDG_DATA_HOME = Dir(
			environ.get('XDG_DATA_HOME', '~/.local/share/'))

		XDG_DATA_DIRS = map(Dir,
			environ.get_list('XDG_DATA_DIRS', ('/usr/share/', '/usr/local/share/')))

		XDG_CONFIG_HOME = Dir(
			environ.get('XDG_CONFIG_HOME', '~/.config/'))

		XDG_CONFIG_DIRS = map(Dir,
			environ.get_list('XDG_CONFIG_DIRS', ('/etc/xdg/',)))

		XDG_CACHE_HOME = Dir(
			environ.get('XDG_CACHE_HOME', '~/.cache'))
Пример #6
0
def set_basedirs():
    '''This method sets the global configuration paths for according to the
	freedesktop basedir specification.
	Called automatically when module is first loaded, should be
	called explicitly only when environment has changed.
	'''
    global ZIM_DATA_DIR
    global XDG_DATA_HOME
    global XDG_DATA_DIRS
    global XDG_CONFIG_HOME
    global XDG_CONFIG_DIRS
    global XDG_CACHE_HOME

    # Cast string to folder
    import zim
    zim_data_dir = File(zim.ZIM_EXECUTABLE).dir.subdir('data')
    if zim_data_dir.exists():
        ZIM_DATA_DIR = zim_data_dir

    if os.name == 'nt':
        APPDATA = environ['APPDATA']

        XDG_DATA_HOME = Dir(
            environ.get('XDG_DATA_HOME', APPDATA + r'\zim\data'))

        XDG_DATA_DIRS = map(Dir,
                            environ.get_list(
                                'XDG_DATA_DIRS',
                                '~/.local/share/'))  # Backwards compatibility

        XDG_CONFIG_HOME = Dir(
            environ.get('XDG_CONFIG_HOME', APPDATA + r'\zim\config'))

        XDG_CONFIG_DIRS = map(
            Dir, environ.get_list('XDG_CONFIG_DIRS',
                                  '~/.config/'))  # Backwards compatibility

        try:
            import _winreg as wreg
            wreg_key = wreg.OpenKey(
                wreg.HKEY_CURRENT_USER,
                r'Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders'
            )
            cache_dir = str(
                wreg.QueryValueEx(wreg_key,
                                  "Cache")[0].replace(u'%USERPROFILE%',
                                                      environ['USERPROFILE']))
            wreg.CloseKey(wreg_key)
        except:
            cache_dir = APPDATA + r'\zim\cache'
            # Not using TMP here because it is cleaned too often

        XDG_CACHE_HOME = Dir(environ.get('XDG_CACHE_HOME',
                                         cache_dir + r'\zim'))
    else:
        XDG_DATA_HOME = Dir(environ.get('XDG_DATA_HOME', '~/.local/share/'))

        XDG_DATA_DIRS = map(
            Dir,
            environ.get_list('XDG_DATA_DIRS',
                             ('/usr/share/', '/usr/local/share/')))

        XDG_CONFIG_HOME = Dir(environ.get('XDG_CONFIG_HOME', '~/.config/'))

        XDG_CONFIG_DIRS = map(
            Dir, environ.get_list('XDG_CONFIG_DIRS', ('/etc/xdg/', )))

        XDG_CACHE_HOME = Dir(environ.get('XDG_CACHE_HOME', '~/.cache'))