def testUserVars(self):
        USERVAR_PREFIX = "Test_"  # variables for testing
        userVars = UserVars(USERVAR_PREFIX, self.unoObjs.document, logger)
        userVars.store("TestVar_1", "hamburger")
        result = userVars.get("TestVar_1")
        self.assertEqual(result, "hamburger")

        userVars.store("TestVar_2", "0")
        result = userVars.get("TestVar_2")
        self.assertEqual(result, "0")

        result = userVars.get("TestVar_3")
        self.assertEqual(result, "")

        userVars.store("TestVar_4", "something")
        userVars.store("TestVar_4", "")
        result = userVars.get("TestVar_4")
        self.assertEqual(result, "")

        userVars.delete("TestVar_1")
        result = userVars.get("TestVar_1")
        self.assertEqual(result, "")
        result = userVars.get("TestVar_2")
        self.assertEqual(result, "0")

        userVars.delete("TestVar_2")
        userVars.delete("TestVar_3")
        userVars.delete("TestVar_4")
        result = userVars.get("TestVar_2")
        self.assertEqual(result, "")
        result = userVars.get("TestVar_3")
        self.assertEqual(result, "")
Example #2
0
    def createComparisonDoc(self):
        """
        Create an empty writer doc.
        If the main file has a saved path, then only one comparison doc
        should be created.
        Returns True if a new document was created.
        """
        if not self.makeDoc:
            return
        if self.writerDoc is not None:
            if self.writerDoc.document is not None:
                ## Document is already open
                return

        varname = "ComparisonDocForFile"
        currentFilepath = None  # file path of main document
        url = self.mainDoc.document.getURL()
        if url:
            currentFilepath = uno.fileUrlToSystemPath(url)
            doclist = self.mainDoc.getOpenDocs(util.UnoObjs.DOCTYPE_WRITER)
            for docUnoObjs in doclist:
                logger.debug("Checking writer document for settings.")
                userVars = UserVars(self.VAR_PREFIX, docUnoObjs.document,
                                    logger)
                if not userVars.isEmpty(varname):
                    varFilepath = userVars.get(varname)
                    if varFilepath == currentFilepath:
                        logger.debug("found comparison doc")
                        self.writerDoc = docUnoObjs
                        return False
                    else:
                        logger.debug("%s != %s", varFilepath, currentFilepath)

        logger.debug("opening new document for comparison")
        newDoc = self.mainDoc.desktop.loadComponentFromURL(
            "private:factory/swriter", "_blank", 0, ())
        self.writerDoc = self.mainDoc.getDocObjs(newDoc)
        self.writerDoc.text.insertString(
            self.writerDoc.viewcursor,
            "Here are the changes that have been made.  " +
            "You may want to look through these changes, and make any " +
            "corrections in the main document.  " +
            "When finished checking, just close this window without saving.",
            0)
        self.writerDoc.text.insertControlCharacter(self.writerDoc.viewcursor,
                                                   PARAGRAPH_BREAK, 0)
        self.writerDoc.text.insertControlCharacter(self.writerDoc.viewcursor,
                                                   PARAGRAPH_BREAK, 0)
        if currentFilepath:
            userVars = UserVars(self.VAR_PREFIX, self.writerDoc.document,
                                logger)
            userVars.store(varname, currentFilepath)
        self.emptyDoc = True
        logger.debug(util.funcName('end'))
 def _harvestWords(self, fileItem):
     """Harvest words from the specified file."""
     fileType = fileItem.filetype  # short variable name
     logger.debug(util.funcName(args=fileType))
     words = []
     if fileType in WordsReader.supportedNames():
         reader = WordsReader(fileItem, self.unoObjs)
         words = reader.read()
     elif fileType in SFM_Reader.supportedNames():
         reader = SFM_Reader(fileItem, self.unoObjs)
         words = reader.read()
     elif fileType in InterlinReader.supportedNames():
         config = fileitemlist.InterlinInputSettings(self.userVars)
         config.showMorphLine2 = True
         config.separateMorphColumns = True
         lingExFileItem = fileitemlist.LingExFileItem(self.userVars)
         lingExFileItem.filepath = fileItem.filepath
         config.fileList.addItem(lingExFileItem)
         reader = InterlinReader(self.unoObjs, self.userVars, config)
         words = reader.grabWords(fileItem.thingsToGrab)
     elif fileType in PhonReader.supportedNames():
         config = lingex_structs.PhonInputSettings(self.userVars)
         config.filepath = fileItem.filepath
         config.phoneticWS = fileItem.writingSystem
         config.isLexemePhonetic = True
         phonUserVars = UserVars(
             Prefix.PHONOLOGY, self.unoObjs.document, logger)
         if phonUserVars.get("FlexLexeme") == 'phonemic':
             config.isLexemePhonetic = False
         reader = PhonReader(self.unoObjs, self.userVars, config)
         words = reader.grabWords(fileItem.thingsToGrab)
     elif fileType in DocReader.supportedNames():
         settings = TextSearchSettings()
         settings.load_userVars(self.userVars)
         reader = DocReader(fileItem, self.unoObjs, settings.matchesLimit)
         words = reader.read()
     elif fileType in CalcFileReader.supportedNames():
         reader = CalcFileReader(self.unoObjs)
         reader.setFileConfig(fileItem)
         words = reader.read()
     return words
