Source: vitables
Version: 3.0.2-2
Severity: serious
Justification: FTBFS
Tags: bookworm sid ftbfs
User: [email protected]
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;[email protected]
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20220412&[email protected]&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.

Reply via email to