Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

quodlibet: 4.2.1 -> 4.3.0, fix tests #101266

Merged
merged 3 commits into from Dec 7, 2020
Merged

Conversation

pbogdan
Copy link
Member

@pbogdan pbogdan commented Oct 21, 2020

Motivation for this change

Package doesn't build (due to failing tests) and is out of date.

Things done

I'm not very familiar with the application so I can't really test it very extensively but at least it builds and runs now.

  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

Copy link
Contributor

@jtojnar jtojnar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changelog looks alright to me.

Copy link
Member

@sauyon sauyon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Would you like to take maintainer status? Frankly I have no clue how GTK works on Nix, and I no longer use NixOS or this package, so I should probably be dropped as a maintainer.

@bhipple
Copy link
Contributor

bhipple commented Oct 30, 2020

Result of nixpkgs-review pr 101266 1

2 packages failed to build:
- quodlibet-full
- quodlibet-xine-full
3 packages built:
- quodlibet
- quodlibet-without-gst-plugins
- quodlibet-xine

@roberth
Copy link
Member

roberth commented Nov 10, 2020

nix-build -A quodlibet-full fails with

running install tests
gtk-update-icon-cache: Cache file created successfully.
============================= test session starts ==============================
platform linux -- Python 3.8.6, pytest-5.4.3, py-1.9.0, pluggy-0.13.1
rootdir: /build/quodlibet-4.3.0, inifile: setup.cfg
plugins: xdist-1.34.0, forked-1.3.0
collected 2993 items                                                           

