def test_ReaddingLogFolderAfterDeletion(self): config = Builder().setworkdirectory(self.workdirectory).build() samplepath = os.path.dirname(config.getlogpath("anyPath")) self.assertTrue(os.path.exists(samplepath)) config.deletelogfolder() self.assertFalse(os.path.exists(samplepath)) samplepath = os.path.dirname(config.getlogpath("anyPath")) self.assertTrue(os.path.exists(samplepath))
def testDeletionOfLogFolderOnInitalization(self, shutil_mock, os_mock, rtc_initializer_mock, git_initializer_mock): config = Builder().setrootfolder(self.rootfolder).build() anylogpath = config.getlogpath("testDeletionOfLogFolderOnInitalization") os_mock.path.exists.return_value = False migration.initialize(config) expectedlogfolder = self.rootfolder + os.sep + "Logs" shutil_mock.rmtree.assert_called_once_with(expectedlogfolder)
def testDeletionOfLogFolderOnInitalization(self, shutil_mock, os_mock, rtc_initializer_mock, git_initializer_mock, git_comitter_mock): config = Builder().setrootfolder(self.rootfolder).build() anylogpath = config.getlogpath("testDeletionOfLogFolderOnInitalization") os_mock.path.exists.return_value = False configuration.config = config migration.initialize() expectedlogfolder = self.rootfolder + os.sep + "Logs" shutil_mock.rmtree.assert_called_once_with(expectedlogfolder)
def test_handleignore_global_extensions(self): with testhelper.mkchdir("aFolder") as folder: # create test repo configuration.config = Builder().setworkdirectory( folder).setgitreponame("test.git").setignorefileextensions( ".zip; .jar").build() ignore = ".gitignore" Initializer().createrepo() # simulate addition of .zip and .jar files zip = "test.zip" with open(zip, 'w') as testzip: testzip.write("test zip content") jar = "test.jar" with open(jar, 'w') as testjar: testjar.write("test jar content") # do the filtering Commiter.handleignore() # check output of .gitignore with open(ignore, 'r') as gitIgnore: lines = gitIgnore.readlines() self.assertEqual(2, len(lines)) lines.sort() # the ignore should not be recursive: self.assertEqual('/' + jar, lines[0].strip()) self.assertEqual('/' + zip, lines[1].strip())
def test_getcommentwithprefix_enabled_commitisattached_shouldreturnwithprefix( self): prefix = "APREFIX-" configuration.config = Builder().setcommitmessageprefix(prefix) comment = "1337: Upgrade to Wildfly - A comment" expectedcomment = prefix + comment self.assertEqual(expectedcomment, Commiter.getcommentwithprefix(comment))
def test_CreationOfGitIgnore_DoesntExist_ShouldGetCreated(self): with testhelper.mkchdir("aFolder") as folder: configuration.config = Builder().setworkdirectory(folder).setgitreponame("test.git").build() ignore = '.gitignore' Initializer().createrepo() Initializer.createignore() gitignorepath = os.path.join(os.getcwd(), ignore) self.assertTrue(os.path.exists(gitignorepath))
def test_getcommentwithprefix_enabled_commitisattached_containsspecialchars_shouldreturnwithprefix( self): prefix = "PR-" configuration.config = Builder().setcommitmessageprefix(prefix) comment = "1338: VAT: VAT-Conditions defined with 0 % and 0 amount - reverse" expectedcomment = prefix + comment self.assertEqual(expectedcomment, Commiter.getcommentwithprefix(comment))
def test_CreationOfGitattributes_ExistAlready_ShouldntGetCreated(self): with testhelper.mkchdir("aFolder") as folder: configuration.config = Builder().setworkdirectory(folder).setgitreponame("test.git").setgitattributes(["# comment", "*.sql text"]).build() attributes = '.gitattributes' existing_git_attribute_entry = "* text=auto" Initializer().createrepo() with open(attributes, 'w') as gitattributes: gitattributes.write(existing_git_attribute_entry) Initializer.createattributes() with open(attributes, 'r') as gitattributes: for line in gitattributes.readlines(): self.assertEqual(existing_git_attribute_entry, line)
def test_CreationOfGitIgnore_ExistAlready_ShouldntGetCreated(self): with testhelper.mkchdir("aFolder") as folder: configuration.config = Builder().setworkdirectory(folder).setgitreponame("test.git").build() ignore = '.gitignore' existing_git_ignore_entry = "test" Initializer().createrepo() with open(ignore, 'w') as gitIgnore: gitIgnore.write(existing_git_ignore_entry) Initializer.createignore() with open(ignore, 'r') as gitIgnore: for line in gitIgnore.readlines(): self.assertEqual(existing_git_ignore_entry, line)
def test_CreationOfGitattributes_DoesntExist_ShouldGetCreated(self): with testhelper.mkchdir("aFolder") as folder: configuration.config = Builder().setworkdirectory(folder).setgitreponame("test.git").setgitattributes(["# comment", "* text=auto"]).build() attributes = '.gitattributes' Initializer().createrepo() Initializer.createattributes() gitattributespath = os.path.join(os.getcwd(), attributes) self.assertTrue(os.path.exists(gitattributespath)) with open(gitattributespath, 'r') as gitattributes: lines = gitattributes.readlines() self.assertEqual(2, len(lines)) self.assertEquals('# comment\n', lines[0]) self.assertEquals('* text=auto\n', lines[1])
def createrepo(reponame="test.git", folderprefix="rtc2test_case"): repodir = tempfile.mkdtemp(prefix=folderprefix) configuration.config = Builder().setworkdirectory(repodir).setgitreponame( reponame).build() initializer = Initializer() previousdir = os.getcwd() os.chdir(repodir) initializer.initalize() try: yield finally: os.chdir(previousdir) shutil.rmtree( repodir, ignore_errors=True ) # on windows folder remains in temp, git process locks it
def test_handleignore_local_jazzignore_expect_delete_gitignore(self): with testhelper.mkchdir("aFolder") as folder: # create a repository with a .jazzignore and .gitignore file configuration.config = Builder().setworkdirectory(folder).setgitreponame("test.git").build() Initializer().createrepo() subfolder = "aSubFolder" os.mkdir(subfolder) jazzignore = subfolder + os.sep + ".jazzignore" with open(jazzignore, 'w') as testjazzignore: testjazzignore.write("# my ignores\n") testjazzignore.write("core.ignore = {*.pyc}") Commiter.addandcommit(testhelper.createchangeentry(comment="Initial .jazzignore")) gitignore = subfolder + os.sep + ".gitignore" self.assertTrue(os.path.exists(gitignore)) # now remove .jazzignore os.remove(jazzignore) Commiter.handleignore() self.assertFalse(os.path.exists(gitignore))
def test_handleignore_local_jazzignore_expect_new_gitignore(self): with testhelper.mkchdir("aFolder") as folder: configuration.config = Builder().setworkdirectory(folder).setgitreponame("test.git").build() Initializer().createrepo() subfolder = "aSubFolder" os.mkdir(subfolder) jazzignore = subfolder + os.sep + ".jazzignore" with open(jazzignore, 'w') as testjazzignore: testjazzignore.write("# my ignores\n") testjazzignore.write("core.ignore = {*.pyc}") expectedlines = ["\n","/*.pyc\n"] gitignore = subfolder + os.sep + ".gitignore" self.assertFalse(os.path.exists(gitignore)) Commiter.handleignore() self.assertTrue(os.path.exists(gitignore)) gitignorelines = [] with open(gitignore, 'r') as localgitignore: gitignorelines = localgitignore.readlines() self.assertEqual(expectedlines, gitignorelines)
def test_handleignore_local_jazzignore_expect_empty_gitignore(self): with testhelper.mkchdir("aFolder") as folder: configuration.config = Builder().setworkdirectory(folder).setgitreponame("test.git").build() Initializer().createrepo() subfolder = "aSubFolder" os.mkdir(subfolder) gitignore = subfolder + os.sep + ".gitignore" with open(gitignore, 'w') as localgitignore: localgitignore.write('\n') localgitignore.write("/*.pyc") jazzignore = subfolder + os.sep + ".jazzignore" with open(jazzignore, 'w') as testjazzignore: testjazzignore.write("# my ignores are empty\n") Commiter.handleignore() self.assertTrue(os.path.exists(gitignore)) gitignorelines = [] with open(gitignore, 'r') as localgitignore: gitignorelines = localgitignore.readlines() self.assertEqual(0, len(gitignorelines))
def test_CreationOfGitIgnore_DoesntExist_ShouldGetCreated_WithDirectories(self): with testhelper.mkchdir("aFolder") as folder: configuration.config = Builder().setworkdirectory(folder).setgitreponame("test.git").setignoredirectories(["projectX/dist", "projectZ/out"]).build() ignore = '.gitignore' Initializer().createrepo() Initializer.createignore() gitignorepath = os.path.join(os.getcwd(), ignore) self.assertTrue(os.path.exists(gitignorepath)) expectedlines = [] expectedlines.append(".jazz5\n") expectedlines.append(".metadata\n") expectedlines.append(".jazzShed\n") expectedlines.append("\n") expectedlines.append("# directories\n") expectedlines.append("/projectX/dist\n") expectedlines.append("/projectZ/out\n") expectedlines.append("\n") with open(gitignorepath, 'r') as gitignore: lines = gitignore.readlines() self.assertEqual(expectedlines, lines)
def test_directoriesToBeIgnored_MultipleExtensions(self): config = Builder().setignoredirectories(configuration.parsesplittedproperty(" project/dist ; project/lib ; out ")) \ .build() self.assertEqual(3, len(config.ignoredirectories)) self.assertEqual(['project/dist', 'project/lib', 'out'], config.ignoredirectories)
def test_sampleBoolConfigEntrySetToTrue_ShouldBeTrue(self): config = Builder().setuseautomaticconflictresolution("True").build() self.assertTrue(config.useautomaticconflictresolution)
def test_gitattributes__MultipleProperties(self): config = Builder().setgitattributes(configuration.parsesplittedproperty(" # some comment ; * text=auto ; *.sql text ")).build() self.assertEqual(3, len(config.gitattributes)) self.assertEqual(['# some comment', '* text=auto', '*.sql text'], config.gitattributes)
def test_getcommentwithprefix_disabled_commitisattached_shouldreturncommentwithoutprefix(self): configuration.config = Builder().setcommitmessageprefix("") comment = "1337: Upgrade to Wildfly - A comment" self.assertEqual(comment, Commiter.getcommentwithprefix(comment))
def test_getcommentwithprefix_enabled_commitisnotattachedtoanworkitem_shouldreturncommentwithoutprefix(self): configuration.config = Builder().setcommitmessageprefix("PR-") comment = "US1337: Fix some problems" self.assertEqual(comment, Commiter.getcommentwithprefix(comment))
def test_fileExtensionsToBeIgnored_ShouldBeEmpty_FromEmpty(self): config = Builder().setignorefileextensions("").build() self.assertEqual(0, len(config.ignorefileextensions))
def test_fileExtensionsToBeIgnored_ShouldBeEmpty_FromNone(self): config = Builder().setignorefileextensions(configuration.parsesplittedproperty(None)).build() self.assertEqual(0, len(config.ignorefileextensions))
def setUp(self): self.cwd = os.getcwd() configuration.config = Builder().build()
def test_fileExtensionsToBeIgnored_SingleExtension(self): config = Builder().setignorefileextensions(configuration.parsesplittedproperty(" .zip ")).build() self.assertEqual(1, len(config.ignorefileextensions)) self.assertEqual(['.zip'], config.ignorefileextensions)
def test_fileExtensionsToBeIgnored_MultipleExtensions(self): config = Builder().setignorefileextensions(configuration.parsesplittedproperty(".zip; .jar; .exe")) \ .build() self.assertEqual(3, len(config.ignorefileextensions)) self.assertEqual(['.zip', '.jar', '.exe'], config.ignorefileextensions)
def test_directoriesToBeIgnored_ShouldBeEmpty_FromNone(self): config = Builder().setignoredirectories(configuration.parsesplittedproperty(None)).build() self.assertEqual(0, len(config.ignoredirectories))
def test_directoriesToBeIgnored_ShouldBeEmpty_FromEmpty(self): config = Builder().setignoredirectories("").build() self.assertEqual(0, len(config.ignoredirectories))
def test_gitattributes__SingleProperty(self): config = Builder().setgitattributes(configuration.parsesplittedproperty(" * text=auto ")).build() self.assertEqual(1, len(config.gitattributes)) self.assertEqual(['* text=auto'], config.gitattributes)
def test_directoriesToBeIgnored_SingleExtension(self): config = Builder().setignoredirectories(configuration.parsesplittedproperty(" project/dist ")).build() self.assertEqual(1, len(config.ignoredirectories)) self.assertEqual(['project/dist'], config.ignoredirectories)
def testExistRepo_DoesntExist_ShouldReturnFalse(self): configuration.config = Builder().setworkdirectory(self.rootfolder).setgitreponame("test.git").build() self.assertFalse(migration.existsrepo())
def test_gitattributes_ShouldBeEmpty_FromEmpty(self): config = Builder().setgitattributes(configuration.parsesplittedproperty("")).build() self.assertEqual(0, len(config.gitattributes))