def cache_file(app_name=APPNAME, app_author=APPAUTHOR, filename=DATABASENAME): """Returns the filename (including path) for the data cache. The path will depend on the operating system, certain environmental variables and whether it is being run inside a virtual environment. See `homebase <https://github.com/dwavesystems/homebase>`_. Args: app_name (str, optional): The application name. Default is given by :obj:`.APPNAME`. app_author (str, optional): The application author. Default is given by :obj:`.APPAUTHOR`. filename (str, optional): The name of the database file. Default is given by :obj:`DATABASENAME`. Returns: str: The full path to the file that can be used as a cache. Notes: Creates the directory if it does not already exist. If run inside of a virtual environment, the cache will be stored in `/path/to/virtualenv/data/app_name` """ user_data_dir = homebase.user_data_dir(app_name=app_name, app_author=app_author, create=True) return os.path.join(user_data_dir, filename)
def test_user_data_roaming(self): expected = os.path.join(self.roaming_base_path, self.app_author, self.app_name) self.assertEqual( expected, homebase.user_data_dir(self.app_name, self.app_author, roaming=True))
def test_user_data_no_version_venv_no_create(self): expected = os.path.join( self.base_paths[self.platform]['user_data_venv'], self.app_name) self.assertEqual( expected, homebase.user_data_dir(self.app_name, app_author=self.app_author, version=None, use_virtualenv=True, create=False))
def test_user_data_version_venv_no_create(self): version = '1.0' expected = os.path.join( self.base_paths[self.platform]['user_data_venv'], '{}_{}'.format(self.app_name, version)) result = homebase.user_data_dir(self.app_name, app_author=self.app_author, version=version, use_virtualenv=True, create=False) self.assertEqual(expected, result)
def test_user_data_version_no_venv_create(self): version = "1.0" expected = os.path.join(self.base_paths[self.platform]['user_data'], '{}_{}'.format(self.app_name, version)) if os.path.exists(expected): shutil.rmtree(expected) result = homebase.user_data_dir(self.app_name, app_author=self.app_author, version=version, use_virtualenv=False, create=True) self.assertEqual(expected, result) self.assertTrue(os.path.exists(expected)) shutil.rmtree(expected)
def test_user_data_no_version_venv_create(self): expected = os.path.join( self.base_paths[self.platform]['user_data_venv'], self.app_name) if os.path.exists(expected): shutil.rmtree(expected) self.assertEqual( expected, homebase.user_data_dir(self.app_name, app_author=self.app_author, version=None, use_virtualenv=True, create=True)) self.assertTrue(os.path.exists(expected)) shutil.rmtree(expected)
def test_user_data_no_app_author(self): with self.assertRaises(RuntimeError): homebase.user_data_dir(self.app_name, app_author=None)