tests/test___init__.py .....                                             [  0%]
tests/test_appdata_files.py ssss                                         [  0%]
tests/test_browsers___init__.py .........                                [  0%]
tests/test_browsers__base.py ........................................... [  2%]
........................................................................ [  4%]
...............................................                          [  6%]
tests/test_browsers_albums.py ................                           [  6%]
tests/test_browsers_audiofeeds.py ...                                    [  6%]
tests/test_browsers_collection.py .......                                [  6%]
tests/test_browsers_filesystem.py .                                      [  6%]
tests/test_browsers_paned.py ........................................... [  8%]
......                                                                   [  8%]
tests/test_browsers_playlists.py ....................                    [  9%]
tests/test_browsers_search.py ............                               [  9%]
tests/test_browsers_soundcloud.py ..........                             [  9%]
tests/test_cli.py ..                                                     [ 10%]
tests/test_commands.py .....                                             [ 10%]
tests/test_config.py ....                                                [ 10%]
tests/test_desktop_files.py ....                                         [ 10%]
tests/test_errorreport.py .......                                        [ 10%]
tests/test_formats___init__.py ............                              [ 11%]
tests/test_formats__audio.py ........................................... [ 12%]
.................................................................        [ 14%]
tests/test_formats__id3.py ............................................. [ 16%]
...................................                                      [ 17%]
tests/test_formats__image.py ...........                                 [ 17%]
tests/test_formats_aac.py ....................                           [ 18%]
tests/test_formats_aiff.py ......                                        [ 18%]
tests/test_formats_all.py .............................................. [ 20%]
..................................................                       [ 21%]
tests/test_formats_apev2.py ....................................         [ 23%]
tests/test_formats_dsf.py .......                                        [ 23%]
tests/test_formats_midi.py ......                                        [ 23%]
tests/test_formats_mod.py sss                                            [ 23%]
tests/test_formats_mp3.py .......                                        [ 23%]
tests/test_formats_mp4.py .........................                      [ 24%]
tests/test_formats_mpc.py ........                                       [ 24%]
tests/test_formats_remote.py ..                                          [ 24%]
tests/test_formats_spc.py ......                                         [ 25%]
tests/test_formats_trueaudio.py ...                                      [ 25%]
tests/test_formats_vgm.py .......                                        [ 25%]
tests/test_formats_wav.py .........                                      [ 25%]
tests/test_formats_wavpack.py .....                                      [ 25%]
tests/test_formats_wma.py .......................                        [ 26%]
tests/test_formats_xiph.py ............................................. [ 28%]
......................................................                   [ 30%]
tests/test_https.py sssss                                                [ 30%]
tests/test_icons.py .                                                    [ 30%]
tests/test_image_support.py ..                                           [ 30%]
tests/test_library_librarians.py ..........................              [ 31%]
tests/test_library_libraries.py ........................................ [ 32%]
........................................................................ [ 34%]
.                                                                        [ 34%]
tests/test_metadata.py ................................................. [ 36%]
........................................................................ [ 38%]
........................................................................ [ 41%]
........................................................................ [ 43%]
........................................................................ [ 46%]
........................................................................ [ 48%]
................................                                         [ 49%]
tests/test_mmkeys.py ..                                                  [ 49%]
tests/test_order.py ...                                                  [ 49%]
tests/test_pattern.py .................................................. [ 51%]
..........................                                               [ 52%]
tests/test_player.py ..........................ssssssssssssssssssssss... [ 54%]
........................                                                 [ 54%]
tests/test_player_gst.py .......s                                        [ 55%]
tests/test_player_xine.py ss                                             [ 55%]
tests/test_playlist_menu.py .                                            [ 55%]
tests/test_plugins___init__.py .......................                   [ 56%]
tests/test_plugins_cover.py ............                                 [ 56%]
tests/test_plugins_events.py ....                                        [ 56%]
tests/test_plugins_playlist.py ..........                                [ 56%]
tests/test_plugins_songsmenu.py ..............                           [ 57%]
tests/test_po.py ....................................................... [ 59%]
........................................................................ [ 61%]
.....................                                                    [ 62%]
tests/test_qltk___init__.py ................                             [ 62%]
tests/test_qltk__editutils.py ......                                     [ 63%]
tests/test_qltk_about.py .                                               [ 63%]
tests/test_qltk_bookmarks.py ...                                         [ 63%]
tests/test_qltk_browser.py ..                                            [ 63%]
tests/test_qltk_cbes.py ..........                                       [ 63%]
tests/test_qltk_ccb.py ....                                              [ 63%]
tests/test_qltk_chooser.py .......                                       [ 63%]
tests/test_qltk_completion.py ...                                        [ 64%]
tests/test_qltk_controls.py ...                                          [ 64%]
tests/test_qltk_cover.py ....                                            [ 64%]
tests/test_qltk_data_editors.py ..                                       [ 64%]
tests/test_qltk_delete.py .........                                      [ 64%]
tests/test_qltk_edittags.py ....                                         [ 64%]
tests/test_qltk_entry.py .............                                   [ 65%]
tests/test_qltk_exfalso.py .                                             [ 65%]
tests/test_qltk_filesel.py ............                                  [ 65%]
tests/test_qltk_getstring.py ...                                         [ 65%]
tests/test_qltk_image.py ......                                          [ 65%]
tests/test_qltk_info.py .                                                [ 65%]
tests/test_qltk_information.py ..........                                [ 66%]
tests/test_qltk_lyrics.py ....                                           [ 66%]
tests/test_qltk_maskedbox.py .                                           [ 66%]
tests/test_qltk_models.py .............................................. [ 68%]
......................                                                   [ 68%]
tests/test_qltk_msg.py ....                                              [ 68%]
tests/test_qltk_notif.py ..                                              [ 68%]
tests/test_qltk_paned.py .......................                         [ 69%]
tests/test_qltk_playorder.py ............                                [ 70%]
tests/test_qltk_pluginwin.py ......                                      [ 70%]
tests/test_qltk_prefs.py .                                               [ 70%]
tests/test_qltk_properties.py ....                                       [ 70%]
tests/test_qltk_queue.py ....                                            [ 70%]
tests/test_qltk_quodlibetwindow.py ..                                    [ 70%]
tests/test_qltk_ratingsmenu.py ...                                       [ 70%]
tests/test_qltk_renamefiles.py .........................                 [ 71%]
tests/test_qltk_scanbox.py .                                             [ 71%]
tests/test_qltk_searchbar.py ..                                          [ 71%]
tests/test_qltk_seekbutton.py ...                                        [ 71%]
tests/test_qltk_songlist.py ....................                         [ 72%]
tests/test_qltk_songlistcolumns.py ...........                           [ 72%]
tests/test_qltk_songmodel.py ........................................... [ 74%]
........                                                                 [ 74%]
tests/test_qltk_songsmenu.py ..........                                  [ 74%]
tests/test_qltk_tagscombobox.py .......                                  [ 75%]
tests/test_qltk_tagsfrompath.py ....                                     [ 75%]
tests/test_qltk_textedit.py ..........                                   [ 75%]
tests/test_qltk_tracker.py ........                                      [ 75%]
tests/test_qltk_unity.py .                                               [ 75%]
tests/test_qltk_util.py .                                                [ 75%]
tests/test_qltk_views.py ................                                [ 76%]
tests/test_qltk_window.py .......                                        [ 76%]
tests/test_qltk_wlw.py ......                                            [ 76%]
tests/test_qltk_x.py .........                                           [ 77%]
tests/test_query.py ...................................ss............... [ 78%]
............                                                             [ 79%]
tests/test_query__match.py ......                                        [ 79%]
tests/test_remote.py ..                                                  [ 79%]
tests/test_session.py ..                                                 [ 79%]
tests/test_soundcloudFile.py ..                                          [ 79%]
tests/test_soundcloudLibrary.py ..                                       [ 79%]
tests/test_source.py ..                                                  [ 79%]
tests/test_unisearch.py ....................                             [ 80%]
tests/test_update.py .                                                   [ 80%]
tests/test_util.py ..................................................... [ 82%]
........................................................................ [ 84%]
..................................                                       [ 85%]
tests/test_util_atomic.py ...                                            [ 86%]
tests/test_util_collection.py .......................................... [ 87%]
.........................                                                [ 88%]
tests/test_util_collections.py ..........................                [ 89%]
tests/test_util_config.py ...............................                [ 90%]
tests/test_util_copool.py ........                                       [ 90%]
tests/test_util_cover.py ...............                                 [ 90%]
tests/test_util_dbusutils.py .....                                       [ 91%]
tests/test_util_dprint.py ....                                           [ 91%]
tests/test_util_environment.py ..                                        [ 91%]
tests/test_util_fifo.py ...                                              [ 91%]
tests/test_util_i18n.py ...............                                  [ 91%]
tests/test_util_json_data.py ........                                    [ 92%]
tests/test_util_library.py ........                                      [ 92%]
tests/test_util_logging.py ......                                        [ 92%]
tests/test_util_massagers.py .................                           [ 93%]
tests/test_util_modulescanner.py ...........                             [ 93%]
tests/test_util_path.py .............                                    [ 93%]
tests/test_util_picklehelper.py .......                                  [ 94%]
tests/test_util_string.py .                                              [ 94%]
tests/test_util_string_filter.py .....                                   [ 94%]
tests/test_util_string_splitters.py ................................     [ 95%]
tests/test_util_string_titlecase.py ...............                      [ 95%]
tests/test_util_tags.py ..                                               [ 96%]
tests/test_util_tagsfrompath.py ...........                              [ 96%]
tests/test_util_thread.py ...                                            [ 96%]
tests/test_util_thumbnails.py .......                                    [ 96%]
tests/test_util_trash.py .....                                           [ 96%]
tests/test_windows.py ssss                                               [ 97%]
tests/plugin/test_albumart.py ..                                         [ 97%]
tests/plugin/test_bansheeimport.py .                                     [ 97%]
tests/plugin/test_brainz.py ..........                                   [ 97%]
tests/plugin/test_clock.py .                                             [ 97%]
tests/plugin/test_console.py .                                           [ 97%]
tests/plugin/test_cover_download.py .                                    [ 97%]
tests/plugin/test_covers.py .                                            [ 97%]
tests/plugin/test_custom_commands.py ...                                 [ 97%]
tests/plugin/test_duplicates_browser.py .                                [ 97%]
tests/plugin/test_fingerprint.py .....                                   [ 97%]
tests/plugin/test_html.py ..                                             [ 97%]
tests/plugin/test_importexport.py ....                                   [ 98%]
tests/plugin/test_mediaserver.py FF                                      [ 98%]
tests/plugin/test_migratemetadata.py ..                                  [ 98%]
tests/plugin/test_mpdserver.py ..FFFF                                    [ 98%]
tests/plugin/test_mpris.py FFFFF                                         [ 98%]
tests/plugin/test_prefs.py F                                             [ 98%]
tests/plugin/test_query.py ....                                          [ 98%]
tests/plugin/test_randomalbum.py FFFFFFF                                 [ 99%]
tests/plugin/test_rbimport.py .                                          [ 99%]
tests/plugin/test_replaygain.py .......                                  [ 99%]
tests/plugin/test_seekbar.py .                                           [ 99%]
tests/plugin/test_songsmenu.py s..                                       [ 99%]
tests/plugin/test_style.py ..                                            [ 99%]
tests/plugin/test_test_plugins.py .                                      [ 99%]
tests/plugin/test_titlecase.py ...                                       [ 99%]
tests/plugin/test_viewlyrics.py FFFFF                                    [ 99%]
tests/plugin/test_waveformseekbar.py ..                                  [ 99%]
tests/plugin/test_website_search.py ....                                 [100%]

