Source: mypaint
Version: 2.0.0-2
Severity: serious
Justification: FTBFS on amd64
Tags: bullseye sid ftbfs
Usertags: ftbfs-20200501 ftbfs-bullseye

Hi,

During a rebuild of all packages in sid, your package failed to build
on amd64.

Relevant part (hopefully):
> make[1]: Entering directory '/<<PKGBUILDDIR>>'
> # Known to be failing, just ignore failure for now
> # As suggested by upstream
> python3 setup.py nosetests \
>     --ignore-files="(objfactory)|(widgets).py"
> running nosetests
> running egg_info
> creating MyPaint.egg-info
> writing MyPaint.egg-info/PKG-INFO
> writing dependency_links to MyPaint.egg-info/dependency_links.txt
> writing top-level names to MyPaint.egg-info/top_level.txt
> writing manifest file 'MyPaint.egg-info/SOURCES.txt'
> reading manifest file 'MyPaint.egg-info/SOURCES.txt'
> writing manifest file 'MyPaint.egg-info/SOURCES.txt'
> copying 
> build/lib.linux-x86_64-3.8/lib/_mypaintlib.cpython-38-x86_64-linux-gnu.so -> 
> lib
> Unable to init server: Could not connect: Connection refused
> Unable to init server: Could not connect: Connection refused
> /<<PKGBUILDDIR>>/gui/accelmap.py:17: PyGIWarning: Gtk was imported without 
> specifying a version first. Use gi.require_version('Gtk', '3.0') before 
> import to ensure that the right version gets loaded.
>   from gi.repository import Gtk
> Doctest: gui.brushmanager.BrushManager.__init__ ... 
> /usr/lib/python3.8/doctest.py:1336: RuntimeWarning: coroutine '<module>' was 
> never awaited
>   exec(compile(example.source, filename, "single",
> RuntimeWarning: Enable tracemalloc to get the object allocation traceback
> FAIL
> Doctest: gui.brushmanager.BrushManager.export_group ... ok
> Doctest: gui.brushmanager.BrushManager.get_brush_by_name ... ok
> Doctest: gui.brushmanager.BrushManager.import_brushpack ... FAIL
> Doctest: gui.brushmanager.BrushManager.save_brushorder ... ok
> Doctest: gui.brushmanager.ManagedBrush.__init__ ... ok
> Doctest: gui.brushmanager.ManagedBrush.description ... ok
> Doctest: gui.brushmanager.ManagedBrush.get_preview ... FAIL
> Doctest: gui.brushmanager.ManagedBrush.notes ... ok
> Doctest: gui.brushmanager.ManagedBrush.preview ... FAIL
> Doctest: gui.brushmanager._device_name_uuid ... ok
> Doctest: gui.brushmanager._quote_device_name ... ok
> Doctest: gui.filehandling._get_case_insensitive_glob ... ok
> Doctest: gui.freehand.PressureAndTiltInterpolator ... FAIL
> Doctest: gui.meta.get_libs_version_string ... ok
> Doctest: gui.mvp.Presenter ... ok
> Doctest: gui.uicolor.from_gdk_color ... ok
> Doctest: gui.uicolor.from_gdk_rgba ... ok
> Doctest: gui.uicolor.to_gdk_color ... ok
> Doctest: gui.uicolor.to_gdk_rgba ... ok
> Doctest: lib.alg.convex_hull ... ok
> Doctest: lib.alg.intersection_of_segments ... ok
> Doctest: lib.alg.nearest_point_in_segment ... ok
> Doctest: lib.alg.pairwise ... ok
> Doctest: lib.alg.point_in_convex_poly ... ok
> Doctest: lib.alg.poly_area ... ok
> Doctest: lib.alg.poly_centroid ... ok
> Doctest: lib.brush.BrushInfo._load_old_format ... ok
> Doctest: lib.brush.BrushInfo.from_json ... ok
> Doctest: lib.brush.brushinfo_quote ... ok
> Doctest: lib.brush.brushinfo_unquote ... ok
> Doctest: lib.brushsettings.BrushInputInfo ... ok
> Doctest: lib.brushsettings.BrushSettingInfo ... ok
> Doctest: lib.color.HCYColor.__eq__ ... ok
> Doctest: lib.color.HCYColor.__init__ ... ok
> Doctest: lib.color.HCYColor.interpolate ... FAIL
> Doctest: lib.color.HCY_to_RGB ... FAIL
> Doctest: lib.color.HSVColor ... ok
> Doctest: lib.color.HSVColor.__eq__ ... ok
> Doctest: lib.color.HSVColor.__init__ ... ok
> Doctest: lib.color.HSVColor.interpolate ... FAIL
> Doctest: lib.color.RGBColor.__eq__ ... ok
> Doctest: lib.color.RGBColor.__init__ ... ok
> Doctest: lib.color.RGBColor.interpolate ... FAIL
> Doctest: lib.color.UIColor ... ok
> Doctest: lib.color.UIColor.get_luma ... ok
> Doctest: lib.color.UIColor.new_from_pixbuf_average ... ok
> Doctest: lib.color.UIColor.to_contrasting ... ok
> Doctest: lib.color.UIColor.to_fill_pixel ... ok
> Doctest: lib.color.UIColor.to_greyscale ... ok
> Doctest: lib.color.YCbCrColor.__eq__ ... ok
> Doctest: lib.color.YCbCrColor.interpolate ... FAIL
> Doctest: lib.document.Document.import_layers ... ok
> Doctest: lib.document.Document.load ... ok
> Doctest: lib.document.Document.settings ... FAIL
> Doctest: lib.document._save_layers_to_new_orazip ... ok
> Doctest: lib.feedback.Progress ... ok
> Doctest: lib.feedback.Progress.__bool__ ... ok
> Doctest: lib.feedback.Progress.__int__ ... ok
> Doctest: lib.feedback.Progress.__repr__ ... ok
> Doctest: lib.feedback.Progress.items ... ok
> Doctest: lib.feedback.Progress.open ... ok
> Doctest: lib.fileutils.replace ... ok
> Doctest: lib.fileutils.safename ... ok
> Doctest: lib.gettext ... ok
> Doctest: lib.glib.filename_from_uri ... ok
> Doctest: lib.glib.filename_to_unicode ... ok
> Doctest: lib.glib.filename_to_uri ... ok
> Doctest: lib.glib.init_user_dir_caches ... ok
> Doctest: lib.helpers.Rect ... FAIL
> Doctest: lib.helpers.casefold ... ok
> Doctest: lib.helpers.coordinate_bounds ... ok
> Doctest: lib.helpers.freedesktop_thumbnail ... FAIL
> Doctest: lib.helpers.get_pixbuf ... ok
> Doctest: lib.helpers.grouper ... FAIL
> Doctest: lib.layer.core.LayerBase.__bool__ ... ok
> Doctest: lib.layer.core.LayerBase.__deepcopy__ ... ok
> Doctest: lib.layer.core.LayerBase.branch_locked ... ok
> Doctest: lib.layer.core.LayerBase.branch_visible ... ok
> Doctest: lib.layer.core.LayerBase.group ... ok
> Doctest: lib.layer.core.LayerBase.root ... ok
> Doctest: lib.layer.group.LayerStack.__init__ ... ok
> Doctest: lib.layer.group.LayerStack.__len__ ... ok
> Doctest: lib.layer.group.LayerStack.__repr__ ... ok
> Doctest: lib.layer.group.LayerStack._normidx ... ok
> Doctest: lib.layer.tree.RootLayerStack.canonpath ... ok
> Doctest: lib.layer.tree.RootLayerStack.current_layer_overlay ... ok
> Doctest: lib.layer.tree.RootLayerStack.deepget ... ok
> Doctest: lib.layer.tree.RootLayerStack.deepindex ... FAIL
> Doctest: lib.layer.tree.RootLayerStack.deepinsert ... ok
> Doctest: lib.layer.tree.RootLayerStack.deepiter ... ok
> Doctest: lib.layer.tree.RootLayerStack.deeppop ... ok
> Doctest: lib.layer.tree.RootLayerStack.deepremove ... ok
> Doctest: lib.layer.tree.RootLayerStack.ensure_populated ... ok
> Doctest: lib.layer.tree.RootLayerStack.layer_new_merge_down ... FAIL
> Doctest: lib.layer.tree.RootLayerStack.layer_new_merge_visible ... FAIL
> Doctest: lib.layer.tree.RootLayerStack.layer_new_normalized ... FAIL
> Doctest: lib.layer.tree.RootLayerStack.load_from_openraster ... ok
> Doctest: lib.layer.tree.RootLayerStack.path_above ... ok
> Doctest: lib.layer.tree.RootLayerStack.path_below ... ok
> Doctest: lib.layer.tree.RootLayerStack.walk ... FAIL
> Doctest: lib.layer.tree.path_startswith ... ok
> Makes a simple test RootLayerStack (2 branches of 3 leaves each) ... ok
> Doctest: lib.layervis._View.__eq__ ... ok
> Doctest: lib.meta._compatibility ... ok
> Doctest: lib.meta._parse_version_string ... ok
> Doctest: lib.naming.make_unique_name ... ok
> Doctest: lib.observable.ObservableDict ... ok
> Doctest: lib.observable.ObservableDict.update ... ok
> Doctest: lib.observable._BoundObserverMethod.__repr__ ... ok
> Doctest: lib.observable.event ... ok
> Doctest: lib.observable.observable ... ok
> Doctest: lib.observable.observable._update_observers ... ok
> Doctest: lib.palette.Palette.__bool__ ... ok
> Doctest: lib.palette.Palette.__init__ ... ok
> Doctest: lib.palette.Palette.clear ... ok
> Doctest: lib.palette.Palette.get_color_by_name ... ok
> Doctest: lib.palette.Palette.insert ... ok
> Doctest: lib.palette.Palette.load ... ok
> Doctest: lib.palette.Palette.match_color ... ok
> Doctest: lib.palette.Palette.move_match_position ... ok
> Doctest: lib.palette.Palette.reposition ... ok
> Doctest: lib.palette.Palette.save ... ok
> Doctest: lib.pixbuf.load_from_file ... ok
> Doctest: lib.pixbuf.load_from_stream ... ok
> Doctest: lib.pixbuf.load_from_zipfile ... ok
> Doctest: lib.pixbuf.save ... ok
> Doctest: lib.strokemap.StrokeShape.save_to_string ... ok
> Doctest: lib.strokemap._Tile.__repr__ ... ok
> Doctest: lib.strokemap._Tile.new_from_compressed_bitmap ... ok
> Doctest: lib.strokemap._Tile.to_bytes ... ok
> Doctest: lib.strokemap._TileIndexPredicate ... ok
> Doctest: lib.strokemap._pixel_bbox_to_tile_range ... ok
> Doctest: lib.strokemap._tile_in_range ... ok
> Doctest: lib.surface.get_tiles_bbox ... ok
> Doctest: lib.tiledsurface.MyPaintSurface.cairo_request ... ok
> Doctest: lib.tiledsurface.MyPaintSurface.tile_request ... ok
> Doctest: lib.tiledsurface.PNGFileUpdateTask ... ok
> Doctest: lib.tiledsurface._TiledSurfaceMove ... ok
> Doctest: lib.tiledsurface.calc_translation_slices ... ok
> Doctest: lib.xml.escape ... ok
> Doctest: lib.xml.xsd2bool ... ok
> Doctest: gui.brushmanager.BrushManager.__init__ ... 
> /usr/lib/python3.8/doctest.py:1336: RuntimeWarning: coroutine '<module>' was 
> never awaited
>   exec(compile(example.source, filename, "single",
> RuntimeWarning: Enable tracemalloc to get the object allocation traceback
> FAIL
> Doctest: gui.brushmanager.BrushManager.export_group ... ok
> Doctest: gui.brushmanager.BrushManager.get_brush_by_name ... ok
> Doctest: gui.brushmanager.BrushManager.import_brushpack ... FAIL
> Doctest: gui.brushmanager.BrushManager.save_brushorder ... ok
> Doctest: gui.brushmanager.ManagedBrush.__init__ ... ok
> Doctest: gui.brushmanager.ManagedBrush.description ... ok
> Doctest: gui.brushmanager.ManagedBrush.get_preview ... FAIL
> Doctest: gui.brushmanager.ManagedBrush.notes ... ok
> Doctest: gui.brushmanager.ManagedBrush.preview ... FAIL
> Doctest: gui.brushmanager._device_name_uuid ... ok
> Doctest: gui.brushmanager._quote_device_name ... ok
> Doctest: gui.filehandling._get_case_insensitive_glob ... ok
> Doctest: gui.freehand.PressureAndTiltInterpolator ... FAIL
> Doctest: gui.meta.get_libs_version_string ... ok
> Doctest: gui.mvp.Presenter ... ok
> Doctest: gui.uicolor.from_gdk_color ... ok
> Doctest: gui.uicolor.from_gdk_rgba ... ok
> Doctest: gui.uicolor.to_gdk_color ... ok
> Doctest: gui.uicolor.to_gdk_rgba ... ok
> Doctest: lib.alg.convex_hull ... ok
> Doctest: lib.alg.intersection_of_segments ... ok
> Doctest: lib.alg.nearest_point_in_segment ... ok
> Doctest: lib.alg.pairwise ... ok
> Doctest: lib.alg.point_in_convex_poly ... ok
> Doctest: lib.alg.poly_area ... ok
> Doctest: lib.alg.poly_centroid ... ok
> Doctest: lib.brush.BrushInfo._load_old_format ... ok
> Doctest: lib.brush.BrushInfo.from_json ... ok
> Doctest: lib.brush.brushinfo_quote ... ok
> Doctest: lib.brush.brushinfo_unquote ... ok
> Doctest: lib.brushsettings.BrushInputInfo ... ok
> Doctest: lib.brushsettings.BrushSettingInfo ... ok
> Doctest: lib.color.HCYColor.__eq__ ... ok
> Doctest: lib.color.HCYColor.__init__ ... ok
> Doctest: lib.color.HCYColor.interpolate ... FAIL
> Doctest: lib.color.HCY_to_RGB ... FAIL
> Doctest: lib.color.HSVColor ... ok
> Doctest: lib.color.HSVColor.__eq__ ... ok
> Doctest: lib.color.HSVColor.__init__ ... ok
> Doctest: lib.color.HSVColor.interpolate ... FAIL
> Doctest: lib.color.RGBColor.__eq__ ... ok
> Doctest: lib.color.RGBColor.__init__ ... ok
> Doctest: lib.color.RGBColor.interpolate ... FAIL
> Doctest: lib.color.UIColor ... ok
> Doctest: lib.color.UIColor.get_luma ... ok
> Doctest: lib.color.UIColor.new_from_pixbuf_average ... ok
> Doctest: lib.color.UIColor.to_contrasting ... ok
> Doctest: lib.color.UIColor.to_fill_pixel ... ok
> Doctest: lib.color.UIColor.to_greyscale ... ok
> Doctest: lib.color.YCbCrColor.__eq__ ... ok
> Doctest: lib.color.YCbCrColor.interpolate ... FAIL
> Doctest: lib.document.Document.import_layers ... ok
> Doctest: lib.document.Document.load ... ok
> Doctest: lib.document.Document.settings ... FAIL
> Doctest: lib.document._save_layers_to_new_orazip ... ok
> Doctest: lib.feedback.Progress ... ok
> Doctest: lib.feedback.Progress.__bool__ ... ok
> Doctest: lib.feedback.Progress.__int__ ... ok
> Doctest: lib.feedback.Progress.__repr__ ... ok
> Doctest: lib.feedback.Progress.items ... ok
> Doctest: lib.feedback.Progress.open ... ok
> Doctest: lib.fileutils.replace ... ok
> Doctest: lib.fileutils.safename ... ok
> Doctest: lib.gettext ... ok
> Doctest: lib.glib.filename_from_uri ... ok
> Doctest: lib.glib.filename_to_unicode ... ok
> Doctest: lib.glib.filename_to_uri ... ok
> Doctest: lib.glib.init_user_dir_caches ... ok
> Doctest: lib.helpers.Rect ... FAIL
> Doctest: lib.helpers.casefold ... ok
> Doctest: lib.helpers.coordinate_bounds ... ok
> Doctest: lib.helpers.freedesktop_thumbnail ... FAIL
> Doctest: lib.helpers.get_pixbuf ... ok
> Doctest: lib.helpers.grouper ... FAIL
> Doctest: lib.layer.core.LayerBase.__bool__ ... ok
> Doctest: lib.layer.core.LayerBase.__deepcopy__ ... ok
> Doctest: lib.layer.core.LayerBase.branch_locked ... ok
> Doctest: lib.layer.core.LayerBase.branch_visible ... ok
> Doctest: lib.layer.core.LayerBase.group ... ok
> Doctest: lib.layer.core.LayerBase.root ... ok
> Doctest: lib.layer.group.LayerStack.__init__ ... ok
> Doctest: lib.layer.group.LayerStack.__len__ ... ok
> Doctest: lib.layer.group.LayerStack.__repr__ ... ok
> Doctest: lib.layer.group.LayerStack._normidx ... ok
> Doctest: lib.layer.tree.RootLayerStack.canonpath ... ok
> Doctest: lib.layer.tree.RootLayerStack.current_layer_overlay ... ok
> Doctest: lib.layer.tree.RootLayerStack.deepget ... ok
> Doctest: lib.layer.tree.RootLayerStack.deepindex ... FAIL
> Doctest: lib.layer.tree.RootLayerStack.deepinsert ... ok
> Doctest: lib.layer.tree.RootLayerStack.deepiter ... ok
> Doctest: lib.layer.tree.RootLayerStack.deeppop ... ok
> Doctest: lib.layer.tree.RootLayerStack.deepremove ... ok
> Doctest: lib.layer.tree.RootLayerStack.ensure_populated ... ok
> Doctest: lib.layer.tree.RootLayerStack.layer_new_merge_down ... FAIL
> Doctest: lib.layer.tree.RootLayerStack.layer_new_merge_visible ... FAIL
> Doctest: lib.layer.tree.RootLayerStack.layer_new_normalized ... FAIL
> Doctest: lib.layer.tree.RootLayerStack.load_from_openraster ... ok
> Doctest: lib.layer.tree.RootLayerStack.path_above ... ok
> Doctest: lib.layer.tree.RootLayerStack.path_below ... ok
> Doctest: lib.layer.tree.RootLayerStack.walk ... FAIL
> Doctest: lib.layer.tree.path_startswith ... ok
> Makes a simple test RootLayerStack (2 branches of 3 leaves each) ... ok
> Doctest: lib.layervis._View.__eq__ ... ok
> Doctest: lib.meta._compatibility ... ok
> Doctest: lib.meta._parse_version_string ... ok
> Doctest: lib.naming.make_unique_name ... ok
> Doctest: lib.observable.ObservableDict ... ok
> Doctest: lib.observable.ObservableDict.update ... ok
> Doctest: lib.observable._BoundObserverMethod.__repr__ ... ok
> Doctest: lib.observable.event ... ok
> Doctest: lib.observable.observable ... ok
> Doctest: lib.observable.observable._update_observers ... ok
> Doctest: lib.palette.Palette.__bool__ ... ok
> Doctest: lib.palette.Palette.__init__ ... ok
> Doctest: lib.palette.Palette.clear ... ok
> Doctest: lib.palette.Palette.get_color_by_name ... ok
> Doctest: lib.palette.Palette.insert ... ok
> Doctest: lib.palette.Palette.load ... ok
> Doctest: lib.palette.Palette.match_color ... ok
> Doctest: lib.palette.Palette.move_match_position ... ok
> Doctest: lib.palette.Palette.reposition ... ok
> Doctest: lib.palette.Palette.save ... ok
> Doctest: lib.pixbuf.load_from_file ... ok
> Doctest: lib.pixbuf.load_from_stream ... ok
> Doctest: lib.pixbuf.load_from_zipfile ... ok
> Doctest: lib.pixbuf.save ... ok
> Doctest: lib.strokemap.StrokeShape.save_to_string ... ok
> Doctest: lib.strokemap._Tile.__repr__ ... ok
> Doctest: lib.strokemap._Tile.new_from_compressed_bitmap ... ok
> Doctest: lib.strokemap._Tile.to_bytes ... ok
> Doctest: lib.strokemap._TileIndexPredicate ... ok
> Doctest: lib.strokemap._pixel_bbox_to_tile_range ... ok
> Doctest: lib.strokemap._tile_in_range ... ok
> Doctest: lib.surface.get_tiles_bbox ... ok
> Doctest: lib.tiledsurface.MyPaintSurface.cairo_request ... ok
> Doctest: lib.tiledsurface.MyPaintSurface.tile_request ... ok
> Doctest: lib.tiledsurface.PNGFileUpdateTask ... ok
> Doctest: lib.tiledsurface._TiledSurfaceMove ... ok
> Doctest: lib.tiledsurface.calc_translation_slices ... ok
> Doctest: lib.xml.escape ... ok
> Doctest: lib.xml.xsd2bool ... ok
> 
> ======================================================================
> FAIL: Doctest: gui.brushmanager.BrushManager.__init__
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/lib/python3.8/doctest.py", line 2204, in runTest
>     raise self.failureException(self.format_failure(new.getvalue()))
> AssertionError: Failed doctest test for gui.brushmanager.BrushManager.__init__
>   File "/<<PKGBUILDDIR>>/gui/brushmanager.py", line 187, in __init__
> 
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/gui/brushmanager.py", line 202, in 
> gui.brushmanager.BrushManager.__init__
> Failed example:
>     all([isinstance(k, unicode) for k in bm.groups.keys()])
> Expected:
>     True
> Got nothing
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/gui/brushmanager.py", line 204, in 
> gui.brushmanager.BrushManager.__init__
> Failed example:
>     all([isinstance(v, list) for v in bm.groups.values()])
> Expected:
>     True
> Got nothing
> 
> -------------------- >> begin captured logging << --------------------
> gui.brushmanager: INFO: Merging upstream brush changes into your collection.
> gui.brushmanager: DEBUG: Loading <ManagedBrush 
> 'deevad/basic_digital_brush_smudging' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/rough' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/4H_pencil' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/2B_pencil' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/pen' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/kneaded_eraser' 
> p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/kneaded_eraser_large' 
> p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/large_hard_eraser' 
> p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/thin_hard_eraser' 
> p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/basic_digital_brush' 
> p=None>...
> --------------------- >> end captured logging << ---------------------
> 
> ======================================================================
> FAIL: Doctest: gui.brushmanager.BrushManager.import_brushpack
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/lib/python3.8/doctest.py", line 2204, in runTest
>     raise self.failureException(self.format_failure(new.getvalue()))
> AssertionError: Failed doctest test for 
> gui.brushmanager.BrushManager.import_brushpack
>   File "/<<PKGBUILDDIR>>/gui/brushmanager.py", line 620, in import_brushpack
> 
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/gui/brushmanager.py", line 639, in 
> gui.brushmanager.BrushManager.import_brushpack
> Failed example:
>     u'brushlib-test/basic' in g_names
> Exception raised:
>     Traceback (most recent call last):
>       File "/usr/lib/python3.8/doctest.py", line 1336, in __run
>         exec(compile(example.source, filename, "single",
>       File "<doctest gui.brushmanager.BrushManager.import_brushpack[3]>", 
> line 1, in <module>
>         u'brushlib-test/basic' in g_names
>     NameError: name 'g_names' is not defined
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/gui/brushmanager.py", line 641, in 
> gui.brushmanager.BrushManager.import_brushpack
> Failed example:
>     u'brushlib-test/fancy_🌈🦄✨' in g_names
> Exception raised:
>     Traceback (most recent call last):
>       File "/usr/lib/python3.8/doctest.py", line 1336, in __run
>         exec(compile(example.source, filename, "single",
>       File "<doctest gui.brushmanager.BrushManager.import_brushpack[4]>", 
> line 1, in <module>
>         u'brushlib-test/fancy_🌈🦄✨' in g_names
>     NameError: name 'g_names' is not defined
> 
> -------------------- >> begin captured logging << --------------------
> gui.brushmanager: INFO: Merging upstream brush changes into your collection.
> gui.brushmanager: DEBUG: Loading <ManagedBrush 
> 'deevad/basic_digital_brush_smudging' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/rough' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/4H_pencil' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/2B_pencil' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/pen' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/kneaded_eraser' 
> p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/kneaded_eraser_large' 
> p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/large_hard_eraser' 
> p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/thin_hard_eraser' 
> p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/basic_digital_brush' 
> p=None>...
> gui.brushmanager: INFO: 3 different brushes found in 'order.conf' of brushpack
> --------------------- >> end captured logging << ---------------------
> 
> ======================================================================
> FAIL: Doctest: gui.brushmanager.ManagedBrush.get_preview
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/lib/python3.8/doctest.py", line 2204, in runTest
>     raise self.failureException(self.format_failure(new.getvalue()))
> AssertionError: Failed doctest test for 
> gui.brushmanager.ManagedBrush.get_preview
>   File "/<<PKGBUILDDIR>>/gui/brushmanager.py", line 1199, in get_preview
> 
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/gui/brushmanager.py", line 1227, in 
> gui.brushmanager.ManagedBrush.get_preview
> Failed example:
>     all([p1 is p2 for (p1, p2) in zip(pixbufs1, pixbufs2)])
> Expected:
>     True
> Got nothing
> 
> -------------------- >> begin captured logging << --------------------
> gui.brushmanager: INFO: Merging upstream brush changes into your collection.
> gui.brushmanager: DEBUG: Loading <ManagedBrush 
> 'deevad/basic_digital_brush_smudging' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/rough' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/4H_pencil' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/2B_pencil' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/pen' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/kneaded_eraser' 
> p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/kneaded_eraser_large' 
> p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/large_hard_eraser' 
> p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/thin_hard_eraser' 
> p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/basic_digital_brush' 
> p=None>...
> gui.brushmanager: INFO: Merging upstream brush changes into your collection.
> gui.brushmanager: DEBUG: Loading <ManagedBrush 
> 'deevad/basic_digital_brush_smudging' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/rough' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/4H_pencil' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/2B_pencil' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/pen' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/kneaded_eraser' 
> p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/kneaded_eraser_large' 
> p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/large_hard_eraser' 
> p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/thin_hard_eraser' 
> p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/basic_digital_brush' 
> p=None>...
> gui.brushmanager: INFO: 3 different brushes found in 'order.conf' of brushpack
> --------------------- >> end captured logging << ---------------------
> 
> ======================================================================
> FAIL: Doctest: gui.brushmanager.ManagedBrush.preview
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/lib/python3.8/doctest.py", line 2204, in runTest
>     raise self.failureException(self.format_failure(new.getvalue()))
> AssertionError: Failed doctest test for gui.brushmanager.ManagedBrush.preview
>   File "/<<PKGBUILDDIR>>/gui/brushmanager.py", line unknown line number, in 
> preview
> 
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/gui/brushmanager.py", line ?, in 
> gui.brushmanager.ManagedBrush.preview
> Failed example:
>     all([p1 is p2 for (p1, p2) in zip(pixbufs1, pixbufs2)])
> Expected:
>     True
> Got nothing
> 
> -------------------- >> begin captured logging << --------------------
> gui.brushmanager: INFO: Merging upstream brush changes into your collection.
> gui.brushmanager: DEBUG: Loading <ManagedBrush 
> 'deevad/basic_digital_brush_smudging' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/rough' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/4H_pencil' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/2B_pencil' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/pen' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/kneaded_eraser' 
> p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/kneaded_eraser_large' 
> p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/large_hard_eraser' 
> p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/thin_hard_eraser' 
> p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/basic_digital_brush' 
> p=None>...
> gui.brushmanager: INFO: Merging upstream brush changes into your collection.
> gui.brushmanager: DEBUG: Loading <ManagedBrush 
> 'deevad/basic_digital_brush_smudging' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/rough' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/4H_pencil' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/2B_pencil' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/pen' p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/kneaded_eraser' 
> p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/kneaded_eraser_large' 
> p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/large_hard_eraser' 
> p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/thin_hard_eraser' 
> p=None>...
> gui.brushmanager: DEBUG: Loading <ManagedBrush 'deevad/basic_digital_brush' 
> p=None>...
> gui.brushmanager: INFO: 3 different brushes found in 'order.conf' of brushpack
> --------------------- >> end captured logging << ---------------------
> 
> ======================================================================
> FAIL: Doctest: gui.freehand.PressureAndTiltInterpolator
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/lib/python3.8/doctest.py", line 2204, in runTest
>     raise self.failureException(self.format_failure(new.getvalue()))
> AssertionError: Failed doctest test for 
> gui.freehand.PressureAndTiltInterpolator
>   File "/<<PKGBUILDDIR>>/gui/freehand.py", line 653, in 
> PressureAndTiltInterpolator
> 
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/gui/freehand.py", line 665, in 
> gui.freehand.PressureAndTiltInterpolator
> Failed example:
>     all([len(t) == 9 for t in raw_data])
> Expected:
>     True
> Got nothing
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/gui/freehand.py", line 667, in 
> gui.freehand.PressureAndTiltInterpolator
> Failed example:
>     any([t for t in raw_data if None in t[3:]])
> Expected:
>     True
> Got nothing
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/gui/freehand.py", line 673, in 
> gui.freehand.PressureAndTiltInterpolator
> Failed example:
>     any([t for t in cooked_data if None in t[3:]])
> Expected:
>     False
> Got nothing
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/gui/freehand.py", line 677, in 
> gui.freehand.PressureAndTiltInterpolator
> Failed example:
>     all([(t in cooked_data) for t in raw_data
>          if None not in t[3:]])
> Expected:
>     True
> Got nothing
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/gui/freehand.py", line 680, in 
> gui.freehand.PressureAndTiltInterpolator
> Failed example:
>     any([t for t in cooked_data if 70 < t[0] < 110])
> Expected:
>     False
> Got nothing
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/gui/freehand.py", line 682, in 
> gui.freehand.PressureAndTiltInterpolator
> Failed example:
>     len([t for t in cooked_data if t[0] in (70, 110)]) == 2
> Expected:
>     True
> Got nothing
> 
> 
> ======================================================================
> FAIL: Doctest: lib.color.HCYColor.interpolate
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/lib/python3.8/doctest.py", line 2204, in runTest
>     raise self.failureException(self.format_failure(new.getvalue()))
> AssertionError: Failed doctest test for lib.color.HCYColor.interpolate
>   File "/<<PKGBUILDDIR>>/lib/color.py", line 552, in interpolate
> 
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/color.py", line 557, in 
> lib.color.HCYColor.interpolate
> Failed example:
>     [c.to_hex_str() for c in green.interpolate(red, 5)]
> Expected:
>     ['#19c619', '#5ea319', '#8c8c19', '#c46f19', '#e55353']
> Got nothing
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/color.py", line 559, in 
> lib.color.HCYColor.interpolate
> Failed example:
>     [c.to_hex_str() for c in red.interpolate(green, 5)]
> Expected:
>     ['#e55353', '#c46f19', '#8c8c19', '#5ea319', '#19c619']
> Got nothing
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/color.py", line 567, in 
> lib.color.HCYColor.interpolate
> Failed example:
>     [i.c for i in red.interpolate(green, 5)]
> Expected:
>     [0.8, 0.8, 0.8, 0.8, 0.8]
> Got nothing
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/color.py", line 570, in 
> lib.color.HCYColor.interpolate
> Failed example:
>     [round(HCYColor(color=i).c, 3)
>           for i in red_rgb.interpolate(green, 5)]
> Expected:
>     [0.8, 0.457, 0.571, 0.686, 0.8]
> Got nothing
> 
> 
> ======================================================================
> FAIL: Doctest: lib.color.HCY_to_RGB
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/lib/python3.8/doctest.py", line 2204, in runTest
>     raise self.failureException(self.format_failure(new.getvalue()))
> AssertionError: Failed doctest test for lib.color.HCY_to_RGB
>   File "/<<PKGBUILDDIR>>/lib/color.py", line 832, in HCY_to_RGB
> 
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/color.py", line 846, in lib.color.HCY_to_RGB
> Failed example:
>     sum(diffs) < n*1e-6
> Exception raised:
>     Traceback (most recent call last):
>       File "/usr/lib/python3.8/doctest.py", line 1336, in __run
>         exec(compile(example.source, filename, "single",
>       File "<doctest lib.color.HCY_to_RGB[2]>", line 1, in <module>
>         sum(diffs) < n*1e-6
>     NameError: name 'diffs' is not defined
> 
> 
> ======================================================================
> FAIL: Doctest: lib.color.HSVColor.interpolate
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/lib/python3.8/doctest.py", line 2204, in runTest
>     raise self.failureException(self.format_failure(new.getvalue()))
> AssertionError: Failed doctest test for lib.color.HSVColor.interpolate
>   File "/<<PKGBUILDDIR>>/lib/color.py", line 407, in interpolate
> 
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/color.py", line 412, in 
> lib.color.HSVColor.interpolate
> Failed example:
>     [c.to_hex_str() for c in green_hsv.interpolate(red_hsv, 3)]
> Expected:
>     ['#00ff00', '#ffff00', '#ff0000']
> Got nothing
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/color.py", line 414, in 
> lib.color.HSVColor.interpolate
> Failed example:
>     [c.to_hex_str() for c in red_hsv.interpolate(green_hsv, 3)]
> Expected:
>     ['#ff0000', '#ffff00', '#00ff00']
> Got nothing
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/color.py", line 420, in 
> lib.color.HSVColor.interpolate
> Failed example:
>     [c.to_hex_str() for c in red_rgb.interpolate(green_hsv, 3)]
> Expected:
>     ['#ff0000', '#7f7f00', '#00ff00']
> Got nothing
> 
> 
> ======================================================================
> FAIL: Doctest: lib.color.RGBColor.interpolate
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/lib/python3.8/doctest.py", line 2204, in runTest
>     raise self.failureException(self.format_failure(new.getvalue()))
> AssertionError: Failed doctest test for lib.color.RGBColor.interpolate
>   File "/<<PKGBUILDDIR>>/lib/color.py", line 311, in interpolate
> 
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/color.py", line 316, in 
> lib.color.RGBColor.interpolate
> Failed example:
>     [c.to_hex_str() for c in white.interpolate(black, 3)]
> Expected:
>     ['#ffffff', '#7f7f7f', '#000000']
> Got nothing
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/color.py", line 318, in 
> lib.color.RGBColor.interpolate
> Failed example:
>     [c.to_hex_str() for c in black.interpolate(white, 3)]
> Expected:
>     ['#000000', '#7f7f7f', '#ffffff']
> Got nothing
> 
> 
> ======================================================================
> FAIL: Doctest: lib.color.YCbCrColor.interpolate
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/lib/python3.8/doctest.py", line 2204, in runTest
>     raise self.failureException(self.format_failure(new.getvalue()))
> AssertionError: Failed doctest test for lib.color.YCbCrColor.interpolate
>   File "/<<PKGBUILDDIR>>/lib/color.py", line 678, in interpolate
> 
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/color.py", line 683, in 
> lib.color.YCbCrColor.interpolate
> Failed example:
>     [c.to_hex_str() for c in yellow.interpolate(red, 3)]
> Expected:
>     ['#feff00', '#ff7f00', '#ff0000']
> Got nothing
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/color.py", line 692, in 
> lib.color.YCbCrColor.interpolate
> Failed example:
>     [c.to_hex_str() for c in y_rgb.interpolate(r_rgb, 3)]
> Expected:
>     ['#ffff00', '#ff7f00', '#ff0000']
> Got nothing
> 
> 
> ======================================================================
> FAIL: Doctest: lib.document.Document.settings
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/lib/python3.8/doctest.py", line 2204, in runTest
>     raise self.failureException(self.format_failure(new.getvalue()))
> AssertionError: Failed doctest test for lib.document.Document.settings
>   File "/<<PKGBUILDDIR>>/lib/document.py", line unknown line number, in 
> settings
> 
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/document.py", line ?, in 
> lib.document.Document.settings
> Failed example:
>     sorted([i for i in doc1.settings.items()
>             if i[0].startswith("T.")]) == expected
> Expected:
>     True
> Got nothing
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/document.py", line ?, in 
> lib.document.Document.settings
> Failed example:
>     sorted([i for i in doc1.settings.items()
>             if i[0].startswith("T.")]) == expected
> Expected:
>     True
> Got nothing
> 
> -------------------- >> begin captured logging << --------------------
> lib.fileutils: DEBUG: Writing to temp path 
> '/tmp/tmpmjy0v4a6/.tmpsave.file1.ora'
> lib.document: INFO: save_ora: '/tmp/tmpmjy0v4a6/.tmpsave.file1.ora' (None, {})
> lib.surface: DEBUG: Writing '/tmp/saveqrq9irqnmypaint/layer-00.png' (1x1) 
> alpha=True srgb=True
> lib.surface: DEBUG: Finished writing '/tmp/saveqrq9irqnmypaint/layer-00.png'
> lib.layer.data: DEBUG: 0.000s surface saving 'layer-00.png'
> lib.layer.data: DEBUG: 0.000s strokemap saving 'layer-00-strokemap.dat'
> lib.surface: DEBUG: Writing '/tmp/saveqrq9irqnmypaint/background-01.png' 
> (64x64) alpha=True srgb=True
> lib.surface: DEBUG: Finished writing 
> '/tmp/saveqrq9irqnmypaint/background-01.png'
> lib.layer.data: DEBUG: 0.000s surface saving 'background-01.png'
> lib.surface: DEBUG: Writing '/tmp/saveqrq9irqnmypaint/background-01-tile.png' 
> (64x64) alpha=True srgb=True
> lib.surface: DEBUG: Finished writing 
> '/tmp/saveqrq9irqnmypaint/background-01-tile.png'
> lib.layer.data: DEBUG: 0.001s surface saving data/background-01-tile.png
> lib.fileutils: DEBUG: Writing to temp path 
> '/tmp/saveqrq9irqnmypaint/.tmpsave.mergedimage.png'
> lib.surface: DEBUG: Writing 
> '/tmp/saveqrq9irqnmypaint/.tmpsave.mergedimage.png' (64x64) alpha=False 
> srgb=True
> lib.surface: DEBUG: Finished writing 
> '/tmp/saveqrq9irqnmypaint/.tmpsave.mergedimage.png'
> lib.fileutils: DEBUG: Replacing '/tmp/saveqrq9irqnmypaint/mergedimage.png' 
> with '/tmp/saveqrq9irqnmypaint/.tmpsave.mergedimage.png'
> lib.document: INFO: 0.004s save_ora total
> lib.fileutils: DEBUG: Replacing '/tmp/tmpmjy0v4a6/file1.ora' with 
> '/tmp/tmpmjy0v4a6/.tmpsave.file1.ora'
> lib.document: DEBUG: Using 'load_ora' to load '/tmp/tmpmjy0v4a6/file1.ora' 
> (kwargs={})
> lib.document: INFO: load_ora: '/tmp/tmpmjy0v4a6/file1.ora'
> lib.document: DEBUG: mimetype: b'image/openraster'
> lib.layer.data: DEBUG: Trying to load 'data/layer-00.png' at +0+0, as 
> 'PaintingLayer'
> lib.layer.data: DEBUG: Found strokemap 'data/layer-00-strokemap.dat' in 
> '{http://mypaint.org/ns/openraster}strokemap'
> lib.layer.tree: DEBUG: Found bg tile 'data/background-01-tile.png' in 
> '{http://mypaint.org/ns/openraster}background-tile'
> lib.layer.tree: DEBUG: Loaded 1 layer(s)
> lib.layer.tree: DEBUG: Selecting (0,) after load
> lib.document: INFO: 0.004s load_ora total
> --------------------- >> end captured logging << ---------------------
> 
> ======================================================================
> FAIL: Doctest: lib.helpers.Rect
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/lib/python3.8/doctest.py", line 2204, in runTest
>     raise self.failureException(self.format_failure(new.getvalue()))
> AssertionError: Failed doctest test for lib.helpers.Rect
>   File "/<<PKGBUILDDIR>>/lib/helpers.py", line 35, in Rect
> 
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/helpers.py", line 51, in lib.helpers.Rect
> Failed example:
>     [big.contains(r) for r in [a, b, c]]
> Expected:
>     [True, True, True]
> Got nothing
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/helpers.py", line 53, in lib.helpers.Rect
> Failed example:
>     [big.overlaps(r) for r in [a, b, c]]
> Expected:
>     [True, True, True]
> Got nothing
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/helpers.py", line 55, in lib.helpers.Rect
> Failed example:
>     [r.overlaps(big) for r in [a, b, c]]
> Expected:
>     [True, True, True]
> Got nothing
> 
> 
> ======================================================================
> FAIL: Doctest: lib.helpers.freedesktop_thumbnail
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/lib/python3.8/doctest.py", line 2204, in runTest
>     raise self.failureException(self.format_failure(new.getvalue()))
> AssertionError: Failed doctest test for lib.helpers.freedesktop_thumbnail
>   File "/<<PKGBUILDDIR>>/lib/helpers.py", line 258, in freedesktop_thumbnail
> 
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/helpers.py", line 278, in 
> lib.helpers.freedesktop_thumbnail
> Failed example:
>     isinstance(p1, GdkPixbuf.Pixbuf)
> Expected:
>     True
> Got:
>     False
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/helpers.py", line 281, in 
> lib.helpers.freedesktop_thumbnail
> Failed example:
>     isinstance(p2, GdkPixbuf.Pixbuf)
> Expected:
>     True
> Got:
>     False
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/helpers.py", line 283, in 
> lib.helpers.freedesktop_thumbnail
> Failed example:
>     p2.to_string() == p1.to_string()
> Exception raised:
>     Traceback (most recent call last):
>       File "/usr/lib/python3.8/doctest.py", line 1336, in __run
>         exec(compile(example.source, filename, "single",
>       File "<doctest lib.helpers.freedesktop_thumbnail[5]>", line 1, in 
> <module>
>         p2.to_string() == p1.to_string()
>     AttributeError: 'NoneType' object has no attribute 'to_string'
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/helpers.py", line 285, in 
> lib.helpers.freedesktop_thumbnail
> Failed example:
>     p2.get_width() == p2.get_height() == 256
> Exception raised:
>     Traceback (most recent call last):
>       File "/usr/lib/python3.8/doctest.py", line 1336, in __run
>         exec(compile(example.source, filename, "single",
>       File "<doctest lib.helpers.freedesktop_thumbnail[6]>", line 1, in 
> <module>
>         p2.get_width() == p2.get_height() == 256
>     AttributeError: 'NoneType' object has no attribute 'get_width'
> 
> -------------------- >> begin captured logging << --------------------
> lib.helpers: DEBUG: thumb: 
> uri='file:///<<PKGBUILDDIR>>/svg/thumbnail-test-input.svg'
> lib.helpers: ERROR: Failed to load thumbnail pixbuf from 
> 'svg/thumbnail-test-input.svg'
> Traceback (most recent call last):
>   File "/<<PKGBUILDDIR>>/lib/helpers.py", line 430, in get_pixbuf
>     return lib.pixbuf.load_from_file(filename)
>   File "/<<PKGBUILDDIR>>/lib/pixbuf.py", line 113, in load_from_file
>     pixbuf = load_from_stream(fp, progress=progress)
>   File "/<<PKGBUILDDIR>>/lib/pixbuf.py", line 146, in load_from_stream
>     loader.write(buf)
> gi.repository.GLib.GError: gdk-pixbuf-error-quark: Unrecognized image file 
> format (3)
> lib.helpers: DEBUG: thumb: 
> uri='file:///<<PKGBUILDDIR>>/svg/thumbnail-test-input.svg'
> lib.helpers: ERROR: Failed to load thumbnail pixbuf from 
> 'svg/thumbnail-test-input.svg'
> Traceback (most recent call last):
>   File "/<<PKGBUILDDIR>>/lib/helpers.py", line 430, in get_pixbuf
>     return lib.pixbuf.load_from_file(filename)
>   File "/<<PKGBUILDDIR>>/lib/pixbuf.py", line 113, in load_from_file
>     pixbuf = load_from_stream(fp, progress=progress)
>   File "/<<PKGBUILDDIR>>/lib/pixbuf.py", line 146, in load_from_stream
>     loader.write(buf)
> gi.repository.GLib.GError: gdk-pixbuf-error-quark: Unrecognized image file 
> format (3)
> --------------------- >> end captured logging << ---------------------
> 
> ======================================================================
> FAIL: Doctest: lib.helpers.grouper
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/lib/python3.8/doctest.py", line 2204, in runTest
>     raise self.failureException(self.format_failure(new.getvalue()))
> AssertionError: Failed doctest test for lib.helpers.grouper
>   File "/<<PKGBUILDDIR>>/lib/helpers.py", line 585, in grouper
> 
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/helpers.py", line 596, in lib.helpers.grouper
> Failed example:
>     [a_val == e_val for a_val, e_val in zip(actual, expected)]
> Expected:
>     [True, True, True]
> Got nothing
> 
> 
> ======================================================================
> FAIL: Doctest: lib.layer.tree.RootLayerStack.deepindex
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/lib/python3.8/doctest.py", line 2204, in runTest
>     raise self.failureException(self.format_failure(new.getvalue()))
> AssertionError: Failed doctest test for 
> lib.layer.tree.RootLayerStack.deepindex
>   File "/<<PKGBUILDDIR>>/lib/layer/tree.py", line 1788, in deepindex
> 
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/layer/tree.py", line 1795, in 
> lib.layer.tree.RootLayerStack.deepindex
> Failed example:
>     [stack.deepindex(l) for l in leaves]
> Expected:
>     [(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2)]
> Got nothing
> 
> 
> ======================================================================
> FAIL: Doctest: lib.layer.tree.RootLayerStack.layer_new_merge_down
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/lib/python3.8/doctest.py", line 2204, in runTest
>     raise self.failureException(self.format_failure(new.getvalue()))
> AssertionError: Failed doctest test for 
> lib.layer.tree.RootLayerStack.layer_new_merge_down
>   File "/<<PKGBUILDDIR>>/lib/layer/tree.py", line 2063, in 
> layer_new_merge_down
> 
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/layer/tree.py", line 2085, in 
> lib.layer.tree.RootLayerStack.layer_new_merge_down
> Failed example:
>     for path, layer in orig_walk:
>         try:
>             merged = root.layer_new_merge_down(path)
>         except ValueError:   # expect this
>             n_not_merged += 1
>             continue
>         assert merged not in orig_layers  # always a new layer
>         n_merged += 1
> Exception raised:
>     Traceback (most recent call last):
>       File "/usr/lib/python3.8/doctest.py", line 1336, in __run
>         exec(compile(example.source, filename, "single",
>       File "<doctest lib.layer.tree.RootLayerStack.layer_new_merge_down[6]>", 
> line 7, in <module>
>         assert merged not in orig_layers  # always a new layer
>     NameError: name 'orig_layers' is not defined
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/layer/tree.py", line 2094, in 
> lib.layer.tree.RootLayerStack.layer_new_merge_down
> Failed example:
>     assert n_merged > 0
> Exception raised:
>     Traceback (most recent call last):
>       File "/usr/lib/python3.8/doctest.py", line 1336, in __run
>         exec(compile(example.source, filename, "single",
>       File "<doctest lib.layer.tree.RootLayerStack.layer_new_merge_down[8]>", 
> line 1, in <module>
>         assert n_merged > 0
>     AssertionError
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/layer/tree.py", line 2095, in 
> lib.layer.tree.RootLayerStack.layer_new_merge_down
> Failed example:
>     assert n_not_merged > 0
> Exception raised:
>     Traceback (most recent call last):
>       File "/usr/lib/python3.8/doctest.py", line 1336, in __run
>         exec(compile(example.source, filename, "single",
>       File "<doctest lib.layer.tree.RootLayerStack.layer_new_merge_down[9]>", 
> line 1, in <module>
>         assert n_not_merged > 0
>     AssertionError
> 
> -------------------- >> begin captured logging << --------------------
> lib.layer.tree: DEBUG: Normalize: bd_ops = [(2, <lib.tiledsurface.Background 
> object at 0x7fee104adac0>, None, None), (3, None, None, None), (4, None, 21, 
> 1.0)]
> lib.layer.tree: DEBUG: Normalize: src_ops = [(3, None, None, None), (1, 
> <lib.tiledsurface.MyPaintSurface object at 0x7fee10498130>, 21, 1.0), (1, 
> <lib.tiledsurface.MyPaintSurface object at 0x7fee104a1cd0>, 21, 1.0), (1, 
> <lib.tiledsurface.MyPaintSurface object at 0x7fee1048fa90>, 21, 1.0), (4, 
> None, 21, 1.0)]
> lib.layer.tree: DEBUG: Normalize: bd_ops = [(2, <lib.tiledsurface.Background 
> object at 0x7fee104adac0>, None, None), (3, None, None, None), (1, 
> <lib.tiledsurface.MyPaintSurface object at 0x7fee10498130>, 21, 1.0), (1, 
> <lib.tiledsurface.MyPaintSurface object at 0x7fee104a1cd0>, 21, 1.0), (1, 
> <lib.tiledsurface.MyPaintSurface object at 0x7fee1048fa90>, 21, 1.0), (4, 
> None, 21, 1.0)]
> lib.layer.tree: DEBUG: Normalize: src_ops = [(3, None, None, None), (1, 
> <lib.tiledsurface.MyPaintSurface object at 0x7fee104a1bb0>, 21, 1.0), (1, 
> <lib.tiledsurface.MyPaintSurface object at 0x7fee104a1790>, 21, 1.0), (1, 
> <lib.tiledsurface.MyPaintSurface object at 0x7fee104a1370>, 21, 1.0), (4, 
> None, 21, 1.0)]
> lib.layer.tree: DEBUG: Merge Down: normalized source=[<PaintingLayer '1'>, 
> <PaintingLayer '0'>]
> --------------------- >> end captured logging << ---------------------
> 
> ======================================================================
> FAIL: Doctest: lib.layer.tree.RootLayerStack.layer_new_merge_visible
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/lib/python3.8/doctest.py", line 2204, in runTest
>     raise self.failureException(self.format_failure(new.getvalue()))
> AssertionError: Failed doctest test for 
> lib.layer.tree.RootLayerStack.layer_new_merge_visible
>   File "/<<PKGBUILDDIR>>/lib/layer/tree.py", line 2147, in 
> layer_new_merge_visible
> 
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/layer/tree.py", line 2169, in 
> lib.layer.tree.RootLayerStack.layer_new_merge_visible
> Failed example:
>     assert merged not in orig_layers   # layer is a new object
> Exception raised:
>     Traceback (most recent call last):
>       File "/usr/lib/python3.8/doctest.py", line 1336, in __run
>         exec(compile(example.source, filename, "single",
>       File "<doctest 
> lib.layer.tree.RootLayerStack.layer_new_merge_visible[6]>", line 1, in 
> <module>
>         assert merged not in orig_layers   # layer is a new object
>     NameError: name 'orig_layers' is not defined
> 
> 
> ======================================================================
> FAIL: Doctest: lib.layer.tree.RootLayerStack.layer_new_normalized
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/lib/python3.8/doctest.py", line 2204, in runTest
>     raise self.failureException(self.format_failure(new.getvalue()))
> AssertionError: Failed doctest test for 
> lib.layer.tree.RootLayerStack.layer_new_normalized
>   File "/<<PKGBUILDDIR>>/lib/layer/tree.py", line 1918, in 
> layer_new_normalized
> 
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/layer/tree.py", line 1945, in 
> lib.layer.tree.RootLayerStack.layer_new_normalized
> Failed example:
>     for path, layer in orig_walk:
>         normized = root.layer_new_normalized(path)
>         assert normized not in orig_layers  # always a new layer
> Exception raised:
>     Traceback (most recent call last):
>       File "/usr/lib/python3.8/doctest.py", line 1336, in __run
>         exec(compile(example.source, filename, "single",
>       File "<doctest lib.layer.tree.RootLayerStack.layer_new_normalized[4]>", 
> line 3, in <module>
>         assert normized not in orig_layers  # always a new layer
>     NameError: name 'orig_layers' is not defined
> 
> -------------------- >> begin captured logging << --------------------
> lib.layer.tree: DEBUG: Normalize: bd_ops = [(2, <lib.tiledsurface.Background 
> object at 0x7fee10498610>, None, None), (3, None, None, None), (1, 
> <lib.tiledsurface.MyPaintSurface object at 0x7fee1046fc70>, 21, 1.0), (1, 
> <lib.tiledsurface.MyPaintSurface object at 0x7fee1046f850>, 21, 1.0), (1, 
> <lib.tiledsurface.MyPaintSurface object at 0x7fee1046f430>, 21, 1.0), (4, 
> None, 21, 1.0)]
> lib.layer.tree: DEBUG: Normalize: src_ops = [(3, None, None, None), (1, 
> <lib.tiledsurface.MyPaintSurface object at 0x7fee10487fa0>, 21, 1.0), (1, 
> <lib.tiledsurface.MyPaintSurface object at 0x7fee10487b80>, 21, 1.0), (1, 
> <lib.tiledsurface.MyPaintSurface object at 0x7fee10487730>, 21, 1.0), (4, 
> None, 21, 1.0)]
> --------------------- >> end captured logging << ---------------------
> 
> ======================================================================
> FAIL: Doctest: lib.layer.tree.RootLayerStack.walk
> ----------------------------------------------------------------------
> Traceback (most recent call last):
>   File "/usr/lib/python3.8/doctest.py", line 2204, in runTest
>     raise self.failureException(self.format_failure(new.getvalue()))
> AssertionError: Failed doctest test for lib.layer.tree.RootLayerStack.walk
>   File "/<<PKGBUILDDIR>>/lib/layer/tree.py", line 1547, in walk
> 
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/layer/tree.py", line 1572, in 
> lib.layer.tree.RootLayerStack.walk
> Failed example:
>     root in {l for p, l in walk}
> Expected:
>     False
> Got nothing
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/layer/tree.py", line 1596, in 
> lib.layer.tree.RootLayerStack.walk
> Failed example:
>     root.deepget([1]) in {l for p, l in walk}
> Expected:
>     True
> Got nothing
> ----------------------------------------------------------------------
> File "/<<PKGBUILDDIR>>/lib/layer/tree.py", line 1598, in 
> lib.layer.tree.RootLayerStack.walk
> Failed example:
>     root.deepget([1, 0]) in {l for p, l in walk}
> Expected:
>     False
> Got nothing
> 
> 
> ----------------------------------------------------------------------
> Ran 142 tests in 3.929s
> 
> FAILED (failures=19)
> make[1]: *** [debian/rules:44: override_dh_auto_test] Error 1

The full build log is available from:
   http://qa-logs.debian.net/2020/05/01/mypaint_2.0.0-2_unstable.log

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

About the archive rebuild: The rebuild was done on EC2 VM instances from
Amazon Web Services, using a clean, minimal and up-to-date chroot. Every
failed build was retried once to eliminate random failures.

Reply via email to