Bug#1009458: vitables: FTBFS: dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.10 returned exit code 13

Lucas Nussbaum lucas at debian.org
Tue Apr 12 19:22:37 BST 2022


Source: vitables
Version: 3.0.2-2
Severity: serious
Justification: FTBFS
Tags: bookworm sid ftbfs
User: lucas at debian.org
Usertags: ftbfs-20220412 ftbfs-bookworm

Hi,

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


Relevant part (hopefully):
> make[2]: Entering directory '/<<PKGBUILDDIR>>/doc'
> sphinx-build -b qthelp -d _build/doctrees   . _build/qthelp
> Running Sphinx v4.5.0
> making output directory... done
> loading pickled environment... done
> building [mo]: targets for 0 po files that are out of date
> building [qthelp]: targets for 9 source files that are out of date
> updating environment: 0 added, 0 changed, 0 removed
> looking for now-outdated files... none found
> preparing documents... done
> writing output... [ 11%] develop
> writing output... [ 22%] index
> writing output... [ 33%] usersguide-app1
> writing output... [ 44%] usersguide-app2
> writing output... [ 55%] usersguide-ch1
> writing output... [ 66%] usersguide-ch2
> writing output... [ 77%] usersguide-ch3
> writing output... [ 88%] usersguide-ch4
> writing output... [100%] usersguide-ch5
> 
> generating indices... genindex done
> writing additional pages... done
> copying images... [ 10%] images/title_page_plain.png
> copying images... [ 20%] images/helpBrowser.png
> copying images... [ 30%] images/mainWindow.png
> copying images... [ 40%] images/treeSymbols.png
> copying images... [ 50%] images/browseDataset.png
> copying images... [ 60%] images/zoomingCells.png
> copying images... [ 70%] images/propertiesDlg.png
> copying images... [ 80%] images/newFilteredTable.png
> copying images... [ 90%] images/groupCreation.png
> copying images... [100%] images/editingUserAttrs.png
> 
> copying static files... done
> copying extra files... done
> writing project file...
> writing collection project file...
> build succeeded.
> 
> You can now run "qcollectiongenerator" with the .qhcp project file in _build/qthelp, like this:
> $ qcollectiongenerator _build/qthelp/ViTables Users' Guide.qhcp
> To view the help file:
> $ assistant -collectionFile _build/qthelp/ViTables Users' Guide.qhc
> 
> Build finished; now you can run qcollectiongenerator with the .qhcp project file in _build/qthelp, like this:
> # qcollectiongenerator _build/qthelp/ViTablesUsersGuide.qhcp
> To view the help file:
> # assistant -collectionFile _build/qthelp/ViTablesUsersGuide.qhc
> make[2]: Leaving directory '/<<PKGBUILDDIR>>/doc'
> cd doc/_build && rm -r html && mv qthelp html && rm html/_static/*.js
> make[1]: Leaving directory '/<<PKGBUILDDIR>>'
>    dh_auto_test -O--buildsystem=pybuild
> 	pybuild --test --test-pytest -i python{version} -p 3.10
> I: pybuild base:239: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10/build; python3.10 -m pytest tests
> ============================= test session starts ==============================
> platform linux -- Python 3.10.4, pytest-6.2.5, py-1.10.0, pluggy-1.0.0
> rootdir: /<<PKGBUILDDIR>>
> plugins: xvfb-2.0.0
> collected 54 items
> 
> tests/test_filenode.py EEEEEE                                            [ 11%]
> tests/test_logger.py EEEEE                                               [ 20%]
> tests/test_utils.py EEEEEEEEEEEE                                         [ 42%]
> tests/test_vtconfig.py EEEEEEEEEEE                                       [ 62%]
> tests/test_vtgui.py EEEEEEEEEEEEEEEEEEEE                                 [100%]
> 
> ==================================== ERRORS ====================================
> ________________ ERROR at setup of TestFilenode.test_isFilenode ________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8b5a9e0>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8b5beb0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> ---------------------------- Captured stderr setup -----------------------------
> QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-user42'
> QPixmap::scaled: Pixmap is a null pixmap
> QPixmap::scaled: Pixmap is a null pixmap
> QPixmap::scaled: Pixmap is a null pixmap
> QPixmap::scaled: Pixmap is a null pixmap
> QPixmap::scaled: Pixmap is a null pixmap
> QPixmap::scaled: Pixmap is a null pixmap
> QPixmap::scaled: Pixmap is a null pixmap
> QPixmap::scaled: Pixmap is a null pixmap
> QPixmap::scaled: Pixmap is a null pixmap
> QPixmap::scaled: Pixmap is a null pixmap
> QPixmap::scaled: Pixmap is a null pixmap
> QPixmap::scaled: Pixmap is a null pixmap
> QPixmap::scaled: Pixmap is a null pixmap
> QPixmap::scaled: Pixmap is a null pixmap
> QPixmap::scaled: Pixmap is a null pixmap
> QPixmap::scaled: Pixmap is a null pixmap
> QPixmap::scaled: Pixmap is a null pixmap
> QPixmap::scaled: Pixmap is a null pixmap
> ______________ ERROR at setup of TestFilenode.test_filenodeToFile ______________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8b5a9e0>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8b5beb0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> ____________ ERROR at setup of TestFilenode.test_filenodeTotalRows _____________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8b5a9e0>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8b5beb0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> ______________ ERROR at setup of TestFilenode.test_fnbTotalNRows _______________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8b5a9e0>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8b5beb0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> ______________ ERROR at setup of TestFilenode.test_fnbReadBuffer _______________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8b5a9e0>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8b5beb0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> ________________ ERROR at setup of TestFilenode.test_fnbGetCell ________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8b5a9e0>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8b5beb0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> ___________________ ERROR at setup of TestLogger.test_write ____________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8acc310>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8acd7e0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> ______________ ERROR at setup of TestLogger.test_setupContextMenu ______________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8acc310>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8acd7e0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> _____________ ERROR at setup of TestLogger.test_updateContextMenu ______________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8acc310>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8acd7e0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> ________________ ERROR at setup of TestLogger.test_focusInEvent ________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8acc310>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8acd7e0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> _______________ ERROR at setup of TestLogger.test_focusOutEvent ________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8acc310>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8acd7e0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> __________________ ERROR at setup of TestUtils.test_getVTApp ___________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8acfe20>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8ae9360>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> ___________________ ERROR at setup of TestUtils.test_getGui ____________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8acfe20>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8ae9360>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> __________________ ERROR at setup of TestUtils.test_getModel ___________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8acfe20>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8ae9360>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> ___________________ ERROR at setup of TestUtils.test_getView ___________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8acfe20>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8ae9360>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> _____________ ERROR at setup of TestUtils.test_getSelectedIndexes ______________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8acfe20>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8ae9360>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> ______________ ERROR at setup of TestUtils.test_getSelectedNodes _______________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8acfe20>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8ae9360>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> ________________ ERROR at setup of TestUtils.test_insertInMenu _________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8acfe20>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8ae9360>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> __________________ ERROR at setup of TestUtils.test_addToMenu __________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8acfe20>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8ae9360>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> _________________ ERROR at setup of TestUtils.test_addActions __________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8acfe20>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8ae9360>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> _____________ ERROR at setup of TestUtils.test_checkFileExtension ______________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8acfe20>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8ae9360>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> _________________ ERROR at setup of TestUtils.test_createIcons _________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8acfe20>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8ae9360>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> _________________ ERROR at setup of TestUtils.test_forwardPath _________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8acfe20>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8ae9360>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> ________________ ERROR at setup of TestLogger.test_credentials _________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8aeb9a0>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a10ee0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> ___________________ ERROR at setup of TestLogger.test_logger ___________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8aeb9a0>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a10ee0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> _________________ ERROR at setup of TestLogger.test_workspace __________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8aeb9a0>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a10ee0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> __________________ ERROR at setup of TestLogger.test_appStyle __________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8aeb9a0>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a10ee0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> _______________ ERROR at setup of TestLogger.test_windowGeometry _______________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8aeb9a0>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a10ee0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> ______________ ERROR at setup of TestLogger.test_dockwidgetState _______________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8aeb9a0>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a10ee0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> _______________ ERROR at setup of TestLogger.test_toolbarsState ________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8aeb9a0>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a10ee0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> _______________ ERROR at setup of TestLogger.test_hsplitterState _______________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8aeb9a0>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a10ee0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> _____________ ERROR at setup of TestLogger.test_restoreLastSession _____________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8aeb9a0>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a10ee0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> _____________ ERROR at setup of TestLogger.test_startupWorkingDir ______________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8aeb9a0>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a10ee0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> _______________ ERROR at setup of TestLogger.test_lastWorkingDir _______________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8aeb9a0>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a10ee0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> _________________ ERROR at setup of TestVTGui.test_dockWidget __________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a13490>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d89b49d0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> __________________ ERROR at setup of TestVTGui.test_hsplitter __________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a13490>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d89b49d0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> ___________________ ERROR at setup of TestVTGui.test_actions ___________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a13490>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d89b49d0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> _________________ ERROR at setup of TestVTGui.test_fileToolBar _________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a13490>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d89b49d0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> _________________ ERROR at setup of TestVTGui.test_nodeToolBar _________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a13490>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d89b49d0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> ________________ ERROR at setup of TestVTGui.test_queryToolBar _________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a13490>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d89b49d0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> _________________ ERROR at setup of TestVTGui.test_helpToolBar _________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a13490>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d89b49d0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> _______________ ERROR at setup of TestVTGui.test_statusBarWidget _______________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a13490>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d89b49d0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> ____________________ ERROR at setup of TestVTGui.test_menus ____________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a13490>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d89b49d0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> __________________ ERROR at setup of TestVTGui.test_fileMenu ___________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a13490>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d89b49d0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> __________________ ERROR at setup of TestVTGui.test_nodeMenu ___________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a13490>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d89b49d0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> _________________ ERROR at setup of TestVTGui.test_datasetMenu _________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a13490>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d89b49d0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> ________________ ERROR at setup of TestVTGui.test_settingsMenu _________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a13490>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d89b49d0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> _________________ ERROR at setup of TestVTGui.test_windowMenu __________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a13490>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d89b49d0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> __________________ ERROR at setup of TestVTGui.test_helpMenu ___________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a13490>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d89b49d0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> ___________________ ERROR at setup of TestVTGui.test_viewCM ____________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a13490>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d89b49d0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> _________________ ERROR at setup of TestVTGui.test_rootNodeCM __________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a13490>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d89b49d0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> _________________ ERROR at setup of TestVTGui.test_groupNodeCM _________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a13490>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d89b49d0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> _________________ ERROR at setup of TestVTGui.test_leafNodeCM __________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a13490>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d89b49d0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> ____________________ ERROR at setup of TestVTGui.test_mdiCM ____________________
> 
>     @pytest.fixture(scope='module')
>     def launcher():
> >       return Launcher()
> 
> tests/conftest.py:33: 
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> tests/conftest.py:27: in __init__
>     self.vtapp_object = vitables.vtapp.VTApp(keep_splash=False)
> vitables/vtapp.py:139: in __init__
>     self.csv_importer = importcsv.ImportCSV()
> vitables/csv/import_csv.py:102: in __init__
>     self.addEntry()
> vitables/csv/import_csv.py:176: in addEntry
>     vitables.utils.insertInMenu(
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
> 
> menu = <PyQt5.QtWidgets.QMenu object at 0x7fc2d8a13490>
> entries = <PyQt5.QtWidgets.QMenu object at 0x7fc2d89b49d0>, uid = 'fileClose'
> 
>     def insertInMenu(menu, entries, uid):
>         """Insert entries to the given menu before the action named uid.
>     
>         The function accept a QAction/QMenu or an iterable. The entries will
>         be added before the action whose name is uid.
>     
>         :Parameters:
>     
>         - `menu`: the menu or context menu being updated
>         - `entries`: QAction/Qmenu object or a list of such objects
>         - `uid`: indicates the insertion position for the new entries
>     
>         :return: None
>         """
>     
> >       if not isinstance(entries, collections.Iterable):
> E       AttributeError: module 'collections' has no attribute 'Iterable'
> 
> vitables/utils.py:152: AttributeError
> =============================== warnings summary ===============================
> vitables/vtapp.py:492
>   /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10/build/vitables/vtapp.py:492: DeprecationWarning: invalid escape sequence '\.'
>     "(^{0}$)|[a-zA-Z_]+[0-9a-zA-Z_]*(?:\.[0-9a-zA-Z_]+)?$"
> 
> vitables/vtapp.py:501
>   /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10/build/vitables/vtapp.py:501: DeprecationWarning: invalid escape sequence '\.'
>     "(^{0}$)|[a-zA-Z_]+[0-9a-zA-Z_]*(?:\.[0-9a-zA-Z_]+)?$"
> 
> vitables/vtapp.py:509
>   /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10/build/vitables/vtapp.py:509: DeprecationWarning: invalid escape sequence '\.'
>     pattern = "[a-zA-Z_]+[0-9a-zA-Z_]*(?:\.[0-9a-zA-Z_]+)?$"
> 
> vitables/utils.py:334
>   /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10/build/vitables/utils.py:334: DeprecationWarning: invalid escape sequence '\.'
>     if not re.search('\.(.+)$', os.path.basename(filepath)):
> 
> vitables/preferences/vtconfig.py:127
>   /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10/build/vitables/preferences/vtconfig.py:127: DeprecationWarning: invalid escape sequence '\S'
>     """
> 
> vitables/docbrowser/browsergui.py:319
>   /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10/build/vitables/docbrowser/browsergui.py:319: DeprecationWarning: invalid escape sequence '\s'
>     if re.search("^(\s?\d)", action.text()):
> 
> -- Docs: https://docs.pytest.org/en/stable/warnings.html
> =========================== short test summary info ============================
> ERROR tests/test_filenode.py::TestFilenode::test_isFilenode - AttributeError:...
> ERROR tests/test_filenode.py::TestFilenode::test_filenodeToFile - AttributeEr...
> ERROR tests/test_filenode.py::TestFilenode::test_filenodeTotalRows - Attribut...
> ERROR tests/test_filenode.py::TestFilenode::test_fnbTotalNRows - AttributeErr...
> ERROR tests/test_filenode.py::TestFilenode::test_fnbReadBuffer - AttributeErr...
> ERROR tests/test_filenode.py::TestFilenode::test_fnbGetCell - AttributeError:...
> ERROR tests/test_logger.py::TestLogger::test_write - AttributeError: module '...
> ERROR tests/test_logger.py::TestLogger::test_setupContextMenu - AttributeErro...
> ERROR tests/test_logger.py::TestLogger::test_updateContextMenu - AttributeErr...
> ERROR tests/test_logger.py::TestLogger::test_focusInEvent - AttributeError: m...
> ERROR tests/test_logger.py::TestLogger::test_focusOutEvent - AttributeError: ...
> ERROR tests/test_utils.py::TestUtils::test_getVTApp - AttributeError: module ...
> ERROR tests/test_utils.py::TestUtils::test_getGui - AttributeError: module 'c...
> ERROR tests/test_utils.py::TestUtils::test_getModel - AttributeError: module ...
> ERROR tests/test_utils.py::TestUtils::test_getView - AttributeError: module '...
> ERROR tests/test_utils.py::TestUtils::test_getSelectedIndexes - AttributeErro...
> ERROR tests/test_utils.py::TestUtils::test_getSelectedNodes - AttributeError:...
> ERROR tests/test_utils.py::TestUtils::test_insertInMenu - AttributeError: mod...
> ERROR tests/test_utils.py::TestUtils::test_addToMenu - AttributeError: module...
> ERROR tests/test_utils.py::TestUtils::test_addActions - AttributeError: modul...
> ERROR tests/test_utils.py::TestUtils::test_checkFileExtension - AttributeErro...
> ERROR tests/test_utils.py::TestUtils::test_createIcons - AttributeError: modu...
> ERROR tests/test_utils.py::TestUtils::test_forwardPath - AttributeError: modu...
> ERROR tests/test_vtconfig.py::TestLogger::test_credentials - AttributeError: ...
> ERROR tests/test_vtconfig.py::TestLogger::test_logger - AttributeError: modul...
> ERROR tests/test_vtconfig.py::TestLogger::test_workspace - AttributeError: mo...
> ERROR tests/test_vtconfig.py::TestLogger::test_appStyle - AttributeError: mod...
> ERROR tests/test_vtconfig.py::TestLogger::test_windowGeometry - AttributeErro...
> ERROR tests/test_vtconfig.py::TestLogger::test_dockwidgetState - AttributeErr...
> ERROR tests/test_vtconfig.py::TestLogger::test_toolbarsState - AttributeError...
> ERROR tests/test_vtconfig.py::TestLogger::test_hsplitterState - AttributeErro...
> ERROR tests/test_vtconfig.py::TestLogger::test_restoreLastSession - Attribute...
> ERROR tests/test_vtconfig.py::TestLogger::test_startupWorkingDir - AttributeE...
> ERROR tests/test_vtconfig.py::TestLogger::test_lastWorkingDir - AttributeErro...
> ERROR tests/test_vtgui.py::TestVTGui::test_dockWidget - AttributeError: modul...
> ERROR tests/test_vtgui.py::TestVTGui::test_hsplitter - AttributeError: module...
> ERROR tests/test_vtgui.py::TestVTGui::test_actions - AttributeError: module '...
> ERROR tests/test_vtgui.py::TestVTGui::test_fileToolBar - AttributeError: modu...
> ERROR tests/test_vtgui.py::TestVTGui::test_nodeToolBar - AttributeError: modu...
> ERROR tests/test_vtgui.py::TestVTGui::test_queryToolBar - AttributeError: mod...
> ERROR tests/test_vtgui.py::TestVTGui::test_helpToolBar - AttributeError: modu...
> ERROR tests/test_vtgui.py::TestVTGui::test_statusBarWidget - AttributeError: ...
> ERROR tests/test_vtgui.py::TestVTGui::test_menus - AttributeError: module 'co...
> ERROR tests/test_vtgui.py::TestVTGui::test_fileMenu - AttributeError: module ...
> ERROR tests/test_vtgui.py::TestVTGui::test_nodeMenu - AttributeError: module ...
> ERROR tests/test_vtgui.py::TestVTGui::test_datasetMenu - AttributeError: modu...
> ERROR tests/test_vtgui.py::TestVTGui::test_settingsMenu - AttributeError: mod...
> ERROR tests/test_vtgui.py::TestVTGui::test_windowMenu - AttributeError: modul...
> ERROR tests/test_vtgui.py::TestVTGui::test_helpMenu - AttributeError: module ...
> ERROR tests/test_vtgui.py::TestVTGui::test_viewCM - AttributeError: module 'c...
> ERROR tests/test_vtgui.py::TestVTGui::test_rootNodeCM - AttributeError: modul...
> ERROR tests/test_vtgui.py::TestVTGui::test_groupNodeCM - AttributeError: modu...
> ERROR tests/test_vtgui.py::TestVTGui::test_leafNodeCM - AttributeError: modul...
> ERROR tests/test_vtgui.py::TestVTGui::test_mdiCM - AttributeError: module 'co...
> ======================== 6 warnings, 54 errors in 8.44s ========================
> Fatal Python error: Segmentation fault
> 
> Current thread 0x00007fc2e53da740 (most recent call first):
>   <no Python frame>
> 
> Extension modules: numpy.core._multiarray_umath, numpy.core._multiarray_tests, numpy.linalg.lapack_lite, numpy.linalg._umath_linalg, numpy.fft._pocketfft_internal, numpy.random._common, numpy.random.bit_generator, numpy.random._bounded_integers, numpy.random._mt19937, numpy.random.mtrand, numpy.random._philox, numpy.random._pcg64, numpy.random._sfc64, numpy.random._generator, tables._comp_lzo, tables._comp_bzip2, tables.utilsextension, numexpr.interpreter, tables.hdf5extension, tables.linkextension, tables.lrucacheextension, tables.tableextension, tables.indexesextension, PyQt5.QtCore, PyQt5.QtGui, PyQt5.QtWidgets (total: 26)
> Segmentation fault
> E: pybuild pybuild:369: test: plugin distutils failed with: exit code=139: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10/build; python3.10 -m pytest tests
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.10 returned exit code 13


The full build log is available from:
http://qa-logs.debian.net/2022/04/12/vitables_3.0.2-2_unstable.log

All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20220412;users=lucas@debian.org
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20220412&fusertaguser=lucas@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results

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!

If you reassign this bug to another package, please marking it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects

If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.



More information about the debian-science-maintainers mailing list