=================================== FAILURES ===================================
_________________________ TMediaServer.test_entry_name _________________________

self = <tests.plugin.test_mediaserver.TMediaServer testMethod=test_entry_name>

    def setUp(self):
        config.init()
        init_fake_app()
    
        self.plugin = self.plugins["mediaserver"].cls
        self.m = self.plugin()
>       self.m.enabled()

tests/plugin/test_mediaserver.py:30: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
quodlibet/ext/events/mediaserver.py:75: in enabled
    icon = Icon(entry)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <quodlibet.fake.plugins.mediaserver.Icon at /org/gnome/UPnP/MediaServer2/Icon at 0x7fffc99decd0>
parent = <quodlibet.fake.plugins.mediaserver.EntryObject at /org/gnome/UPnP/MediaServer2/QuodLibet at 0x7fffc99debb0>

    def __init__(self, parent):
        DBusIntrospectable.__init__(self)
        DBusProperty.__init__(self)
        MediaObject.__init__(self, parent=parent)
        MediaItem.__init__(self, optional=["Height", "Width", "ColorDepth"])
    
        bus = dbus.SessionBus()
        name = dbus.service.BusName(BUS_NAME, bus)
        dbus.service.Object.__init__(self, bus, self.PATH, name)
    
        # https://bugzilla.gnome.org/show_bug.cgi?id=669677
        self.implement_interface("org.gnome.UPnP.MediaItem1", MediaItem.IFACE)
    
        # load into a pixbuf
        theme = Gtk.IconTheme.get_default()
>       pixbuf = theme.load_icon(Icons.QUODLIBET, Icon.SIZE, 0)
E       gi.repository.GLib.GError: gtk-icon-theme-error-quark: Icon 'io.github.quodlibet.QuodLibet' not present in theme Adwaita (0)

quodlibet/ext/events/mediaserver.py:648: Error
_________________________ TMediaServer.test_name_owner _________________________

self = <tests.plugin.test_mediaserver.TMediaServer testMethod=test_name_owner>

    def setUp(self):
        config.init()
>       init_fake_app()

tests/plugin/test_mediaserver.py:26: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/__init__.py:125: in init_fake_app
    app.window = QuodLibetWindow(app.library, app.player, headless=True)
quodlibet/qltk/quodlibetwindow.py:611: in __init__
    statusbox = StatusBarBox(play_order, self.qexpander)
quodlibet/qltk/quodlibetwindow.py:356: in __init__
    self.statusbar = StatusBar(TaskController.default_instance)
quodlibet/qltk/notif.py:292: in __init__
    self.task_controller.parent = self
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <quodlibet.qltk.notif.ParentProperty object at 0x7fffe64fa820>
inst = <quodlibet.qltk.notif.TaskController object at 0x7fffe64fa790>
value = <notif.StatusBar object at 0x7fffc98fe840 (quodlibet+qltk+notif+StatusBar at 0xa676570)>

    def __set__(self, inst, value):
        if getattr(inst, '_parent', None) is not None and value is not None:
>           raise ValueError("Cannot set parent property without first "
                    "setting it to 'None'.")
E           ValueError: Cannot set parent property without first setting it to 'None'.

quodlibet/qltk/notif.py:49: ValueError
__________________________ TMPDCommands.test_commands __________________________

self = <tests.plugin.test_mpdserver.TMPDCommands testMethod=test_commands>

    def setUp(self):
        self.mod = self.modules["mpd_server"]
        config.init()
>       init_fake_app()

tests/plugin/test_mpdserver.py:71: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/__init__.py:125: in init_fake_app
    app.window = QuodLibetWindow(app.library, app.player, headless=True)
quodlibet/qltk/quodlibetwindow.py:611: in __init__
    statusbox = StatusBarBox(play_order, self.qexpander)
quodlibet/qltk/quodlibetwindow.py:356: in __init__
    self.statusbar = StatusBar(TaskController.default_instance)
quodlibet/qltk/notif.py:292: in __init__
    self.task_controller.parent = self
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <quodlibet.qltk.notif.ParentProperty object at 0x7fffe64fa820>
inst = <quodlibet.qltk.notif.TaskController object at 0x7fffe64fa790>
value = <notif.StatusBar object at 0x7fffcac79b80 (quodlibet+qltk+notif+StatusBar at 0xa79a990)>

    def __set__(self, inst, value):
        if getattr(inst, '_parent', None) is not None and value is not None:
>           raise ValueError("Cannot set parent property without first "
                    "setting it to 'None'.")
E           ValueError: Cannot set parent property without first setting it to 'None'.

quodlibet/qltk/notif.py:49: ValueError
_____________________ TMPDCommands.test_currentsong_length _____________________

self = <tests.plugin.test_mpdserver.TMPDCommands testMethod=test_currentsong_length>

    def setUp(self):
        self.mod = self.modules["mpd_server"]
        config.init()
>       init_fake_app()

tests/plugin/test_mpdserver.py:71: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/__init__.py:125: in init_fake_app
    app.window = QuodLibetWindow(app.library, app.player, headless=True)
quodlibet/qltk/quodlibetwindow.py:611: in __init__
    statusbox = StatusBarBox(play_order, self.qexpander)
quodlibet/qltk/quodlibetwindow.py:356: in __init__
    self.statusbar = StatusBar(TaskController.default_instance)
quodlibet/qltk/notif.py:292: in __init__
    self.task_controller.parent = self
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <quodlibet.qltk.notif.ParentProperty object at 0x7fffe64fa820>
inst = <quodlibet.qltk.notif.TaskController object at 0x7fffe64fa790>
value = <notif.StatusBar object at 0x7fffc9905b00 (quodlibet+qltk+notif+StatusBar at 0xa8dd290)>

    def __set__(self, inst, value):
        if getattr(inst, '_parent', None) is not None and value is not None:
>           raise ValueError("Cannot set parent property without first "
                    "setting it to 'None'.")
