def test_use_trash_is_true_by_default_on_posix(self): old_os_name = os.name old_sys_platform = sys.platform try: os.name = 'posix' sys.platform = 'linux' if not is_flatpak(): self.assertTrue(use_trash()) finally: os.name = old_os_name sys.platform = old_sys_platform
l = {"~#foo": 42, "bar": 42, "~#bla": u"42"} self.failUnless("~#foo" in sanitize_tags(l)) self.failUnless("~#bar" in sanitize_tags(l)) self.failUnless("bla" in sanitize_tags(l)) l = {} l["extended-comment"] = [u"location=1", u"website=2", u"website=3"] l = parse_gstreamer_taglist(l) l = sanitize_tags(l)["website"].split("\n") self.failUnless("1" in l) self.failUnless("2" in l) self.failUnless("3" in l) @skipUnless(Gst, "GStreamer missing") @skipUnless(sys.platform == "darwin" or os.name == "nt" or is_flatpak(), "no control over gst") class TGStreamerCodecs(TestCase): def setUp(self): config.init() def tearDown(self): config.quit() def _check(self, song): old_threshold = Gst.debug_get_default_threshold() Gst.debug_set_default_threshold(Gst.DebugLevel.NONE) pipeline = Gst.parse_launch( "uridecodebin uri=%s ! fakesink" % song("~uri"))
l = {"~#foo": 42, "bar": 42, "~#bla": u"42"} self.failUnless("~#foo" in sanitize_tags(l)) self.failUnless("~#bar" in sanitize_tags(l)) self.failUnless("bla" in sanitize_tags(l)) l = {} l["extended-comment"] = [u"location=1", u"website=2", u"website=3"] l = parse_gstreamer_taglist(l) l = sanitize_tags(l)["website"].split("\n") self.failUnless("1" in l) self.failUnless("2" in l) self.failUnless("3" in l) @skipUnless(Gst, "GStreamer missing") @skipUnless(sys.platform == "darwin" or os.name == "nt" or is_flatpak(), "no control over gst") class TGStreamerCodecs(TestCase): def setUp(self): config.init() def tearDown(self): config.quit() def _check(self, song): old_threshold = Gst.debug_get_default_threshold() Gst.debug_set_default_threshold(Gst.DebugLevel.NONE) pipeline = Gst.parse_launch("uridecodebin uri=%s ! fakesink" % song("~uri")) bus = pipeline.get_bus()
def init_test_environ(): """This needs to be called before any test can be run. Before exiting the process call exit_test_environ() to clean up any resources created. """ global _TEMP_DIR, _BUS_INFO, _VDISPLAY # create a user dir in /tmp and set env vars _TEMP_DIR = tempfile.mkdtemp(prefix=fsnative(u"QL-TEST-")) # needed for dbus/dconf runtime_dir = tempfile.mkdtemp(prefix=fsnative(u"RUNTIME-"), dir=_TEMP_DIR) os.chmod(runtime_dir, 0o700) environ["XDG_RUNTIME_DIR"] = runtime_dir # force the old cache dir so that GStreamer can re-use the GstRegistry # cache file environ["XDG_CACHE_HOME"] = xdg_get_cache_home() # GStreamer will update the cache if the environment has changed # (in Gst.init()). Since it takes 0.5s here and doesn't add much, # disable it. If the registry cache is missing it will be created # despite this setting. environ["GST_REGISTRY_UPDATE"] = fsnative(u"no") # In flatpak we might get a registry from a different/old flatpak build # when testing new versions etc. Better always update in that case. if util.is_flatpak(): del environ["GST_REGISTRY_UPDATE"] # set HOME and remove all XDG vars that default to it if not set home_dir = tempfile.mkdtemp(prefix=fsnative(u"HOME-"), dir=_TEMP_DIR) environ["HOME"] = home_dir # set to new default environ.pop("XDG_DATA_HOME", None) environ.pop("XDG_CONFIG_HOME", None) # don't use dconf environ["GSETTINGS_BACKEND"] = "memory" # don't use dconf environ["GSETTINGS_BACKEND"] = "memory" # Force the default theme so broken themes don't affect the tests environ["GTK_THEME"] = "Adwaita" if xvfbwrapper is not None: _VDISPLAY = xvfbwrapper.Xvfb() _VDISPLAY.start() _BUS_INFO = None if os.name != "nt" and sys.platform != "darwin": _BUS_INFO = dbus_launch_user() environ.update(_BUS_INFO) quodlibet.init(no_translations=True, no_excepthook=True) quodlibet.app.name = "QL Tests" # try to make things the same in case a different locale is active. # LANG for gettext, setlocale for number formatting etc. # Note: setlocale has to be called after Gtk.init() try: if os.name != "nt": environ["LANG"] = locale.setlocale(locale.LC_ALL, "en_US.UTF-8") else: environ["LANG"] = "en_US.utf8" locale.setlocale(locale.LC_ALL, "english") except locale.Error: pass