Example #4
0
    def loadValues(self, userVars, abbrevList):
        logger.debug(util.funcName('begin'))
        abbrevList.loadUserVars()
        dutil.fill_list_ctrl(self.listboxAbbrevs, abbrevList.getItemTextList())

        styleNames = styles.getListOfStyles("ParagraphStyles", self.unoObjs)
        displayNames = [dispName for dispName, name in styleNames]
        selectedValue = userVars.get("SearchParaStyle")
        if selectedValue == "":
            userVarsGrammar = UserVars(Prefix.GRAMMAR, self.unoObjs.document,
                                       logger)
            selectedValue = userVarsGrammar.get("StyleName_Gloss")
        dutil.fill_list_ctrl(self.cmbxSearchParaStyle, displayNames,
                             selectedValue)

        searchAffix = userVars.get("SearchAffix")
        if searchAffix == "suffix":
            self.optSearchSuffix.setState(True)
        elif searchAffix == "prefix":
            self.optSearchPrefix.setState(True)
        elif searchAffix == "any":
            self.optSearchAny.setState(True)

        varname = "MaxSearchLength"
        if userVars.isEmpty(varname):
            defaultCtrlText = "5"
            userVars.store(varname, defaultCtrlText)
            userVarVal = defaultCtrlText
        else:
            userVarVal = userVars.getInt(varname)
        self.txtMaxSearchLength.setText(userVarVal)

        if userVars.getInt("SearchUpperCase") == 1:
            self.chkSearchUpperCase.setState(True)

        self.addRemainingListeners()
        logger.debug(util.funcName('end'))