E           ValueError: Cannot set parent property without first setting it to 'None'.

quodlibet/qltk/notif.py:49: ValueError
_________________________ TMPDCommands.test_idle_close _________________________

self = <tests.plugin.test_mpdserver.TMPDCommands testMethod=test_idle_close>

    def setUp(self):
        self.mod = self.modules["mpd_server"]
        config.init()
>       init_fake_app()

tests/plugin/test_mpdserver.py:71: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/__init__.py:125: in init_fake_app
    app.window = QuodLibetWindow(app.library, app.player, headless=True)
quodlibet/qltk/quodlibetwindow.py:611: in __init__
    statusbox = StatusBarBox(play_order, self.qexpander)
quodlibet/qltk/quodlibetwindow.py:356: in __init__
    self.statusbar = StatusBar(TaskController.default_instance)
quodlibet/qltk/notif.py:292: in __init__
    self.task_controller.parent = self
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <quodlibet.qltk.notif.ParentProperty object at 0x7fffe64fa820>
inst = <quodlibet.qltk.notif.TaskController object at 0x7fffe64fa790>
value = <notif.StatusBar object at 0x7fffcac63fc0 (quodlibet+qltk+notif+StatusBar at 0xa9fdaf0)>

    def __set__(self, inst, value):
        if getattr(inst, '_parent', None) is not None and value is not None:
>           raise ValueError("Cannot set parent property without first "
                    "setting it to 'None'.")
E           ValueError: Cannot set parent property without first setting it to 'None'.

quodlibet/qltk/notif.py:49: ValueError
__________________________ TMPDCommands.test_tagtypes __________________________

self = <tests.plugin.test_mpdserver.TMPDCommands testMethod=test_tagtypes>

    def setUp(self):
        self.mod = self.modules["mpd_server"]
        config.init()
>       init_fake_app()

tests/plugin/test_mpdserver.py:71: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/__init__.py:125: in init_fake_app
    app.window = QuodLibetWindow(app.library, app.player, headless=True)
quodlibet/qltk/quodlibetwindow.py:611: in __init__
    statusbox = StatusBarBox(play_order, self.qexpander)
quodlibet/qltk/quodlibetwindow.py:356: in __init__
    self.statusbar = StatusBar(TaskController.default_instance)
quodlibet/qltk/notif.py:292: in __init__
    self.task_controller.parent = self
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <quodlibet.qltk.notif.ParentProperty object at 0x7fffe64fa820>
inst = <quodlibet.qltk.notif.TaskController object at 0x7fffe64fa790>
value = <notif.StatusBar object at 0x7fffc8be1980 (quodlibet+qltk+notif+StatusBar at 0xab44440)>

    def __set__(self, inst, value):
        if getattr(inst, '_parent', None) is not None and value is not None:
>           raise ValueError("Cannot set parent property without first "
                    "setting it to 'None'.")
E           ValueError: Cannot set parent property without first setting it to 'None'.

quodlibet/qltk/notif.py:49: ValueError
_______________________________ TMPRIS.test_main _______________________________

self = <tests.plugin.test_mpris.TMPRIS testMethod=test_main>

    def setUp(self):
        self.plugin = self.plugins["mpris"].cls
    
        config.init()
>       init_fake_app()

tests/plugin/test_mpris.py:52: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/__init__.py:125: in init_fake_app
    app.window = QuodLibetWindow(app.library, app.player, headless=True)
quodlibet/qltk/quodlibetwindow.py:611: in __init__
    statusbox = StatusBarBox(play_order, self.qexpander)
quodlibet/qltk/quodlibetwindow.py:356: in __init__
    self.statusbar = StatusBar(TaskController.default_instance)
quodlibet/qltk/notif.py:292: in __init__
    self.task_controller.parent = self
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <quodlibet.qltk.notif.ParentProperty object at 0x7fffe64fa820>
inst = <quodlibet.qltk.notif.TaskController object at 0x7fffe64fa790>
value = <notif.StatusBar object at 0x7fffc8dbee40 (quodlibet+qltk+notif+StatusBar at 0xac5dcc0)>

    def __set__(self, inst, value):
        if getattr(inst, '_parent', None) is not None and value is not None:
>           raise ValueError("Cannot set parent property without first "
                    "setting it to 'None'.")
E           ValueError: Cannot set parent property without first setting it to 'None'.

quodlibet/qltk/notif.py:49: ValueError
_____________________________ TMPRIS.test_metadata _____________________________

self = <tests.plugin.test_mpris.TMPRIS testMethod=test_metadata>

    def setUp(self):
        self.plugin = self.plugins["mpris"].cls
    
        config.init()
>       init_fake_app()

tests/plugin/test_mpris.py:52: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/__init__.py:125: in init_fake_app
    app.window = QuodLibetWindow(app.library, app.player, headless=True)
quodlibet/qltk/quodlibetwindow.py:611: in __init__
    statusbox = StatusBarBox(play_order, self.qexpander)
quodlibet/qltk/quodlibetwindow.py:356: in __init__
    self.statusbar = StatusBar(TaskController.default_instance)
quodlibet/qltk/notif.py:292: in __init__
    self.task_controller.parent = self
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <quodlibet.qltk.notif.ParentProperty object at 0x7fffe64fa820>
inst = <quodlibet.qltk.notif.TaskController object at 0x7fffe64fa790>
value = <notif.StatusBar object at 0x7fffc8cb4c80 (quodlibet+qltk+notif+StatusBar at 0xad65320)>

    def __set__(self, inst, value):
        if getattr(inst, '_parent', None) is not None and value is not None:
>           raise ValueError("Cannot set parent property without first "
                    "setting it to 'None'.")
E           ValueError: Cannot set parent property without first setting it to 'None'.

quodlibet/qltk/notif.py:49: ValueError
____________________________ TMPRIS.test_name_owner ____________________________

self = <tests.plugin.test_mpris.TMPRIS testMethod=test_name_owner>

    def setUp(self):
        self.plugin = self.plugins["mpris"].cls
    
        config.init()
>       init_fake_app()

tests/plugin/test_mpris.py:52: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/__init__.py:125: in init_fake_app
    app.window = QuodLibetWindow(app.library, app.player, headless=True)
quodlibet/qltk/quodlibetwindow.py:611: in __init__
    statusbox = StatusBarBox(play_order, self.qexpander)
