Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
 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))
Ejemplo n.º 3
0
 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))
Ejemplo n.º 4
0
 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)
Ejemplo n.º 5
0
 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)
Ejemplo n.º 6
0
 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)
Ejemplo n.º 7
0
 def test_user_data_no_app_author(self):
     with self.assertRaises(RuntimeError):
         homebase.user_data_dir(self.app_name, app_author=None)