Example #5
0
class DlgAbbreviations:
    """Main class for this dialog."""
    def __init__(self, unoObjs):
        self.unoObjs = unoObjs
        self.userVars = UserVars(Prefix.ABBREVIATIONS, unoObjs.document,
                                 logger)
        self.msgbox = MessageBox(unoObjs)
        self.abbrevList = abbreviations.AbbrevList(self.unoObjs, self.userVars)
        self.selectedIndex = -1  # position in abbrevList and listboxAbbrevs
        self.selectedAbbrev = None
        self.dlgCtrls = None
        self.evtHandler = None
        self.dlgClose = None

    def showDlg(self):
        logger.debug(util.funcName(obj=self))
        dlg = dutil.createDialog(self.unoObjs, _dlgdef)
        if not dlg:
            return
        ctrl_getter = dutil.ControlGetter(dlg)
        self.dlgClose = dlg.endExecute
        self.evtHandler = DlgEventHandler(self)
        self.dlgCtrls = DlgControls(self.unoObjs, ctrl_getter, self.evtHandler)
        logger.debug("Got controls.")

        self.dlgCtrls.loadValues(self.userVars, self.abbrevList)
        self.viewAbbrev(False)

        ## Display the dialog and then close it

        dlg.execute()
        self.storeResults()
        dlg.dispose()

    def viewAbbrev(self, checkForUpdates):
        """
        Fill the form with values of the selected abbreviation.
        :param checkForUpdates: set to true to update current item if needed
        """
        logger.debug(util.funcName('begin'))
        if checkForUpdates:
            newSelectedItem = self.dlgCtrls.listboxAbbrevs.getSelectedItem()
            logger.debug("newSelectedItem '%s'", newSelectedItem)
            self.updateAbbrev(False)
            if newSelectedItem:
                # Select the new item again,
                # since it may have been deselected while refreshing the list.
                self.dlgCtrls.listboxAbbrevs.selectItem(newSelectedItem, True)
        try:
            self.selectedIndex = dutil.get_selected_index(
                self.dlgCtrls.listboxAbbrevs)
            logger.debug("self.selectedIndex %d", self.selectedIndex)
        except exceptions.ChoiceProblem:
            return
        abbr = self.abbrevList[self.selectedIndex]
        logger.debug("Abbrev %s", abbr.abbrevText)

        self.dlgCtrls.txtAbbrev.setText(abbr.abbrevText)
        self.dlgCtrls.txtFullName.setText(abbr.fullName)
        if abbr.forceOutput:
            self.dlgCtrls.chkForceOutput.setState(True)
        else:
            self.dlgCtrls.chkForceOutput.setState(False)
        self.dlgCtrls.txtOccurrences.setText(abbr.occurrences)
        logger.debug(util.funcName('end'))

    def updateAbbrev(self, selectNewItem):
        """
        Update abbrev attributes from dialog fields if changed.
        :param selectNewItem: set to True to select item when refreshing list
        """
        logger.debug(util.funcName('begin'))
        if not 0 <= self.selectedIndex < len(self.abbrevList):
            if selectNewItem:
                self.msgbox.displayExc(self.abbrevList.noItemSelected())
            return
        newAbbrev = abbreviations.Abbrev()
        newAbbrev.abbrevText = self.dlgCtrls.txtAbbrev.getText()
        if not newAbbrev.abbrevText:
            return
        newAbbrev.fullName = self.dlgCtrls.txtFullName.getText()
        if self.dlgCtrls.chkForceOutput.getState() == 1:  # checked
            newAbbrev.forceOutput = True
        oldAbbrev = self.abbrevList[self.selectedIndex]
        if oldAbbrev:
            if newAbbrev.sameAs(oldAbbrev):
                return
            logger.debug("%r not sameAs %r", newAbbrev, oldAbbrev)
            if newAbbrev.abbrevText == oldAbbrev.abbrevText:
                newAbbrev.occurrences = oldAbbrev.occurrences
            try:
                self.abbrevList.updateItem(self.selectedIndex, newAbbrev)
            except exceptions.ChoiceProblem as exc:
                self.msgbox.displayExc(exc)
                return
        if selectNewItem:
            self.refreshListAndSelectItem(newAbbrev)
        else:
            self.refreshList()
        logger.debug(util.funcName('end'))

    def refreshList(self):
        dutil.fill_list_ctrl(self.dlgCtrls.listboxAbbrevs,
                             self.abbrevList.getItemTextList())

    def refreshListAndSelectItem(self, selItem):
        logger.debug(util.funcName('begin'))
        dutil.fill_list_ctrl(self.dlgCtrls.listboxAbbrevs,
                             self.abbrevList.getItemTextList(), str(selItem))
        try:
            self.selectedIndex = dutil.get_selected_index(
                self.dlgCtrls.listboxAbbrevs)
            logger.debug("self.selectedIndex %d", self.selectedIndex)
            self.viewAbbrev(False)
        except exceptions.ChoiceProblem:
            return
        logger.debug(util.funcName('end'))

    def addAbbrev(self):
        logger.debug(util.funcName('begin'))
        newAbbrev = abbreviations.Abbrev()
        newAbbrev.abbrevText = "---"
        newAbbrev.fullName = ""
        self.abbrevList.addItem(newAbbrev, allowDuplicates=True)
        self.refreshListAndSelectItem(newAbbrev)
        logger.debug(util.funcName('end'))

    def deleteAbbrev(self):
        logger.debug(util.funcName('begin'))
        try:
            self.abbrevList.deleteItem(self.selectedIndex)
        except exceptions.ChoiceProblem as exc:
            self.msgbox.displayExc(exc)
            return
        self.refreshList()

        ## Select the next item

        if self.dlgCtrls.listboxAbbrevs.getItemCount() > 0:
            dutil.select_index(self.dlgCtrls.listboxAbbrevs,
                               self.selectedIndex)
            self.viewAbbrev(False)
        else:
            ## The list is empty.  Clear the fields.
            logger.debug("Clearing fields.")
            self.dlgCtrls.txtAbbrev.setText("")
            self.dlgCtrls.txtFullName.setText("")
            self.dlgCtrls.chkForceOutput.setState(False)
            self.dlgCtrls.txtOccurrences.setText(0)
            self.selectedIndex = -1
        logger.debug(util.funcName('end'))

    def changeAllCaps(self):
        logger.debug(util.funcName('begin'))
        self.abbrevList.changeAllCaps()
        self.refreshList()
        dutil.select_index(self.dlgCtrls.listboxAbbrevs, self.selectedIndex)
        self.viewAbbrev(False)
        logger.debug(util.funcName('end'))

    def rescan(self):
        logger.debug(util.funcName('begin'))
        abbrevSearch = search.AbbrevSearch(self.unoObjs)
        abbrevSearch.findOccurrences(self.abbrevList)
        self.refreshList()
        dutil.select_index(self.dlgCtrls.listboxAbbrevs, self.selectedIndex)
        self.viewAbbrev(False)
        logger.debug(util.funcName('end'))

    def insertList(self):
        logger.debug(util.funcName('begin'))

        ## Rescan and prepare for output

        abbrevSearch = search.AbbrevSearch(self.unoObjs)
        abbrevSearch.findOccurrences(self.abbrevList)
        self.refreshList()
        self.abbrevList.storeUserVars()
        abbrevStyles = styles.AbbrevStyles(self.unoObjs, self.userVars)
        abbrevStyles.createStyles()

        ## Output the list and close

        writerOutput = outputmanager.AbbrevManager(self.unoObjs, abbrevStyles)
        try:
            writerOutput.outputList(self.abbrevList)
        except exceptions.MessageError as exc:
            self.msgbox.displayExc(exc)
        self.dlgClose()
        logger.debug(util.funcName('end'))

    def findNext(self):
        logger.debug(util.funcName('begin'))

        ## Get search form results

        displayName = self.dlgCtrls.cmbxSearchParaStyle.getText()
        if not displayName:
            self.msgbox.display("Please select a paragraph style.")
            return
        searchConfig = search.AbbrevSearchSettings()
        searchConfig.searchParaStyle = displayName
        self.userVars.store("SearchParaStyle", displayName)

        searchConfig.searchAffix = "any"
        if self.dlgCtrls.optSearchSuffix.getState() == 1:  # checked
            searchConfig.searchAffix = "suffix"
        elif self.dlgCtrls.optSearchPrefix.getState() == 1:  # checked
            searchConfig.searchAffix = "prefix"
        self.userVars.store("SearchAffix", searchConfig.searchAffix)

        try:
            searchConfig.maxSearchLength = int(
                self.dlgCtrls.txtMaxSearchLength.getText())
        except ValueError:
            self.msgbox.display("Please enter a number for max length.")
            return
        self.userVars.store("MaxSearchLength", searchConfig.maxSearchLength)

        searchConfig.searchUpperCase = False
        chkValue = self.dlgCtrls.chkSearchUpperCase.getState()
        if chkValue == 1:
            searchConfig.searchUpperCase = True
        self.userVars.store("SearchUpperCase", str(chkValue))

        searchConfig.startFromBeginning = False
        if self.dlgCtrls.chkStartFromBeginning.getState() == 1:
            searchConfig.startFromBeginning = True
            self.dlgCtrls.chkStartFromBeginning.setState(False)

        searchConfig.searchDelimiters = self.userVars.get("SearchDelimiters")

        ## Search

        abbrevSearch = search.AbbrevSearch(self.unoObjs)
        while True:
            possibleAbbrevs = abbrevSearch.findNext(
                searchConfig, self.abbrevList.getUniqueList())
            if len(possibleAbbrevs) == 0:
                self.msgbox.display("No more possible abbreviations found.")
                return
            for possibleAbbrevText in possibleAbbrevs:
                if possibleAbbrevText.strip() == "":
                    continue
                result = self.msgbox.displayYesNoCancel(
                    "Add '%s' as a new abbreviation?", possibleAbbrevText)
                if result == "yes":
                    logger.debug("Adding abbreviation from search.")
                    newAbbrev = abbreviations.Abbrev()
                    newAbbrev.abbrevText = possibleAbbrevText
                    newAbbrev.occurrences = 1
                    try:
                        self.abbrevList.addItem(newAbbrev)
                        self.refreshListAndSelectItem(newAbbrev)
                    except exceptions.ChoiceProblem as exc:
                        self.msgbox.displayExc(exc)
                elif result == "cancel":
                    return
                elif result == "no":
                    ## continue
                    pass
        logger.debug(util.funcName('end'))

    def storeResults(self):
        logger.debug(util.funcName('begin'))
        self.updateAbbrev(False)
        self.abbrevList.storeUserVars()
        logger.debug(util.funcName('end'))