quodlibet/qltk/quodlibetwindow.py:356: in __init__
    self.statusbar = StatusBar(TaskController.default_instance)
quodlibet/qltk/notif.py:292: in __init__
    self.task_controller.parent = self
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <quodlibet.qltk.notif.ParentProperty object at 0x7fffe64fa820>
inst = <quodlibet.qltk.notif.TaskController object at 0x7fffe64fa790>
value = <notif.StatusBar object at 0x7fffc8be1f80 (quodlibet+qltk+notif+StatusBar at 0xae87b30)>

    def __set__(self, inst, value):
        if getattr(inst, '_parent', None) is not None and value is not None:
>           raise ValueError("Cannot set parent property without first "
                    "setting it to 'None'.")
E           ValueError: Cannot set parent property without first setting it to 'None'.

quodlibet/qltk/notif.py:49: ValueError
______________________________ TMPRIS.test_player ______________________________

self = <tests.plugin.test_mpris.TMPRIS testMethod=test_player>

    def setUp(self):
        self.plugin = self.plugins["mpris"].cls
    
        config.init()
>       init_fake_app()

tests/plugin/test_mpris.py:52: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/__init__.py:125: in init_fake_app
    app.window = QuodLibetWindow(app.library, app.player, headless=True)
quodlibet/qltk/quodlibetwindow.py:611: in __init__
    statusbox = StatusBarBox(play_order, self.qexpander)
quodlibet/qltk/quodlibetwindow.py:356: in __init__
    self.statusbar = StatusBar(TaskController.default_instance)
quodlibet/qltk/notif.py:292: in __init__
    self.task_controller.parent = self
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <quodlibet.qltk.notif.ParentProperty object at 0x7fffe64fa820>
inst = <quodlibet.qltk.notif.TaskController object at 0x7fffe64fa790>
value = <notif.StatusBar object at 0x7fffc8cb9c00 (quodlibet+qltk+notif+StatusBar at 0xafca3f0)>

    def __set__(self, inst, value):
        if getattr(inst, '_parent', None) is not None and value is not None:
>           raise ValueError("Cannot set parent property without first "
                    "setting it to 'None'.")
E           ValueError: Cannot set parent property without first setting it to 'None'.

quodlibet/qltk/notif.py:49: ValueError
_________________________ TMPRIS.test_volume_property __________________________

self = <tests.plugin.test_mpris.TMPRIS testMethod=test_volume_property>

    def setUp(self):
        self.plugin = self.plugins["mpris"].cls
    
        config.init()
>       init_fake_app()

tests/plugin/test_mpris.py:52: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/__init__.py:125: in init_fake_app
    app.window = QuodLibetWindow(app.library, app.player, headless=True)
quodlibet/qltk/quodlibetwindow.py:611: in __init__
    statusbox = StatusBarBox(play_order, self.qexpander)
quodlibet/qltk/quodlibetwindow.py:356: in __init__
    self.statusbar = StatusBar(TaskController.default_instance)
quodlibet/qltk/notif.py:292: in __init__
    self.task_controller.parent = self
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <quodlibet.qltk.notif.ParentProperty object at 0x7fffe64fa820>
inst = <quodlibet.qltk.notif.TaskController object at 0x7fffe64fa790>
value = <notif.StatusBar object at 0x7fffc990f400 (quodlibet+qltk+notif+StatusBar at 0xb0f8c90)>

    def __set__(self, inst, value):
        if getattr(inst, '_parent', None) is not None and value is not None:
>           raise ValueError("Cannot set parent property without first "
                    "setting it to 'None'.")
E           ValueError: Cannot set parent property without first setting it to 'None'.

quodlibet/qltk/notif.py:49: ValueError
_______________________________ TPrefs.test_all ________________________________

self = <tests.plugin.test_prefs.TPrefs testMethod=test_all>

    def setUp(self):
        config.init()
>       init_fake_app()

tests/plugin/test_prefs.py:17: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/__init__.py:125: in init_fake_app
    app.window = QuodLibetWindow(app.library, app.player, headless=True)
quodlibet/qltk/quodlibetwindow.py:611: in __init__
    statusbox = StatusBarBox(play_order, self.qexpander)
quodlibet/qltk/quodlibetwindow.py:356: in __init__
    self.statusbar = StatusBar(TaskController.default_instance)
quodlibet/qltk/notif.py:292: in __init__
    self.task_controller.parent = self
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <quodlibet.qltk.notif.ParentProperty object at 0x7fffe64fa820>
inst = <quodlibet.qltk.notif.TaskController object at 0x7fffe64fa790>
value = <notif.StatusBar object at 0x7fffcac76a00 (quodlibet+qltk+notif+StatusBar at 0xa6ebef0)>

    def __set__(self, inst, value):
        if getattr(inst, '_parent', None) is not None and value is not None:
>           raise ValueError("Cannot set parent property without first "
                    "setting it to 'None'.")
E           ValueError: Cannot set parent property without first setting it to 'None'.

quodlibet/qltk/notif.py:49: ValueError
_____________________ TRandomAlbum.test_empty_integration ______________________

self = <tests.plugin.test_randomalbum.TRandomAlbum testMethod=test_empty_integration>

    def setUp(self):
        config.init()
>       init_fake_app()

tests/plugin/test_randomalbum.py:54: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/__init__.py:125: in init_fake_app
    app.window = QuodLibetWindow(app.library, app.player, headless=True)
quodlibet/qltk/quodlibetwindow.py:611: in __init__
    statusbox = StatusBarBox(play_order, self.qexpander)
quodlibet/qltk/quodlibetwindow.py:356: in __init__
    self.statusbar = StatusBar(TaskController.default_instance)
quodlibet/qltk/notif.py:292: in __init__
    self.task_controller.parent = self
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <quodlibet.qltk.notif.ParentProperty object at 0x7fffe64fa820>
inst = <quodlibet.qltk.notif.TaskController object at 0x7fffe64fa790>
value = <notif.StatusBar object at 0x7fffc8b8a780 (quodlibet+qltk+notif+StatusBar at 0xb316740)>

    def __set__(self, inst, value):
        if getattr(inst, '_parent', None) is not None and value is not None:
>           raise ValueError("Cannot set parent property without first "
                    "setting it to 'None'.")
E           ValueError: Cannot set parent property without first setting it to 'None'.

quodlibet/qltk/notif.py:49: ValueError
_________________ TRandomAlbum.test_empty_integration_weighted _________________

