diff options
Diffstat (limited to 'tests/functional-tests/common/utils/system.py')
-rw-r--r-- | tests/functional-tests/common/utils/system.py | 152 |
1 files changed, 0 insertions, 152 deletions
diff --git a/tests/functional-tests/common/utils/system.py b/tests/functional-tests/common/utils/system.py index 3d15a3795..013e4b7ec 100644 --- a/tests/functional-tests/common/utils/system.py +++ b/tests/functional-tests/common/utils/system.py @@ -1,153 +1 @@ #!/usr/bin/python -import os -import subprocess -import shutil -import configuration as cfg - -from gi.repository import GObject -from gi.repository import GLib -import time - -import options -from dconf import DConfClient - -import helpers - -# Add this after fixing the backup/restore and ontology changes tests -#"G_DEBUG" : "fatal_criticals", - -TEST_ENV_DIRS = { "XDG_DATA_HOME" : os.path.join (cfg.TEST_TMP_DIR, "data"), - "XDG_CACHE_HOME": os.path.join (cfg.TEST_TMP_DIR, "cache")} - -TEST_ENV_VARS = { "LC_COLLATE": "en_GB.utf8" } - -EXTRA_DIRS = [os.path.join (cfg.TEST_TMP_DIR, "data", "tracker"), - os.path.join (cfg.TEST_TMP_DIR, "cache", "tracker")] - -REASONABLE_TIMEOUT = 5 - -class UnableToBootException (Exception): - pass - - -class TrackerSystemAbstraction (object): - def __init__(self, settings=None, ontodir=None): - self.set_up_environment (settings=settings, ontodir=ontodir) - self.store = None - - def set_up_environment (self, settings=None, ontodir=None): - """ - Sets up the XDG_*_HOME variables and make sure the directories exist - - Settings should be a dict mapping schema names to dicts that hold the - settings that should be changed in those schemas. The contents dicts - should map key->value, where key is a key name and value is a suitable - GLib.Variant instance. - """ - - helpers.log ("[Conf] Setting test environment...") - - for var, directory in TEST_ENV_DIRS.iteritems (): - helpers.log ("export %s=%s" %(var, directory)) - self.__recreate_directory (directory) - os.environ [var] = directory - - for directory in EXTRA_DIRS: - self.__recreate_directory (directory) - - if ontodir: - helpers.log ("export %s=%s" % ("TRACKER_DB_ONTOLOGIES_DIR", ontodir)) - os.environ ["TRACKER_DB_ONTOLOGIES_DIR"] = ontodir - - for var, value in TEST_ENV_VARS.iteritems (): - helpers.log ("export %s=%s" %(var, value)) - os.environ [var] = value - - # Previous loop should have set DCONF_PROFILE to the test location - if settings is not None: - self._apply_settings(settings) - - helpers.log ("[Conf] environment ready") - - def _apply_settings(self, settings): - for schema_name, contents in settings.iteritems(): - dconf = DConfClient(schema_name) - dconf.reset() - for key, value in contents.iteritems(): - dconf.write(key, value) - - def tracker_store_testing_start (self, confdir=None, ontodir=None): - """ - Stops any previous instance of the store, calls set_up_environment, - and starts a new instances of the store - """ - self.set_up_environment (confdir, ontodir) - - self.store = helpers.StoreHelper () - self.store.start () - - def tracker_store_start (self): - self.store.start () - - def tracker_store_stop_nicely (self): - self.store.stop () - - def tracker_store_stop_brutally (self): - self.store.kill () - - def tracker_store_restart_with_new_ontologies (self, ontodir): - self.store.stop () - if ontodir: - helpers.log ("[Conf] Setting %s - %s" % ("TRACKER_DB_ONTOLOGIES_DIR", ontodir)) - os.environ ["TRACKER_DB_ONTOLOGIES_DIR"] = ontodir - try: - self.store.start () - except GLib.Error: - raise UnableToBootException ("Unable to boot the store \n(" + str(e) + ")") - - def tracker_store_prepare_journal_replay (self): - db_location = os.path.join (TEST_ENV_DIRS ['XDG_CACHE_HOME'], "tracker", "meta.db") - os.unlink (db_location) - - lockfile = os.path.join (TEST_ENV_DIRS ['XDG_DATA_HOME'], "tracker", "data", ".ismeta.running") - f = open (lockfile, 'w') - f.write (" ") - f.close () - - def tracker_store_corrupt_dbs (self): - for filename in ["meta.db", "meta.db-wal"]: - db_path = os.path.join (TEST_ENV_DIRS ['XDG_CACHE_HOME'], "tracker", filename) - f = open (db_path, "w") - for i in range (0, 100): - f.write ("Some stupid content... hohohoho, not a sqlite file anymore!\n") - f.close () - - def tracker_store_remove_journal (self): - db_location = os.path.join (TEST_ENV_DIRS ['XDG_DATA_HOME'], "tracker", "data") - shutil.rmtree (db_location) - os.mkdir (db_location) - - def tracker_store_remove_dbs (self): - db_location = os.path.join (TEST_ENV_DIRS ['XDG_CACHE_HOME'], "tracker") - shutil.rmtree (db_location) - os.mkdir (db_location) - - def tracker_store_testing_stop (self): - """ - Stops a running tracker-store - """ - assert self.store - self.store.stop () - - def tracker_all_testing_start (self, confdir=None): - # This will start all miner-fs, store and writeback - self.tracker_writeback_testing_start (confdir) - - def tracker_all_testing_stop (self): - # This will stop all miner-fs, store and writeback - self.tracker_writeback_testing_stop () - - def __recreate_directory (self, directory): - if (os.path.exists (directory)): - shutil.rmtree (directory) - os.makedirs (directory) |