forked from qt-creator/qt-creator
Squish: Added test for local git actions
Change-Id: I4b7cd2e872d6a9aed95d3802d9df98ffdce2cbfe Reviewed-by: Christian Stenger <christian.stenger@digia.com>
This commit is contained in:
@@ -64,6 +64,7 @@
|
||||
:Debugger Toolbar.Continue_QToolButton {container=':DebugModeWidget.Debugger Toolbar_QDockWidget' text='Continue' type='QToolButton' unnamed='1' visible='1'}
|
||||
:Debugger Toolbar.Exit Debugger_QToolButton {container=':DebugModeWidget.Debugger Toolbar_QDockWidget' text='Stop Debugger' type='QToolButton' unnamed='1' visible='1'}
|
||||
:Debugger Toolbar.StatusText_Utils::StatusLabel {container=':DebugModeWidget.Debugger Toolbar_QDockWidget' type='Utils::StatusLabel' unnamed='1'}
|
||||
:Description.description_Utils::CompletingTextEdit {container=':splitter.Description_QGroupBox' name='description' type='Utils::CompletingTextEdit' visible='1'}
|
||||
:Dialog.OK_QPushButton {text='OK' type='QPushButton' unnamed='1' visible='1' window=':Dialog_QmlJSEditor::Internal::ComponentNameDialog'}
|
||||
:Dialog.componentNameEdit_QLineEdit {name='componentNameEdit' type='Utils::ClassNameValidatingLineEdit' visible='1' window=':Dialog_QmlJSEditor::Internal::ComponentNameDialog'}
|
||||
:Dialog_Debugger::Internal::SymbolPathsDialog {name='Debugger__Internal__SymbolPathsDialog' type='Debugger::Internal::SymbolPathsDialog' visible='1' windowTitle='Dialog'}
|
||||
@@ -75,6 +76,7 @@
|
||||
:File has been removed.Close_QPushButton {text='Close' type='QPushButton' unnamed='1' visible='1' window=':File has been removed_QMessageBox'}
|
||||
:File has been removed.Save_QPushButton {text='Save' type='QPushButton' unnamed='1' visible='1' window=':File has been removed_QMessageBox'}
|
||||
:File has been removed_QMessageBox {text?='The file * removed*. Do you want to save it under a different name, or close the editor?' type='QMessageBox' unnamed='1' visible='1'}
|
||||
:Files.Check all_QCheckBox {container=':splitter.Files_QGroupBox' name='checkAllCheckBox' text='Check all' type='QCheckBox' visible='1'}
|
||||
:Form.Startup_QGroupBox {container=':qt_tabwidget_stackedwidget.Form_QWidget' name='startupGroupBox' title='Startup' type='QGroupBox' visible='1'}
|
||||
:FormEditorStack.CheckBox_QCheckBox {container=':*Qt Creator.FormEditorStack_Designer::Internal::FormEditorStack' name='checkBox' text='CheckBox' type='QCheckBox' visible='1'}
|
||||
:FormEditorStack.PushButton_QPushButton {container=':*Qt Creator.FormEditorStack_Designer::Internal::FormEditorStack' name='pushButton' text='PushButton' type='QPushButton' visible='1'}
|
||||
@@ -98,6 +100,9 @@
|
||||
:Kits_Or_Compilers_QTreeView {container=':qt_tabwidget_stackedwidget_QWidget' type='QTreeView' unnamed='1' visible='1'}
|
||||
:Kits_QtVersion_QComboBox {container=':qt_tabwidget_stackedwidget_QWidget' occurrence='5' type='QComboBox' unnamed='1' visible='1'}
|
||||
:Locals and Expressions_Debugger::Internal::WatchTreeView {container=':DebugModeWidget.Locals and Expressions_QDockWidget' name='WatchWindow' type='Debugger::Internal::WatchTreeView' visible='1' windowTitle='Locals and Expressions'}
|
||||
:New Text File.Add to project:_QLabel {name='projectLabel' text='Add to project:' type='QLabel' visible='1' window=':New Text File_Utils::FileWizardDialog'}
|
||||
:New Text File.nameLineEdit_Utils::FileNameValidatingLineEdit {name='nameLineEdit' type='Utils::FileNameValidatingLineEdit' visible='1' window=':New Text File_Utils::FileWizardDialog'}
|
||||
:New Text File_Utils::FileWizardDialog {type='Utils::FileWizardDialog' unnamed='1' visible='1' windowTitle='New Text File'}
|
||||
:New.comboBox_QComboBox {name='comboBox' type='QComboBox' visible='1' window=':New_Core::Internal::NewDialog'}
|
||||
:New.frame_QFrame {name='frame' type='QFrame' visible='1' window=':New_Core::Internal::NewDialog'}
|
||||
:New.templateCategoryView_QTreeView {name='templateCategoryView' type='QTreeView' visible='1' window=':New_Core::Internal::NewDialog'}
|
||||
@@ -133,6 +138,7 @@
|
||||
:Qt Creator.Stop_QToolButton {text='Stop' type='QToolButton' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||
:Qt Creator.replaceEdit_Utils::FilterLineEdit {name='replaceEdit' type='Utils::FilterLineEdit' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||
:Qt Creator.scrollArea_QScrollArea {name='scrollArea' type='QScrollArea' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||
:Qt Creator.splitter_QSplitter {name='splitter' type='QSplitter' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||
:Qt Creator_AppOutput_Core::Internal::OutputPaneToggleButton {occurrence='3' type='Core::Internal::OutputPaneToggleButton' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||
:Qt Creator_Bookmarks_TreeView {type='TreeView' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||
:Qt Creator_CloseButton {type='CloseButton' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||
@@ -140,11 +146,13 @@
|
||||
:Qt Creator_Core::Internal::CommandComboBox {type='Core::Internal::CommandComboBox' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||
:Qt Creator_Core::Internal::MainWindow {type='Core::Internal::MainWindow' visible='1' windowTitle?='*Qt Creator'}
|
||||
:Qt Creator_Core::Internal::NavComboBox {type='Core::Internal::NavComboBox' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||
:Qt Creator_Core::Internal::OutputPaneManageButton {type='Core::Internal::OutputPaneManageButton' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||
:Qt Creator_Core::Internal::ProgressBar {type='Core::Internal::ProgressBar' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||
:Qt Creator_Core::OutputWindow {type='Core::OutputWindow' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||
:Qt Creator_CppEditor::Internal::CPPEditorWidget {type='CppEditor::Internal::CPPEditorWidget' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||
:Qt Creator_FilenameQComboBox {type='QComboBox' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||
:Qt Creator_Find::Internal::SearchResultTreeView {type='Find::Internal::SearchResultTreeView' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||
:Qt Creator_Git::Internal::GitEditor {type='Git::Internal::GitEditor' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||
:Qt Creator_Help::Internal::HelpViewer {type='Help::Internal::HelpViewer' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||
:Qt Creator_HelpSelector_QComboBox {occurrence='3' type='QComboBox' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||
:Qt Creator_Issues_Core::Internal::OutputPaneToggleButton {occurrence='1' type='Core::Internal::OutputPaneToggleButton' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||
@@ -157,8 +165,10 @@
|
||||
:Qt Creator_QmlJSEditor::QmlJSTextEditorWidget {type='QmlJSEditor::QmlJSTextEditorWidget' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||
:Qt Creator_SearchResult_Core::Internal::OutputPaneToggleButton {occurrence='2' type='Core::Internal::OutputPaneToggleButton' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||
:Qt Creator_SystemSettings.Details_Utils::DetailsButton {occurrence='4' text='Details' type='Utils::DetailsButton' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||
:Qt Creator_TextEditor::PlainTextEditorWidget {type='TextEditor::PlainTextEditorWidget' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||
:Qt Creator_Utils::NavigationTreeView {type='Utils::NavigationTreeView' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||
:Qt Creator_Utils::NavigationTreeView::QExpandingLineEdit {container=':Qt Creator_Utils::NavigationTreeView' type='QExpandingLineEdit' unnamed='1' visible='1'}
|
||||
:Qt Creator_VersionControl_Core::Internal::OutputPaneToggleButton {occurrence='6' type='Core::Internal::OutputPaneToggleButton' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||
:Qt Gui Application.Form file:_QLabel {name='formLabel' text='Form file:' type='QLabel' visible='1' window=':Qt Gui Application_QmakeProjectManager::Internal::GuiAppWizardDialog'}
|
||||
:Qt Gui Application.Header file:_QLabel {name='headerLabel' text='Header file:' type='QLabel' visible='1' window=':Qt Gui Application_QmakeProjectManager::Internal::GuiAppWizardDialog'}
|
||||
:Qt Gui Application.Source file:_QLabel {name='sourceLabel' text='Source file:' type='QLabel' visible='1' window=':Qt Gui Application_QmakeProjectManager::Internal::GuiAppWizardDialog'}
|
||||
@@ -195,6 +205,7 @@
|
||||
:headerFileLineEdit_Utils::FileNameValidatingLineEdit {buddy=':Qt Gui Application.Header file:_QLabel' name='headerFileLineEdit' type='Utils::FileNameValidatingLineEdit' visible='1'}
|
||||
:popupFrame_Proposal_QListView {container=':popupFrame_TextEditor::GenericProposalWidget' type='QListView' unnamed='1' visible='1'}
|
||||
:popupFrame_TextEditor::GenericProposalWidget {name='m_popupFrame' type='TextEditor::GenericProposalWidget' visible='1'}
|
||||
:projectComboBox_QComboBox {buddy=':New Text File.Add to project:_QLabel' name='projectComboBox' type='QComboBox' visible='1'}
|
||||
:qdesigner_internal::WidgetBoxCategoryListView {container=':Widget Box_qdesigner_internal::WidgetBoxTreeWidget' occurrence='3' type='qdesigner_internal::WidgetBoxCategoryListView' unnamed='1' visible='1'}
|
||||
:qmakeCallEdit {container=':Qt Creator.scrollArea_QScrollArea' text?='<b>qmake:</b> qmake*' type='QLabel' unnamed='1' visible='1'}
|
||||
:qt_tabwidget_stackedwidget.Core__Internal__GeneralSettings_QWidget {container=':Options.qt_tabwidget_stackedwidget_QStackedWidget' name='Core__Internal__GeneralSettings' type='QWidget' visible='1'}
|
||||
@@ -210,5 +221,8 @@
|
||||
:scrollArea.qmlDebuggingLibraryCheckBox_QCheckBox {name='qmlDebuggingLibraryCheckBox' type='QCheckBox' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||
:scrollArea_QTableView {type='QTableView' unnamed='1' visible='1' window=':Qt Creator_Core::Internal::MainWindow'}
|
||||
:sourceFileLineEdit_Utils::FileNameValidatingLineEdit {buddy=':Qt Gui Application.Source file:_QLabel' name='sourceFileLineEdit' type='Utils::FileNameValidatingLineEdit' visible='1'}
|
||||
:splitter.Commit File(s)_VcsBase::QActionPushButton {container=':Qt Creator.splitter_QSplitter' text~='(Commit .+/.+ File.*)' type='VcsBase::QActionPushButton' unnamed='1' visible='1'}
|
||||
:splitter.Description_QGroupBox {container=':Qt Creator.splitter_QSplitter' name='descriptionBox' title='Description' type='QGroupBox' visible='1'}
|
||||
:splitter.Files_QGroupBox {container=':Qt Creator.splitter_QSplitter' name='groupBox' title='Files' type='QGroupBox' visible='1'}
|
||||
:stackedWidget.plainTextEdit_QPlainTextEdit {container=':Send to Codepaster.stackedWidget_QStackedWidget' name='plainTextEdit' type='QPlainTextEdit' visible='1'}
|
||||
:uiDescription_QLineEdit {buddy=':Send to Codepaster.Description:_QLabel' name='uiDescription' type='QLineEdit' visible='1'}
|
||||
|
@@ -277,8 +277,7 @@ def getEditorForFileSuffix(curFile):
|
||||
else:
|
||||
test.log("Trying PlainTextEditor (file suffix: %s)" % suffix)
|
||||
try:
|
||||
editor = waitForObject("{type='TextEditor::PlainTextEditorWidget' unnamed='1' "
|
||||
"visible='1' window=':Qt Creator_Core::Internal::MainWindow'}", 3000)
|
||||
editor = waitForObject(":Qt Creator_TextEditor::PlainTextEditorWidget", 3000)
|
||||
except:
|
||||
test.fatal("Unsupported file suffix for file '%s'" % curFile)
|
||||
editor = None
|
||||
|
@@ -174,16 +174,14 @@ def __selectQtVersionDesktop__(checks, available=None):
|
||||
clickButton(waitForObject(":Next_QPushButton"))
|
||||
return checkedTargets
|
||||
|
||||
def __createProjectHandleLastPage__(expectedFiles = None):
|
||||
def __createProjectHandleLastPage__(expectedFiles = None, addToVersionControl = "<None>", addToProject = None):
|
||||
if expectedFiles != None:
|
||||
summary = str(waitForObject("{name='filesLabel' text?='<qt>Files to be added in<pre>*</pre>' "
|
||||
"type='QLabel' visible='1'}").text)
|
||||
lastIndex = 0
|
||||
for filename in expectedFiles:
|
||||
index = summary.find(filename)
|
||||
test.verify(index > lastIndex, "'" + filename + "' found at index " + str(index))
|
||||
lastIndex = index
|
||||
selectFromCombo(":addToVersionControlComboBox_QComboBox", "<None>")
|
||||
summary = waitForObject("{name='filesLabel' text?='<qt>Files to be added in<pre>*</pre>' "
|
||||
"type='QLabel' visible='1'}").text
|
||||
verifyItemOrder(expectedFiles, summary)
|
||||
if addToProject:
|
||||
selectFromCombo(":projectComboBox_QComboBox", addToProject)
|
||||
selectFromCombo(":addToVersionControlComboBox_QComboBox", addToVersionControl)
|
||||
clickButton(waitForObject("{type='QPushButton' text~='(Finish|Done)' visible='1'}"))
|
||||
|
||||
def __verifyFileCreation__(path, expectedFiles):
|
||||
@@ -220,7 +218,7 @@ def __modifyAvailableTargets__(available, requiredQt, asStrings=False):
|
||||
# param path specifies where to create the project
|
||||
# param projectName is the name for the new project
|
||||
# param checks turns tests in the function on if set to True
|
||||
def createProject_Qt_GUI(path, projectName, checks = True):
|
||||
def createProject_Qt_GUI(path, projectName, checks = True, addToVersionControl = "<None>"):
|
||||
template = "Qt Widgets Application"
|
||||
available = __createProjectOrFileSelectType__(" Applications", template)
|
||||
__createProjectSetNameAndPath__(path, projectName, checks)
|
||||
@@ -250,7 +248,7 @@ def createProject_Qt_GUI(path, projectName, checks = True):
|
||||
path = os.path.join(path, projectName)
|
||||
expectedFiles = [path]
|
||||
expectedFiles.extend(__sortFilenamesOSDependent__(["main.cpp", cpp_file, h_file, ui_file, pro_file]))
|
||||
__createProjectHandleLastPage__(expectedFiles)
|
||||
__createProjectHandleLastPage__(expectedFiles, addToVersionControl)
|
||||
|
||||
progressBarWait(20000)
|
||||
__verifyFileCreation__(path, expectedFiles)
|
||||
@@ -639,7 +637,7 @@ def compareProjectTree(rootObject, dataset):
|
||||
return
|
||||
test.passes("No errors found in project tree")
|
||||
|
||||
def addCPlusPlusFileToCurrentProject(name, template, forceOverwrite=False):
|
||||
def addCPlusPlusFileToCurrentProject(name, template, forceOverwrite=False, addToVCS = "<None>"):
|
||||
if name == None:
|
||||
test.fatal("File must have a name - got None.")
|
||||
return
|
||||
@@ -652,7 +650,7 @@ def addCPlusPlusFileToCurrentProject(name, template, forceOverwrite=False):
|
||||
replaceEditorContent(lineEdit, name)
|
||||
clickButton(waitForObject(":Next_QPushButton"))
|
||||
fileExistedBefore = os.path.exists(os.path.join(basePath, name))
|
||||
__createProjectHandleLastPage__()
|
||||
__createProjectHandleLastPage__(addToVersionControl = addToVCS)
|
||||
if (fileExistedBefore):
|
||||
overwriteDialog = "{type='Core::Internal::PromptOverwriteDialog' unnamed='1' visible='1'}"
|
||||
waitForObject(overwriteDialog)
|
||||
|
@@ -724,3 +724,11 @@ def getQModelIndexStr(property, container):
|
||||
if (container.startswith(":")):
|
||||
container = "'%s'" % container
|
||||
return ("{column='0' container=%s %s type='QModelIndex'}" % (container, property))
|
||||
|
||||
def verifyItemOrder(items, text):
|
||||
text = str(text)
|
||||
lastIndex = 0
|
||||
for item in items:
|
||||
index = text.find(item)
|
||||
test.verify(index > lastIndex, "'" + item + "' found at index " + str(index))
|
||||
lastIndex = index
|
||||
|
@@ -7,6 +7,6 @@ HOOK_SUB_PROCESSES=false
|
||||
IMPLICITAUTSTART=0
|
||||
LANGUAGE=Python
|
||||
OBJECTMAP=../objects.map
|
||||
TEST_CASES=tst_codepasting tst_designer_autocomplete tst_designer_goto_slot tst_external_sort tst_git_clone
|
||||
TEST_CASES=tst_codepasting tst_designer_autocomplete tst_designer_goto_slot tst_external_sort tst_git_clone tst_git_local
|
||||
VERSION=2
|
||||
WRAPPERS=Qt
|
||||
|
97
tests/system/suite_tools/tst_git_local/test.py
Normal file
97
tests/system/suite_tools/tst_git_local/test.py
Normal file
@@ -0,0 +1,97 @@
|
||||
#############################################################################
|
||||
##
|
||||
## Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
|
||||
## Contact: http://www.qt-project.org/legal
|
||||
##
|
||||
## This file is part of Qt Creator.
|
||||
##
|
||||
## Commercial License Usage
|
||||
## Licensees holding valid commercial Qt licenses may use this file in
|
||||
## accordance with the commercial license agreement provided with the
|
||||
## Software or, alternatively, in accordance with the terms contained in
|
||||
## a written agreement between you and Digia. For licensing terms and
|
||||
## conditions see http://qt.digia.com/licensing. For further information
|
||||
## use the contact form at http://qt.digia.com/contact-us.
|
||||
##
|
||||
## GNU Lesser General Public License Usage
|
||||
## Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
## General Public License version 2.1 as published by the Free Software
|
||||
## Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
## packaging of this file. Please review the following information to
|
||||
## ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
##
|
||||
## In addition, as a special exception, Digia gives you certain additional
|
||||
## rights. These rights are described in the Digia Qt LGPL Exception
|
||||
## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
##
|
||||
#############################################################################
|
||||
|
||||
source("../../shared/qtcreator.py")
|
||||
|
||||
projectName = "gitProject"
|
||||
|
||||
# TODO: Make selecting changes possible
|
||||
def commit(commitMessage, expectedLogMessage):
|
||||
ensureChecked(waitForObject(":Qt Creator_VersionControl_Core::Internal::OutputPaneToggleButton"))
|
||||
clickButton(waitForObject(":*Qt Creator.Clear_QToolButton"))
|
||||
invokeMenuItem("Tools", "Git", "Local Repository", "Commit...")
|
||||
replaceEditorContent(waitForObject(":Description.description_Utils::CompletingTextEdit"), commitMessage)
|
||||
ensureChecked(waitForObject(":Files.Check all_QCheckBox"))
|
||||
clickButton(waitForObject(":splitter.Commit File(s)_VcsBase::QActionPushButton"))
|
||||
vcsLog = waitForObject("{type='QPlainTextEdit' unnamed='1' visible='1' "
|
||||
"window=':Qt Creator_Core::Internal::MainWindow'}").plainText
|
||||
test.verify(expectedLogMessage in str(vcsLog), "Searching for '%s' in log:\n%s " % (expectedLogMessage, vcsLog))
|
||||
return commitMessage
|
||||
|
||||
def main():
|
||||
startApplication("qtcreator" + SettingsPath)
|
||||
if not startedWithoutPluginError():
|
||||
return
|
||||
createProject_Qt_GUI(srcPath, projectName, addToVersionControl = "Git")
|
||||
if isQt4Build and not object.exists(":Qt Creator_VersionControl_Core::Internal::OutputPaneToggleButton"):
|
||||
clickButton(waitForObject(":Qt Creator_Core::Internal::OutputPaneManageButton"))
|
||||
activateItem(waitForObjectItem("{type='QMenu' unnamed='1' visible='1'}", "Version Control"))
|
||||
ensureChecked(waitForObject(":Qt Creator_VersionControl_Core::Internal::OutputPaneToggleButton"))
|
||||
vcsLog = waitForObject("{type='QPlainTextEdit' unnamed='1' visible='1' "
|
||||
"window=':Qt Creator_Core::Internal::MainWindow'}").plainText
|
||||
test.verify("Initialized empty Git repository in %s"
|
||||
% os.path.join(srcPath, projectName, ".git").replace("\\", "/") in str(vcsLog),
|
||||
"Has initialization of repo been logged:\n%s " % vcsLog)
|
||||
commitMessages = [commit("Initial Commit", "Committed 5 file(s).")]
|
||||
clickButton(waitForObject(":*Qt Creator.Clear_QToolButton"))
|
||||
addCPlusPlusFileToCurrentProject("pointless_header.h", "C++ Header File", addToVCS = "Git")
|
||||
commitMessages.insert(0, commit("Added pointless header file", "Committed 2 file(s)."))
|
||||
__createProjectOrFileSelectType__(" General", "Text File", isProject=False)
|
||||
replaceEditorContent(waitForObject(":New Text File.nameLineEdit_Utils::FileNameValidatingLineEdit"), "README")
|
||||
clickButton(waitForObject(":Next_QPushButton"))
|
||||
__createProjectHandleLastPage__(["README.txt"], "Git", "<None>")
|
||||
replaceEditorContent(waitForObject(":Qt Creator_TextEditor::PlainTextEditorWidget"),
|
||||
"Some important advice in the README")
|
||||
invokeMenuItem("File", "Save All")
|
||||
commitMessages.insert(0, commit("Added README file", "Committed 2 file(s).")) # QTCREATORBUG-11074
|
||||
invokeMenuItem("File", "Close All")
|
||||
invokeMenuItem("Tools", "Git", "Local Repository", "Log")
|
||||
gitEditor = waitForObject(":Qt Creator_Git::Internal::GitEditor")
|
||||
waitFor("str(gitEditor.plainText) != 'Waiting for data...'", 20000)
|
||||
verifyItemOrder(commitMessages, gitEditor.plainText)
|
||||
invokeMenuItem("File", "Close All Projects and Editors")
|
||||
invokeMenuItem("File", "Exit")
|
||||
|
||||
def deleteProject():
|
||||
path = os.path.join(srcPath, projectName)
|
||||
if os.path.exists(path):
|
||||
try:
|
||||
# Make files in .git writable to remove them
|
||||
for root, dirs, files in os.walk(path):
|
||||
for name in files:
|
||||
os.chmod(os.path.join(root, name), stat.S_IWUSR)
|
||||
shutil.rmtree(path)
|
||||
except:
|
||||
test.warning("Error while removing '%s'" % path)
|
||||
|
||||
def init():
|
||||
deleteProject()
|
||||
|
||||
def cleanup():
|
||||
deleteProject()
|
Reference in New Issue
Block a user