self = <tests.plugin.test_randomalbum.TRandomAlbum testMethod=test_empty_integration_weighted>

    def setUp(self):
        config.init()
>       init_fake_app()

tests/plugin/test_randomalbum.py:54: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/__init__.py:125: in init_fake_app
    app.window = QuodLibetWindow(app.library, app.player, headless=True)
quodlibet/qltk/quodlibetwindow.py:611: in __init__
    statusbox = StatusBarBox(play_order, self.qexpander)
quodlibet/qltk/quodlibetwindow.py:356: in __init__
    self.statusbar = StatusBar(TaskController.default_instance)
quodlibet/qltk/notif.py:292: in __init__
    self.task_controller.parent = self
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <quodlibet.qltk.notif.ParentProperty object at 0x7fffe64fa820>
inst = <quodlibet.qltk.notif.TaskController object at 0x7fffe64fa790>
value = <notif.StatusBar object at 0x7fffc95382c0 (quodlibet+qltk+notif+StatusBar at 0xb433f70)>

    def __set__(self, inst, value):
        if getattr(inst, '_parent', None) is not None and value is not None:
>           raise ValueError("Cannot set parent property without first "
                    "setting it to 'None'.")
E           ValueError: Cannot set parent property without first setting it to 'None'.

quodlibet/qltk/notif.py:49: ValueError
______________________ TRandomAlbum.test_score_lastplayed ______________________

self = <tests.plugin.test_randomalbum.TRandomAlbum testMethod=test_score_lastplayed>

    def setUp(self):
        config.init()
>       init_fake_app()

tests/plugin/test_randomalbum.py:54: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/__init__.py:125: in init_fake_app
    app.window = QuodLibetWindow(app.library, app.player, headless=True)
quodlibet/qltk/quodlibetwindow.py:611: in __init__
    statusbox = StatusBarBox(play_order, self.qexpander)
quodlibet/qltk/quodlibetwindow.py:356: in __init__
    self.statusbar = StatusBar(TaskController.default_instance)
quodlibet/qltk/notif.py:292: in __init__
    self.task_controller.parent = self
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <quodlibet.qltk.notif.ParentProperty object at 0x7fffe64fa820>
inst = <quodlibet.qltk.notif.TaskController object at 0x7fffe64fa790>
value = <notif.StatusBar object at 0x7fffc9541a80 (quodlibet+qltk+notif+StatusBar at 0xb575890)>

    def __set__(self, inst, value):
        if getattr(inst, '_parent', None) is not None and value is not None:
>           raise ValueError("Cannot set parent property without first "
                    "setting it to 'None'.")
E           ValueError: Cannot set parent property without first setting it to 'None'.

quodlibet/qltk/notif.py:49: ValueError
___________________ TRandomAlbum.test_score_lastplayed_added ___________________

self = <tests.plugin.test_randomalbum.TRandomAlbum testMethod=test_score_lastplayed_added>

    def setUp(self):
        config.init()
>       init_fake_app()

tests/plugin/test_randomalbum.py:54: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/__init__.py:125: in init_fake_app
    app.window = QuodLibetWindow(app.library, app.player, headless=True)
quodlibet/qltk/quodlibetwindow.py:611: in __init__
    statusbox = StatusBarBox(play_order, self.qexpander)
quodlibet/qltk/quodlibetwindow.py:356: in __init__
    self.statusbar = StatusBar(TaskController.default_instance)
quodlibet/qltk/notif.py:292: in __init__
    self.task_controller.parent = self
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <quodlibet.qltk.notif.ParentProperty object at 0x7fffe64fa820>
inst = <quodlibet.qltk.notif.TaskController object at 0x7fffe64fa790>
value = <notif.StatusBar object at 0x7fffc8c073c0 (quodlibet+qltk+notif+StatusBar at 0xb6c51b0)>

    def __set__(self, inst, value):
        if getattr(inst, '_parent', None) is not None and value is not None:
>           raise ValueError("Cannot set parent property without first "
                    "setting it to 'None'.")
E           ValueError: Cannot set parent property without first setting it to 'None'.

quodlibet/qltk/notif.py:49: ValueError
________________________ TRandomAlbum.test_score_length ________________________

self = <tests.plugin.test_randomalbum.TRandomAlbum testMethod=test_score_length>

    def setUp(self):
        config.init()
>       init_fake_app()

tests/plugin/test_randomalbum.py:54: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/__init__.py:125: in init_fake_app
    app.window = QuodLibetWindow(app.library, app.player, headless=True)
quodlibet/qltk/quodlibetwindow.py:611: in __init__
    statusbox = StatusBarBox(play_order, self.qexpander)
quodlibet/qltk/quodlibetwindow.py:356: in __init__
    self.statusbar = StatusBar(TaskController.default_instance)
quodlibet/qltk/notif.py:292: in __init__
    self.task_controller.parent = self
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <quodlibet.qltk.notif.ParentProperty object at 0x7fffe64fa820>
inst = <quodlibet.qltk.notif.TaskController object at 0x7fffe64fa790>
value = <notif.StatusBar object at 0x7fffc9538480 (quodlibet+qltk+notif+StatusBar at 0xb433b50)>

    def __set__(self, inst, value):
        if getattr(inst, '_parent', None) is not None and value is not None:
>           raise ValueError("Cannot set parent property without first "
                    "setting it to 'None'.")
E           ValueError: Cannot set parent property without first setting it to 'None'.

quodlibet/qltk/notif.py:49: ValueError
________________________ TRandomAlbum.test_score_mixed _________________________

self = <tests.plugin.test_randomalbum.TRandomAlbum testMethod=test_score_mixed>

    def setUp(self):
        config.init()
>       init_fake_app()

tests/plugin/test_randomalbum.py:54: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/__init__.py:125: in init_fake_app
    app.window = QuodLibetWindow(app.library, app.player, headless=True)
quodlibet/qltk/quodlibetwindow.py:611: in __init__
    statusbox = StatusBarBox(play_order, self.qexpander)
quodlibet/qltk/quodlibetwindow.py:356: in __init__
    self.statusbar = StatusBar(TaskController.default_instance)
quodlibet/qltk/notif.py:292: in __init__
    self.task_controller.parent = self
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <quodlibet.qltk.notif.ParentProperty object at 0x7fffe64fa820>
inst = <quodlibet.qltk.notif.TaskController object at 0x7fffe64fa790>
value = <notif.StatusBar object at 0x7fffc8c00380 (quodlibet+qltk+notif+StatusBar at 0xb7369a0)>

    def __set__(self, inst, value):
        if getattr(inst, '_parent', None) is not None and value is not None:
