You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2018/05/15 21:40:27 UTC
[maven-scm] 01/01: [SCM-886] Tests with checkin rely on global git
config
This is an automated email from the ASF dual-hosted git repository.
michaelo pushed a commit to branch SCM-886
in repository https://gitbox.apache.org/repos/asf/maven-scm.git
commit 7719468daf9432e88c34005ca6054f6c07d3f4b3
Author: Matthieu Brouillard <ma...@brouillard.fr>
AuthorDate: Tue May 15 11:18:03 2018 +0200
[SCM-886] Tests with checkin rely on global git config
Every test performing some modifications to a Git repository (commit, ...) a
defaut user (name & email) has to ben configured so that Git commands succeed
if no global user is configured.
This closes #73
---
.../checkin/GitCheckInCommandNoBranchTest.java | 6 ++++
.../command/checkin/GitCheckInCommandTest.java | 3 ++
.../maven/scm/provider/git/GitScmTestUtils.java | 35 ++++++++++++++++++++++
.../git/command/blame/GitBlameCommandTckTest.java | 17 +++++++++++
.../command/branch/GitBranchCommandTckTest.java | 17 +++++++++++
.../changelog/GitChangeLogCommandTckTest.java | 16 ++++++++++
.../command/checkin/GitCheckInCommandTckTest.java | 17 +++++++++++
.../command/status/GitStatusCommandTckTest.java | 17 +++++++++++
.../git/command/tag/GitTagCommandTckTest.java | 17 +++++++++++
.../command/update/GitUpdateCommandTckTest.java | 17 +++++++++++
.../java/org/apache/maven/scm/ScmTestCase.java | 4 +--
11 files changed, 164 insertions(+), 2 deletions(-)
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandNoBranchTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandNoBranchTest.java
index 5781edc..e73e163 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandNoBranchTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandNoBranchTest.java
@@ -25,6 +25,7 @@ import org.apache.maven.scm.ScmVersion;
import org.apache.maven.scm.command.add.AddScmResult;
import org.apache.maven.scm.command.checkin.CheckInScmResult;
import org.apache.maven.scm.command.checkout.CheckOutScmResult;
+import org.apache.maven.scm.provider.git.GitScmTestUtils;
import org.apache.maven.scm.repository.ScmRepository;
import org.codehaus.plexus.util.FileUtils;
@@ -61,7 +62,12 @@ public class GitCheckInCommandNoBranchTest
FileUtils.copyDirectoryStructure( repo_orig, repo );
ScmRepository scmRepository = getScmManager().makeScmRepository( "scm:git:file:///" + repo.getAbsolutePath() );
+
CheckOutScmResult checkOutScmResult = checkoutRepo( scmRepository );
+
+ // Add a default user to the config
+ GitScmTestUtils.setDefaultUser( workingDirectory );
+
assertEquals( 0, checkOutScmResult.getCheckedOutFiles().size() );
File f = new File( workingDirectory.getAbsolutePath() + File.separator + "pom.xml" );
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandTest.java
index 50093db..3221fc6 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gitexe/src/test/java/org/apache/maven/scm/provider/git/gitexe/command/checkin/GitCheckInCommandTest.java
@@ -98,6 +98,9 @@ public class GitCheckInCommandTest
ScmRepository scmRepository = getScmManager().makeScmRepository( "scm:git:file://" + repo.getAbsolutePath() );
checkoutRepoInto(checkedOutRepo, scmRepository);
+ // Add a default user to the config
+ GitScmTestUtils.setDefaultUser( checkedOutRepo );
+
// Creating foo/bar/wine.xml
File fooDir = new File( checkedOutRepo.getAbsolutePath() + File.separator + "foo" );
fooDir.mkdir();
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/GitScmTestUtils.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/GitScmTestUtils.java
index 4ba272b..c62458f 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/GitScmTestUtils.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/GitScmTestUtils.java
@@ -29,6 +29,7 @@ import org.codehaus.plexus.util.cli.CommandLineUtils;
import org.codehaus.plexus.util.cli.Commandline;
import java.io.File;
+import java.io.FileWriter;
import java.io.IOException;
/**
@@ -136,4 +137,38 @@ public final class GitScmTestUtils
}
}
+ public static void setDefaultUser( File repositoryRootFile )
+ {
+ File gitConfigFile = new File( new File( repositoryRootFile, ".git" ), "config" );
+
+ FileWriter fw = null;
+ try
+ {
+ fw = new FileWriter( gitConfigFile , true );
+ fw.append( "[user]\n" );
+ fw.append( "\tname = John Doe\n" );
+ fw.append( "\temail = john.doe@nowhere.com\n" );
+ fw.flush();
+ fw.close();
+ }
+ catch ( IOException e )
+ {
+ System.err.println( "cannot setup a default user for tests purpose inside " + gitConfigFile );
+ e.printStackTrace();
+ }
+ finally
+ {
+ if ( fw != null )
+ {
+ try
+ {
+ fw.close();
+ }
+ catch ( IOException ignore )
+ {
+ // ignored
+ }
+ }
+ }
+ }
}
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/blame/GitBlameCommandTckTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/blame/GitBlameCommandTckTest.java
index 8b4dd74..b654e46 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/blame/GitBlameCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/blame/GitBlameCommandTckTest.java
@@ -19,9 +19,13 @@ package org.apache.maven.scm.provider.git.command.blame;
* under the License.
*/
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
import org.apache.maven.scm.provider.git.GitScmTestUtils;
+import org.apache.maven.scm.repository.ScmRepository;
import org.apache.maven.scm.tck.command.blame.BlameCommandTckTest;
+import java.io.File;
+
/**
* @author Evgeny Mandrikov
* @since 1.4
@@ -34,4 +38,17 @@ public abstract class GitBlameCommandTckTest
{
GitScmTestUtils.initRepo( "src/test/resources/repository/", getRepositoryRoot(), getWorkingDirectory() );
}
+
+ @Override
+ protected CheckOutScmResult checkOut( File workingDirectory, ScmRepository repository ) throws Exception
+ {
+ try
+ {
+ return super.checkOut( workingDirectory, repository );
+ }
+ finally
+ {
+ GitScmTestUtils.setDefaultUser( workingDirectory );
+ }
+ }
}
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/branch/GitBranchCommandTckTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/branch/GitBranchCommandTckTest.java
index 598483f..105a3db 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/branch/GitBranchCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/branch/GitBranchCommandTckTest.java
@@ -19,9 +19,13 @@ package org.apache.maven.scm.provider.git.command.branch;
* under the License.
*/
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
import org.apache.maven.scm.provider.git.GitScmTestUtils;
+import org.apache.maven.scm.repository.ScmRepository;
import org.apache.maven.scm.tck.command.branch.BranchCommandTckTest;
+import java.io.File;
+
/**
* @author <a href="mailto:struberg@yahoo.de">Mark Struberg</a>
*
@@ -35,4 +39,17 @@ public abstract class GitBranchCommandTckTest
{
GitScmTestUtils.initRepo( "src/test/resources/repository/", getRepositoryRoot(), getWorkingDirectory() );
}
+
+ @Override
+ protected CheckOutScmResult checkOut( File workingDirectory, ScmRepository repository ) throws Exception
+ {
+ try
+ {
+ return super.checkOut( workingDirectory, repository );
+ }
+ finally
+ {
+ GitScmTestUtils.setDefaultUser( workingDirectory );
+ }
+ }
}
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/changelog/GitChangeLogCommandTckTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/changelog/GitChangeLogCommandTckTest.java
index 18c3224..0faa496 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/changelog/GitChangeLogCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/changelog/GitChangeLogCommandTckTest.java
@@ -19,9 +19,13 @@ package org.apache.maven.scm.provider.git.command.changelog;
* under the License.
*/
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
import org.apache.maven.scm.provider.git.GitScmTestUtils;
+import org.apache.maven.scm.repository.ScmRepository;
import org.apache.maven.scm.tck.command.changelog.ChangeLogCommandTckTest;
+import java.io.File;
+
/**
* @author <a href="mailto:struberg@yahoo.de">Mark Struberg</a>
*/
@@ -36,4 +40,16 @@ public abstract class GitChangeLogCommandTckTest
GitScmTestUtils.initRepo( "src/test/resources/repository/", getRepositoryRoot(), getWorkingDirectory() );
}
+ @Override
+ protected CheckOutScmResult checkOut( File workingDirectory, ScmRepository repository ) throws Exception
+ {
+ try
+ {
+ return super.checkOut( workingDirectory, repository );
+ }
+ finally
+ {
+ GitScmTestUtils.setDefaultUser( workingDirectory );
+ }
+ }
}
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/checkin/GitCheckInCommandTckTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/checkin/GitCheckInCommandTckTest.java
index 49e968a..bf6383b 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/checkin/GitCheckInCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/checkin/GitCheckInCommandTckTest.java
@@ -19,9 +19,13 @@ package org.apache.maven.scm.provider.git.command.checkin;
* under the License.
*/
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
import org.apache.maven.scm.provider.git.GitScmTestUtils;
+import org.apache.maven.scm.repository.ScmRepository;
import org.apache.maven.scm.tck.command.checkin.CheckInCommandTckTest;
+import java.io.File;
+
/**
* @author <a href="mailto:struberg@yahoo.de">Mark Struberg</a>
*
@@ -36,4 +40,17 @@ public abstract class GitCheckInCommandTckTest
{
GitScmTestUtils.initRepo( "src/test/resources/repository/", getRepositoryRoot(), getWorkingDirectory() );
}
+
+ @Override
+ protected CheckOutScmResult checkOut( File workingDirectory, ScmRepository repository ) throws Exception
+ {
+ try
+ {
+ return super.checkOut( workingDirectory, repository );
+ }
+ finally
+ {
+ GitScmTestUtils.setDefaultUser( workingDirectory );
+ }
+ }
}
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/status/GitStatusCommandTckTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/status/GitStatusCommandTckTest.java
index 04ecc24..ce8d936 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/status/GitStatusCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/status/GitStatusCommandTckTest.java
@@ -19,9 +19,13 @@ package org.apache.maven.scm.provider.git.command.status;
* under the License.
*/
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
import org.apache.maven.scm.provider.git.GitScmTestUtils;
+import org.apache.maven.scm.repository.ScmRepository;
import org.apache.maven.scm.tck.command.status.StatusCommandTckTest;
+import java.io.File;
+
/**
* @author <a href="mailto:struberg@yahoo.de">Mark Struberg</a>
*
@@ -35,4 +39,17 @@ public abstract class GitStatusCommandTckTest
{
GitScmTestUtils.initRepo( "src/test/resources/repository/", getRepositoryRoot(), getWorkingDirectory() );
}
+
+ @Override
+ protected CheckOutScmResult checkOut( File workingDirectory, ScmRepository repository ) throws Exception
+ {
+ try
+ {
+ return super.checkOut( workingDirectory, repository );
+ }
+ finally
+ {
+ GitScmTestUtils.setDefaultUser( workingDirectory );
+ }
+ }
}
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/tag/GitTagCommandTckTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/tag/GitTagCommandTckTest.java
index 7374e36..d74105a 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/tag/GitTagCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/tag/GitTagCommandTckTest.java
@@ -19,9 +19,13 @@ package org.apache.maven.scm.provider.git.command.tag;
* under the License.
*/
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
import org.apache.maven.scm.provider.git.GitScmTestUtils;
+import org.apache.maven.scm.repository.ScmRepository;
import org.apache.maven.scm.tck.command.tag.TagCommandTckTest;
+import java.io.File;
+
/**
* @author <a href="mailto:struberg@yahoo.de">Mark Struberg</a>
*
@@ -35,4 +39,17 @@ public abstract class GitTagCommandTckTest
{
GitScmTestUtils.initRepo( "src/test/resources/repository/", getRepositoryRoot(), getWorkingDirectory() );
}
+
+ @Override
+ protected CheckOutScmResult checkOut( File workingDirectory, ScmRepository repository ) throws Exception
+ {
+ try
+ {
+ return super.checkOut( workingDirectory, repository );
+ }
+ finally
+ {
+ GitScmTestUtils.setDefaultUser( workingDirectory );
+ }
+ }
}
diff --git a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/update/GitUpdateCommandTckTest.java b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/update/GitUpdateCommandTckTest.java
index eae6210..ff277b5 100644
--- a/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/update/GitUpdateCommandTckTest.java
+++ b/maven-scm-providers/maven-scm-providers-git/maven-scm-provider-gittest/src/main/java/org/apache/maven/scm/provider/git/command/update/GitUpdateCommandTckTest.java
@@ -19,9 +19,13 @@ package org.apache.maven.scm.provider.git.command.update;
* under the License.
*/
+import org.apache.maven.scm.command.checkout.CheckOutScmResult;
import org.apache.maven.scm.provider.git.GitScmTestUtils;
+import org.apache.maven.scm.repository.ScmRepository;
import org.apache.maven.scm.tck.command.update.UpdateCommandTckTest;
+import java.io.File;
+
/**
* @author <a href="mailto:struberg@yahoo.de">Mark Struberg</a>
*
@@ -35,4 +39,17 @@ public abstract class GitUpdateCommandTckTest
{
GitScmTestUtils.initRepo( "src/test/resources/repository/", getRepositoryRoot(), getWorkingDirectory() );
}
+
+ @Override
+ protected CheckOutScmResult checkOut( File workingDirectory, ScmRepository repository ) throws Exception
+ {
+ try
+ {
+ return super.checkOut( workingDirectory, repository );
+ }
+ finally
+ {
+ GitScmTestUtils.setDefaultUser( workingDirectory );
+ }
+ }
}
diff --git a/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java b/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java
index dbec38e..d618ceb 100644
--- a/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java
+++ b/maven-scm-test/src/main/java/org/apache/maven/scm/ScmTestCase.java
@@ -146,7 +146,7 @@ public abstract class ScmTestCase
}
/**
- * If you wish to use this component, makesure to configure your
+ * If you wish to use this component, make sure to configure your
* TCK implementation to include plexus component configuration
* as doc at https://issues.apache.org/jira/browse/MNG-4384
* @return SecDispatcher
@@ -205,7 +205,7 @@ public abstract class ScmTestCase
printOutputError( result );
- fail( "The check out result success flag was false." );
+ fail( "The command result success flag was false." );
}
protected void printOutputError( ScmResult result )
--
To stop receiving notification emails like this one, please contact
michaelo@apache.org.