Example #6
0
class DlgGramSettingsTestCase(unittest.TestCase):
    def __init__(self, testCaseName):
        unittest.TestCase.__init__(self, testCaseName)
        testutil.modifyClass_showDlg(DlgGramSettings)

    @classmethod
    def setUpClass(cls):
        unoObjs = util.UnoObjs(
            testutil.stored.getContext(), loadDocObjs=False)
        testutil.blankWriterDoc(unoObjs)

    def setUp(self):
        logger.debug("DlgGramSettingsTestCase setUp()")
        self.unoObjs = testutil.unoObjsForCurrentDoc()
        USERVAR_PREFIX = "LTg_"  # for LinguisticTools Grammar variables
        self.userVars = UserVars(
            USERVAR_PREFIX, self.unoObjs.document, logger)
        self.dlg = DlgGramSettings(self.unoObjs)

    def test1_enableDisable(self):
        # For this test, dialog should be set to its default settings.
        def useDialog(dummy_innerSelf):
            pass
        DlgGramSettings.useDialog = useDialog
        self.dlg.showDlg()
        self.dlg.dlgCtrls.enableDisable()
        self.assertEqual(
            self.dlg.dlgCtrls.chkMorphsSeparate.getModel().Enabled, True)
        self.assertEqual(
            self.dlg.dlgCtrls.chkPOS_aboveGloss.getModel().Enabled, False)

    def test2_enableDisable(self):
        def useDialog(innerSelf):
            innerSelf.dlgCtrls.chkMorphLine1.setState(0)
            innerSelf.dlgCtrls.chkPOS_Line.setState(1)
            innerSelf.dlgCtrls.chkOuterTable.setState(0)
            innerSelf.dlgCtrls.optTables.setState(0)
        DlgGramSettings.useDialog = useDialog
        self.dlg.showDlg()
        self.dlg.dlgCtrls.enableDisable()
        self.assertEqual(self.dlg.dlgCtrls.chkMorphLine1.getState(), 0)
        self.assertEqual(
            self.dlg.dlgCtrls.chkMorphLine1.getModel().Enabled, True)
        self.assertEqual(
            self.dlg.dlgCtrls.chkMorphsSeparate.getModel().Enabled, False)
        self.assertEqual(
            self.dlg.dlgCtrls.chkPOS_aboveGloss.getModel().Enabled, True)
        self.assertEqual(
            self.dlg.dlgCtrls.txtNumColWidth.getModel().Enabled, False)
        self.assertEqual(
            self.dlg.dlgCtrls.lblNumColWidth.getModel().Enabled, False)

    def test3_enableDisable(self):
        def useDialog(innerSelf):
            innerSelf.dlgCtrls.chkMorphLine1.setState(1)
            innerSelf.dlgCtrls.chkPOS_Line.setState(0)
            innerSelf.dlgCtrls.chkOuterTable.setState(1)
            innerSelf.dlgCtrls.optTables.setState(1)
        DlgGramSettings.useDialog = useDialog
        self.dlg.showDlg()
        self.dlg.dlgCtrls.enableDisable()
        self.assertEqual(
            self.dlg.dlgCtrls.chkMorphsSeparate.getModel().Enabled, True)
        self.assertEqual(
            self.dlg.dlgCtrls.chkPOS_aboveGloss.getModel().Enabled, False)
        self.assertEqual(
            self.dlg.dlgCtrls.txtNumColWidth.getModel().Enabled, True)
        self.assertEqual(
            self.dlg.dlgCtrls.lblNumColWidth.getModel().Enabled, True)

    def test4_interlinLines(self):
        def useDialog(innerSelf):
            innerSelf.dlgCtrls.chkWordLine1.setState(0)
            innerSelf.dlgCtrls.chkWordLine2.setState(1)
            innerSelf.dlgCtrls.chkMorphLine1.setState(1)
            innerSelf.dlgCtrls.chkMorphLine2.setState(1)
            innerSelf.dlgCtrls.chkPOS_Line.setState(1)
            innerSelf.dlgCtrls.optTables.setState(1)
        DlgGramSettings.useDialog = useDialog
        self.dlg.showDlg()
        self.assertEqual(self.dlg.dlgCtrls.chkPOS_Line.getState(), 1)
        self.assertEqual(self.dlg.dlgCtrls.chkWordLine2.getState(), 1)
        self.assertEqual(self.dlg.dlgCtrls.optFrames.getState(), 0)
        self.assertEqual(self.dlg.dlgCtrls.optTables.getState(), 1)
        self.dlg.evtHandler.actionPerformed(MyActionEvent("OK"))
        self.dlg = None
        self.assertEqual(self.userVars.get("Method"), "tables")
        self.assertEqual(self.userVars.getInt("ShowPartOfSpeech"), 1)

    def test5_fileList(self):
        def useDialog(dummy_innerSelf):
            pass
        DlgGramSettings.useDialog = useDialog
        self.dlg.showDlg()
        self.assertEqual(self.dlg.dlgCtrls.listboxFiles.getItemCount(), 0)
        filepath = os.path.join(util.TESTDATA_FOLDER, "testText1.xml")
        testutil.modifyFilePicker(filepath)
        self.dlg.evtHandler.actionPerformed(MyActionEvent("FileAdd"))
        self.assertEqual(self.dlg.dlgCtrls.listboxFiles.getItemCount(), 1)
        self.assertEqual(len(self.dlg.fileItems), 1)

        filepath = os.path.join(util.TESTDATA_FOLDER, "testText2.xml")
        testutil.modifyFilePicker(filepath)
        self.dlg.evtHandler.actionPerformed(MyActionEvent("FileAdd"))
        self.assertEqual(self.dlg.dlgCtrls.listboxFiles.getItemCount(), 2)
        self.assertEqual(len(self.dlg.fileItems), 2)
        self.assertEqual(self.dlg.dlgCtrls.listboxFiles.getSelectedItemPos(), 1)

        filepath = os.path.join(util.TESTDATA_FOLDER, "a_testText3.xml")
        testutil.modifyFilePicker(filepath)
        self.dlg.evtHandler.actionPerformed(MyActionEvent("FileAdd"))
        self.assertEqual(self.dlg.dlgCtrls.listboxFiles.getItemCount(), 3)
        self.assertEqual(len(self.dlg.fileItems), 3)
        self.assertEqual(self.dlg.dlgCtrls.listboxFiles.getSelectedItemPos(), 0)

        self.dlg.dlgCtrls.listboxFiles.selectItemPos(1, True)    # testText1.xml
        self.dlg.dlgCtrls.txtPrefix.setText("PREF-")
        self.dlg.evtHandler.actionPerformed(MyActionEvent("FileUpdate"))
        fileItem = self.dlg.fileItems[1]
        self.assertEqual(fileItem.prefix, "PREF-")
        self.assertEqual(str(fileItem), "PREF-    testText1.xml")

        self.dlg.evtHandler.actionPerformed(MyActionEvent("FileRemove"))
        self.assertEqual(self.dlg.dlgCtrls.listboxFiles.getItemCount(), 2)
        self.assertEqual(len(self.dlg.fileItems), 2)
        self.assertEqual(self.dlg.dlgCtrls.listboxFiles.getSelectedItemPos(), 1)
        fileItem = self.dlg.fileItems[1]
        self.assertEqual(str(fileItem), "testText2.xml")

        self.dlg.evtHandler.actionPerformed(MyActionEvent("FileRemove"))
        self.assertEqual(self.dlg.dlgCtrls.listboxFiles.getItemCount(), 1)
        self.assertEqual(len(self.dlg.fileItems), 1)
        self.assertEqual(self.dlg.dlgCtrls.listboxFiles.getSelectedItemPos(), 0)
        fileItem = self.dlg.fileItems[0]
        self.assertEqual(str(fileItem), "a_testText3.xml")

        self.dlg.evtHandler.actionPerformed(MyActionEvent("FileRemove"))
        self.assertEqual(self.dlg.dlgCtrls.listboxFiles.getItemCount(), 0)
        self.assertEqual(len(self.dlg.fileItems), 0)

    def tearDown(self):
        if self.dlg:
            if hasattr(self.dlg, "dlgDispose"):
                testutil.do_dispose(self.dlg)
                self.dlg = None