>           raise ValueError("Cannot set parent property without first "
                    "setting it to 'None'.")
E           ValueError: Cannot set parent property without first setting it to 'None'.

quodlibet/qltk/notif.py:49: ValueError
________________________ TRandomAlbum.test_score_rating ________________________

self = <tests.plugin.test_randomalbum.TRandomAlbum testMethod=test_score_rating>

    def setUp(self):
        config.init()
>       init_fake_app()

tests/plugin/test_randomalbum.py:54: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/__init__.py:125: in init_fake_app
    app.window = QuodLibetWindow(app.library, app.player, headless=True)
quodlibet/qltk/quodlibetwindow.py:611: in __init__
    statusbox = StatusBarBox(play_order, self.qexpander)
quodlibet/qltk/quodlibetwindow.py:356: in __init__
    self.statusbar = StatusBar(TaskController.default_instance)
quodlibet/qltk/notif.py:292: in __init__
    self.task_controller.parent = self
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <quodlibet.qltk.notif.ParentProperty object at 0x7fffe64fa820>
inst = <quodlibet.qltk.notif.TaskController object at 0x7fffe64fa790>
value = <notif.StatusBar object at 0x7fffc8bee280 (quodlibet+qltk+notif+StatusBar at 0x5ac6310)>

    def __set__(self, inst, value):
        if getattr(inst, '_parent', None) is not None and value is not None:
>           raise ValueError("Cannot set parent property without first "
                    "setting it to 'None'.")
E           ValueError: Cannot set parent property without first setting it to 'None'.

quodlibet/qltk/notif.py:49: ValueError
_______________________ TViewlyrics.test_no_song_started _______________________

self = <tests.plugin.test_viewlyrics.TViewlyrics testMethod=test_no_song_started>

    def setUp(self):
        self.mod = self.modules['View Lyrics']
>       init_fake_app()

tests/plugin/test_viewlyrics.py:22: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/__init__.py:125: in init_fake_app
    app.window = QuodLibetWindow(app.library, app.player, headless=True)
quodlibet/qltk/quodlibetwindow.py:611: in __init__
    statusbox = StatusBarBox(play_order, self.qexpander)
quodlibet/qltk/quodlibetwindow.py:356: in __init__
    self.statusbar = StatusBar(TaskController.default_instance)
quodlibet/qltk/notif.py:292: in __init__
    self.task_controller.parent = self
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <quodlibet.qltk.notif.ParentProperty object at 0x7fffe64fa820>
inst = <quodlibet.qltk.notif.TaskController object at 0x7fffe64fa790>
value = <notif.StatusBar object at 0x7fffc964d500 (quodlibet+qltk+notif+StatusBar at 0xba45b60)>

    def __set__(self, inst, value):
        if getattr(inst, '_parent', None) is not None and value is not None:
>           raise ValueError("Cannot set parent property without first "
                    "setting it to 'None'.")
E           ValueError: Cannot set parent property without first setting it to 'None'.

quodlibet/qltk/notif.py:49: ValueError
_________________________ TViewlyrics.test_on_changed __________________________

self = <tests.plugin.test_viewlyrics.TViewlyrics testMethod=test_on_changed>

    def setUp(self):
        self.mod = self.modules['View Lyrics']
>       init_fake_app()

tests/plugin/test_viewlyrics.py:22: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/__init__.py:125: in init_fake_app
    app.window = QuodLibetWindow(app.library, app.player, headless=True)
quodlibet/qltk/quodlibetwindow.py:611: in __init__
    statusbox = StatusBarBox(play_order, self.qexpander)
quodlibet/qltk/quodlibetwindow.py:356: in __init__
    self.statusbar = StatusBar(TaskController.default_instance)
quodlibet/qltk/notif.py:292: in __init__
    self.task_controller.parent = self
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <quodlibet.qltk.notif.ParentProperty object at 0x7fffe64fa820>
inst = <quodlibet.qltk.notif.TaskController object at 0x7fffe64fa790>
value = <notif.StatusBar object at 0x7fffc9644840 (quodlibet+qltk+notif+StatusBar at 0xbb883f0)>

    def __set__(self, inst, value):
        if getattr(inst, '_parent', None) is not None and value is not None:
>           raise ValueError("Cannot set parent property without first "
                    "setting it to 'None'.")
E           ValueError: Cannot set parent property without first setting it to 'None'.

quodlibet/qltk/notif.py:49: ValueError
_____________________ TViewlyrics.test_on_changed_stopped ______________________

self = <tests.plugin.test_viewlyrics.TViewlyrics testMethod=test_on_changed_stopped>

    def setUp(self):
        self.mod = self.modules['View Lyrics']
>       init_fake_app()

tests/plugin/test_viewlyrics.py:22: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/__init__.py:125: in init_fake_app
    app.window = QuodLibetWindow(app.library, app.player, headless=True)
quodlibet/qltk/quodlibetwindow.py:611: in __init__
    statusbox = StatusBarBox(play_order, self.qexpander)
quodlibet/qltk/quodlibetwindow.py:356: in __init__
    self.statusbar = StatusBar(TaskController.default_instance)
quodlibet/qltk/notif.py:292: in __init__
    self.task_controller.parent = self
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <quodlibet.qltk.notif.ParentProperty object at 0x7fffe64fa820>
inst = <quodlibet.qltk.notif.TaskController object at 0x7fffe64fa790>
value = <notif.StatusBar object at 0x7fffc9644800 (quodlibet+qltk+notif+StatusBar at 0xa9fd150)>

    def __set__(self, inst, value):
        if getattr(inst, '_parent', None) is not None and value is not None:
>           raise ValueError("Cannot set parent property without first "
                    "setting it to 'None'.")
E           ValueError: Cannot set parent property without first setting it to 'None'.

quodlibet/qltk/notif.py:49: ValueError
________________________ TViewlyrics.test_song_started _________________________

self = <tests.plugin.test_viewlyrics.TViewlyrics testMethod=test_song_started>

    def setUp(self):
        self.mod = self.modules['View Lyrics']
>       init_fake_app()

tests/plugin/test_viewlyrics.py:22: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/__init__.py:125: in init_fake_app
    app.window = QuodLibetWindow(app.library, app.player, headless=True)
