# Tests failing in docker container in no window mode

**URL:** <https://discourse.slicer.org/t/tests-failing-in-docker-container-in-no-window-mode/8357>\
**Category:** Development\
**Tags:** docker, testing\
**Created:** [September 10, 2019, 8:46am UTC](https://discourse.slicer.org/t/tests-failing-in-docker-container-in-no-window-mode/8357 "2019-09-10T08:46:08Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Alex\_Vergara](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/alex_vergara/32/15205_2.png) [@Alex\_Vergara](https://discourse.slicer.org/u/Alex_Vergara)\
**Post date:** [September 10, 2019, 8:46am UTC](https://discourse.slicer.org/t/tests-failing-in-docker-container-in-no-window-mode/8357/1 "2019-09-10T08:46:08Z")

</div>

I am testing my extensions in a docker container and I have messages like this one

```auto
1: Traceback (most recent call last):
1: File "/usr/src/Slicer-build/Slicer-build/lib/Slicer-4.11/qt-scripted-modules/DICOM.py", line 115, in performPostModuleDiscoveryTasks
1: self.setDetailsPopup(DICOMWidget.getSavedDICOMDetailsWidgetType()())
1: File "/usr/src/Slicer-build/Slicer-build/lib/Slicer-4.11/qt-scripted-modules/DICOMLib/DICOMWidgets.py", line 1019, in __init__
1: super(DICOMDetailsWindow, self). __init__ (dicomBrowser, parent)
1: File "/usr/src/Slicer-build/Slicer-build/lib/Slicer-4.11/qt-scripted-modules/DICOMLib/DICOMWidgets.py", line 988, in __init__
1: DICOMDetailsBase. __init__ (self, dicomBrowser)
1: File "/usr/src/Slicer-build/Slicer-build/lib/Slicer-4.11/qt-scripted-modules/DICOMLib/DICOMWidgets.py", line 94, in __init__
1: self.promptForDatabaseDirectory()
1: File "/usr/src/Slicer-build/Slicer-build/lib/Slicer-4.11/qt-scripted-modules/DICOMLib/DICOMWidgets.py", line 526, in promptForDatabaseDirectory
1: self.dicomBrowser.schemaUpdateAutoCreateDirectory = True
1: AttributeError: 'NoneType' object has no attribute 'schemaUpdateAutoCreateDirectory'

```

The test command is like

```auto
1: Test command: /usr/src/Slicer-build/Slicer-build/Slicer "--no-splash" "--testing" "--launcher-additional-settings" "/builds/dosimetry4d-build/AdditionalLauncherSettings.ini" "--no-main-window" "--additional-module-paths" "/builds/dosimetry4d-build/lib/Slicer-4.11/qt-scripted-modules" "/builds/dosimetry4d-build/lib/Slicer-4.11/cli-modules" "/builds/dosimetry4d-build/lib/Slicer-4.11/qt-loadable-modules" "--python-code" "import slicer.testing; slicer.testing.runUnitTest(['/builds/dosimetry4d-build/Dosimetry4D/Logic', '/builds/project-0/Dosimetry4D/Logic'], 'Dosimetry4DTest')"

```

I have tried to write the `DatabaseDirectory` variable inside the ini with

```auto
sed '/\[General\]/a DatabaseDirectory=/usr/src/SlicerDB' /builds/dosimetry4d-build/AdditionalLauncherSettings.ini

```

and also to set up a function that forces slicer to have a temporal database as in the DICOMWidgets example like this one

```python
    def forceSlicerDB():
        '''
        forces Slicer to initialize a temporary database
        '''
        if not hasattr(slicer, 'dicomDatabase') or not hasattr(slicer.modules, 'dicom'):
            databaseDirectory = Path("/usr/src/SlicerDB")
            databaseDirectory.touch()
            DICOMLib.DICOMWidgets.settings.setValue('DatabaseDirectory', str(databaseDirectory))
            slicer.dicomDatabase = ctk.ctkDICOMDatabase()
            slicer.dicomDatabase.openDatabase(str(databaseDirectory / "ctkDICOM.sql"), "SLICER")
            slicer.app.setDICOMDatabase(slicer.dicomDatabase)
            DICOMLib.setDatabasePrecacheTags()

            # slicer.modules.DICOMInstance.performPostModuleDiscoveryTasks()

```

But no success so far, what am I doing wrong in these approaches?  
Calling `slicer.modules.DICOMInstance.performPostModuleDiscoveryTasks()` just raises a non database exception

```auto
1: Traceback (most recent call last):
1: File "/usr/src/Slicer-build/Slicer-build/lib/Slicer-4.11/qt-scripted-modules/DICOM.py", line 115, in performPostModuleDiscoveryTasks
1: self.setDetailsPopup(DICOMWidget.getSavedDICOMDetailsWidgetType()())
1: File "/usr/src/Slicer-build/Slicer-build/lib/Slicer-4.11/qt-scripted-modules/DICOMLib/DICOMWidgets.py", line 1019, in __init__
1: super(DICOMDetailsWindow, self). __init__ (dicomBrowser, parent)
1: File "/usr/src/Slicer-build/Slicer-build/lib/Slicer-4.11/qt-scripted-modules/DICOMLib/DICOMWidgets.py", line 988, in __init__
1: DICOMDetailsBase. __init__ (self, dicomBrowser)
1: File "/usr/src/Slicer-build/Slicer-build/lib/Slicer-4.11/qt-scripted-modules/DICOMLib/DICOMWidgets.py", line 94, in __init__
1: self.promptForDatabaseDirectory()
1: File "/usr/src/Slicer-build/Slicer-build/lib/Slicer-4.11/qt-scripted-modules/DICOMLib/DICOMWidgets.py", line 526, in promptForDatabaseDirectory
1: self.dicomBrowser.schemaUpdateAutoCreateDirectory = True
1: AttributeError: 'NoneType' object has no attribute 'schemaUpdateAutoCreateDirectory'

```

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [September 11, 2019, 1:53pm UTC](https://discourse.slicer.org/t/tests-failing-in-docker-container-in-no-window-mode/8357/2 "2019-09-11T13:53:48Z")

</div>

Try the latest version. We’ve submitted a fix yesterday to only show the database folder update popup if DICOM module is activated.

---

<div class="post-metadata">

**Author:** ![Alex\_Vergara](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/alex_vergara/32/15205_2.png) [@Alex\_Vergara](https://discourse.slicer.org/u/Alex_Vergara)\
**Post date:** [September 12, 2019, 11:59am UTC](https://discourse.slicer.org/t/tests-failing-in-docker-container-in-no-window-mode/8357/3 "2019-09-12T11:59:58Z")

</div>

Tested with lastest version, errors are gone now! Thanks