quodlibet/qltk/quodlibetwindow.py:611: in __init__
    statusbox = StatusBarBox(play_order, self.qexpander)
quodlibet/qltk/quodlibetwindow.py:356: in __init__
    self.statusbar = StatusBar(TaskController.default_instance)
quodlibet/qltk/notif.py:292: in __init__
    self.task_controller.parent = self
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <quodlibet.qltk.notif.ParentProperty object at 0x7fffe64fa820>
inst = <quodlibet.qltk.notif.TaskController object at 0x7fffe64fa790>
value = <notif.StatusBar object at 0x7fffe06d3dc0 (quodlibet+qltk+notif+StatusBar at 0xbd7db70)>

    def __set__(self, inst, value):
        if getattr(inst, '_parent', None) is not None and value is not None:
>           raise ValueError("Cannot set parent property without first "
                    "setting it to 'None'.")
E           ValueError: Cannot set parent property without first setting it to 'None'.

quodlibet/qltk/notif.py:49: ValueError
__________________ TViewlyrics.test_startup_playing_then_edit __________________

self = <tests.plugin.test_viewlyrics.TViewlyrics testMethod=test_startup_playing_then_edit>

    def setUp(self):
        self.mod = self.modules['View Lyrics']
>       init_fake_app()

tests/plugin/test_viewlyrics.py:22: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
tests/__init__.py:125: in init_fake_app
    app.window = QuodLibetWindow(app.library, app.player, headless=True)
quodlibet/qltk/quodlibetwindow.py:611: in __init__
    statusbox = StatusBarBox(play_order, self.qexpander)
quodlibet/qltk/quodlibetwindow.py:356: in __init__
    self.statusbar = StatusBar(TaskController.default_instance)
quodlibet/qltk/notif.py:292: in __init__
    self.task_controller.parent = self
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <quodlibet.qltk.notif.ParentProperty object at 0x7fffe64fa820>
inst = <quodlibet.qltk.notif.TaskController object at 0x7fffe64fa790>
value = <notif.StatusBar object at 0x7fffc995c640 (quodlibet+qltk+notif+StatusBar at 0xbebe470)>

    def __set__(self, inst, value):
        if getattr(inst, '_parent', None) is not None and value is not None:
>           raise ValueError("Cannot set parent property without first "
                    "setting it to 'None'.")
E           ValueError: Cannot set parent property without first setting it to 'None'.

quodlibet/qltk/notif.py:49: ValueError
=========================== short test summary info ============================
FAILED tests/plugin/test_mediaserver.py::TMediaServer::test_entry_name - gi.r...
FAILED tests/plugin/test_mediaserver.py::TMediaServer::test_name_owner - Valu...
FAILED tests/plugin/test_mpdserver.py::TMPDCommands::test_commands - ValueErr...
FAILED tests/plugin/test_mpdserver.py::TMPDCommands::test_currentsong_length
FAILED tests/plugin/test_mpdserver.py::TMPDCommands::test_idle_close - ValueE...
FAILED tests/plugin/test_mpdserver.py::TMPDCommands::test_tagtypes - ValueErr...
FAILED tests/plugin/test_mpris.py::TMPRIS::test_main - ValueError: Cannot set...
FAILED tests/plugin/test_mpris.py::TMPRIS::test_metadata - ValueError: Cannot...
FAILED tests/plugin/test_mpris.py::TMPRIS::test_name_owner - ValueError: Cann...
FAILED tests/plugin/test_mpris.py::TMPRIS::test_player - ValueError: Cannot s...
FAILED tests/plugin/test_mpris.py::TMPRIS::test_volume_property - ValueError:...
FAILED tests/plugin/test_prefs.py::TPrefs::test_all - ValueError: Cannot set ...
FAILED tests/plugin/test_randomalbum.py::TRandomAlbum::test_empty_integration
FAILED tests/plugin/test_randomalbum.py::TRandomAlbum::test_empty_integration_weighted
FAILED tests/plugin/test_randomalbum.py::TRandomAlbum::test_score_lastplayed
FAILED tests/plugin/test_randomalbum.py::TRandomAlbum::test_score_lastplayed_added
FAILED tests/plugin/test_randomalbum.py::TRandomAlbum::test_score_length - Va...
FAILED tests/plugin/test_randomalbum.py::TRandomAlbum::test_score_mixed - Val...
FAILED tests/plugin/test_randomalbum.py::TRandomAlbum::test_score_rating - Va...
FAILED tests/plugin/test_viewlyrics.py::TViewlyrics::test_no_song_started - V...
FAILED tests/plugin/test_viewlyrics.py::TViewlyrics::test_on_changed - ValueE...
FAILED tests/plugin/test_viewlyrics.py::TViewlyrics::test_on_changed_stopped
FAILED tests/plugin/test_viewlyrics.py::TViewlyrics::test_song_started - Valu...
FAILED tests/plugin/test_viewlyrics.py::TViewlyrics::test_startup_playing_then_edit
================= 24 failed, 2925 passed, 44 skipped in 55.06s =================
error: --- Error ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- nix-build
builder for '/nix/store/0prymkak0fviz9dnxxz5bm9vn83g1dy5-quodlibet-full-4.3.0.drv' failed with exit code 1; last 10 log lines:
  FAILED tests/plugin/test_randomalbum.py::TRandomAlbum::test_score_lastplayed_added
  FAILED tests/plugin/test_randomalbum.py::TRandomAlbum::test_score_length - Va...
  FAILED tests/plugin/test_randomalbum.py::TRandomAlbum::test_score_mixed - Val...
  FAILED tests/plugin/test_randomalbum.py::TRandomAlbum::test_score_rating - Va...
  FAILED tests/plugin/test_viewlyrics.py::TViewlyrics::test_no_song_started - V...
  FAILED tests/plugin/test_viewlyrics.py::TViewlyrics::test_on_changed - ValueE...
  FAILED tests/plugin/test_viewlyrics.py::TViewlyrics::test_on_changed_stopped
  FAILED tests/plugin/test_viewlyrics.py::TViewlyrics::test_song_started - Valu...
  FAILED tests/plugin/test_viewlyrics.py::TViewlyrics::test_startup_playing_then_edit
  ================= 24 failed, 2925 passed, 44 skipped in 55.06s =================

@orivej-nixos orivej-nixos merged commit e750a79 into NixOS:master Dec 7, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants