use of com.google.copybara.testing.git.GitTestUtil in project copybara by google.
the class GerritDestinationTest method setup.
@Before
public void setup() throws Exception {
workdir = Files.createTempDirectory("workdir");
console = new TestingConsole();
options = new OptionsBuilder().setConsole(console).setOutputRootToTmpDir();
gitUtil = new GitTestUtil(options);
Path credentialsFile = Files.createTempFile("credentials", "test");
Files.write(credentialsFile, BASE_URL.getBytes(UTF_8));
GitRepository repo = newBareRepo(Files.createTempDirectory("test_repo"), getGitEnv(), /*verbose=*/
true, DEFAULT_TIMEOUT, /*noVerify=*/
false).init().withCredentialHelper("store --file=" + credentialsFile);
gitUtil.mockRemoteGitRepos(new Validator(), repo);
options.gitDestination = new GitDestinationOptions(options.general, options.git);
options.gitDestination.committerEmail = "commiter@email";
options.gitDestination.committerName = "Bara Kopi";
excludedDestinationPaths = ImmutableList.of();
repoGitDir = gitUtil.mockRemoteRepo("localhost:33333/foo/bar").getGitDir();
url = "https://localhost:33333/foo/bar";
repo().init();
skylark = new SkylarkTestExecutor(options);
when(gitUtil.httpTransport().buildRequest(eq("GET"), startsWith("https://localhost:33333/changes/"))).then((Answer<LowLevelHttpRequest>) invocation -> {
String change = changeIdFromRequest((String) invocation.getArguments()[1]);
return mockResponse("[" + "{" + " change_id : \"" + change + "\"," + " status : \"NEW\"" + "}]");
});
gitUtil.mockApi(eq("GET"), eq("https://localhost:33333/changes/?q=" + "hashtag:%22copybara_id_origin_ref_commiter@email%22%20AND" + "%20project:foo/bar%20AND%20status:NEW"), mockResponse("[]"));
}
use of com.google.copybara.testing.git.GitTestUtil in project copybara by google.
the class GerritOriginTest method setup.
@Before
public void setup() throws Exception {
options = new OptionsBuilder();
console = new TestingConsole();
options = new OptionsBuilder().setConsole(console).setOutputRootToTmpDir();
skylark = new SkylarkTestExecutor(options);
// Pass custom HOME directory so that we run an hermetic test and we
// can add custom configuration to $HOME/.gitconfig.
Path userHomeForTest = Files.createTempDirectory("home");
options.setEnvironment(GitTestUtil.getGitEnv().getEnvironment());
options.setHomeDir(userHomeForTest.toString());
gitUtil = new GitTestUtil(options);
gitUtil.mockRemoteGitRepos();
createTestRepo();
String url = "https://" + REPO_URL;
origin = skylark.eval("result", String.format("result = " + "git.gerrit_origin(" + " url = '%s'," + ")", url));
Files.write(remote.resolve("base.txt"), new byte[0]);
repo.add().files("base.txt").run();
git("commit", "-m", "baseline", "--date", commitTime);
baseline = repo.parseRef("HEAD");
Files.write(remote.resolve("test.txt"), "some content".getBytes(UTF_8));
repo.add().files("test.txt").run();
git("commit", "-m", "first change", "--date", commitTime);
firstRevision = new GitRevision(repo, repo.parseRef("HEAD"), GerritChange.gerritPatchSetAsReviewReference(1), "12345", ImmutableListMultimap.<String, String>builder().put(GerritChange.GERRIT_CHANGE_NUMBER_LABEL, "12345").put(GerritChange.GERRIT_CHANGE_ID_LABEL, CHANGE_ID).put(GerritChange.GERRIT_COMPLETE_CHANGE_ID_LABEL, "my_branch-12345").put(GerritChange.GERRIT_CHANGE_BRANCH, "my_branch").put(GERRIT_OWNER_EMAIL_LABEL, "the_owner@example.com").put("GERRIT_REVIEWER_EMAIL", "foo@example.com").put("GERRIT_REVIEWER_EMAIL", "bar@example.com").put("GERRIT_CC_EMAIL", "baz@example.com").put(GerritChange.GERRIT_CHANGE_DESCRIPTION_LABEL, CHANGE_DESCRIPTION).put(DEFAULT_INTEGRATE_LABEL, "gerrit " + url + " 12345 Patch Set 1 " + CHANGE_ID).put(GitRepository.GIT_DESCRIBE_REQUESTED_VERSION, repo.parseRef("HEAD").substring(0, 7)).put(GitRepository.GIT_DESCRIBE_FIRST_PARENT, repo.parseRef("HEAD").substring(0, 7)).put(GitRepository.GIT_DESCRIBE_ABBREV, "").build(), url);
git("update-ref", "refs/changes/45/12345/1", firstRevision.getSha1());
git("commit", "-m", "second change", "--date", commitTime, "--amend");
Files.write(remote.resolve("foo.md"), "some content".getBytes(UTF_8));
repo.add().files("foo.md").run();
secondRevision = new GitRevision(repo, repo.parseRef("HEAD"), GerritChange.gerritPatchSetAsReviewReference(2), "12345", ImmutableListMultimap.<String, String>builder().put(GerritChange.GERRIT_CHANGE_NUMBER_LABEL, "12345").put(GerritChange.GERRIT_CHANGE_ID_LABEL, CHANGE_ID).put(GerritChange.GERRIT_COMPLETE_CHANGE_ID_LABEL, "my_branch-12345").put(GerritChange.GERRIT_CHANGE_BRANCH, "my_branch").put(GERRIT_OWNER_EMAIL_LABEL, "the_owner@example.com").put("GERRIT_REVIEWER_EMAIL", "foo@example.com").put("GERRIT_REVIEWER_EMAIL", "bar@example.com").put("GERRIT_CC_EMAIL", "baz@example.com").put(GerritChange.GERRIT_CHANGE_DESCRIPTION_LABEL, CHANGE_DESCRIPTION).put(GitRepository.GIT_DESCRIBE_REQUESTED_VERSION, repo.parseRef("HEAD").substring(0, 7)).put(GitRepository.GIT_DESCRIBE_FIRST_PARENT, repo.parseRef("HEAD").substring(0, 7)).put(GitRepository.GIT_DESCRIBE_ABBREV, "").put(DEFAULT_INTEGRATE_LABEL, "gerrit " + url + " 12345 Patch Set 2 " + CHANGE_ID).build(), url);
git("update-ref", "refs/changes/45/12345/2", secondRevision.getSha1());
git("commit", "-m", "third change", "--date", commitTime, "--amend");
thirdRevision = new GitRevision(repo, repo.parseRef("HEAD"), GerritChange.gerritPatchSetAsReviewReference(3), "12345", ImmutableListMultimap.<String, String>builder().put(GerritChange.GERRIT_CHANGE_NUMBER_LABEL, "12345").put(GerritChange.GERRIT_COMPLETE_CHANGE_ID_LABEL, "my_branch-12345").put(GerritChange.GERRIT_CHANGE_BRANCH, "my_branch").put(GERRIT_OWNER_EMAIL_LABEL, "the_owner@example.com").put("GERRIT_REVIEWER_EMAIL", "foo@example.com").put("GERRIT_REVIEWER_EMAIL", "bar@example.com").put("GERRIT_CC_EMAIL", "baz@example.com").put(GerritChange.GERRIT_CHANGE_ID_LABEL, CHANGE_ID).put(GerritChange.GERRIT_CHANGE_DESCRIPTION_LABEL, CHANGE_DESCRIPTION).put(GitRepository.GIT_DESCRIBE_REQUESTED_VERSION, repo.parseRef("HEAD").substring(0, 7)).put(GitRepository.GIT_DESCRIBE_FIRST_PARENT, repo.parseRef("HEAD").substring(0, 7)).put(GitRepository.GIT_DESCRIBE_ABBREV, "").put(DEFAULT_INTEGRATE_LABEL, "gerrit " + url + " 12345 Patch Set 3 " + CHANGE_ID).build(), url);
git("update-ref", "refs/changes/45/12345/3", thirdRevision.getSha1());
GitTestUtil.createFakeGerritNodeDbMeta(repo, 12345, CHANGE_ID);
}
use of com.google.copybara.testing.git.GitTestUtil in project copybara by google.
the class GitDestinationIntegrateTest method setup.
@Before
public void setup() throws Exception {
repoGitDir = Files.createTempDirectory("GitDestinationTest-repoGitDir");
workdir = Files.createTempDirectory("workdir");
git("init", "--bare", repoGitDir.toString());
console = new TestingConsole();
options = new OptionsBuilder().setConsole(console).setOutputRootToTmpDir();
gitUtil = new GitTestUtil(options);
gitUtil.mockRemoteGitRepos();
options.gitDestination = new GitDestinationOptions(options.general, options.git);
options.gitDestination.committerEmail = "commiter@email";
options.gitDestination.committerName = "Bara Kopi";
destinationFiles = Glob.createGlob(ImmutableList.of("**"), ImmutableList.of("ignore*"));
options.setForce(true);
url = "file://" + repoGitDir;
skylark = new SkylarkTestExecutor(options);
primaryBranch = repo().getPrimaryBranch();
}
use of com.google.copybara.testing.git.GitTestUtil in project copybara by google.
the class GitHubPrDestinationTest method setup.
@Before
public void setup() throws Exception {
repoGitDir = Files.createTempDirectory("GitHubPrDestinationTest-repoGitDir");
workdir = Files.createTempDirectory("workdir");
git("init", "--bare", repoGitDir.toString());
console = new TestingConsole();
options = new OptionsBuilder().setConsole(console).setForce(true).setOutputRootToTmpDir();
gitUtil = new GitTestUtil(options);
gitUtil.mockRemoteGitRepos(new CompleteRefValidator());
Path credentialsFile = Files.createTempFile("credentials", "test");
Files.write(credentialsFile, "https://user:SECRET@github.com".getBytes(UTF_8));
options.git.credentialHelperStorePath = credentialsFile.toString();
options.gitDestination = new GitDestinationOptions(options.general, options.git);
options.gitDestination.committerEmail = "commiter@email";
options.gitDestination.committerName = "Bara Kopi";
skylark = new SkylarkTestExecutor(options);
primaryBranchMigration = "False";
}
use of com.google.copybara.testing.git.GitTestUtil in project copybara by google.
the class GitHubPrDestinationTest method getWriterForTestEmptyDiff.
private Writer<GitRevision> getWriterForTestEmptyDiff() throws Exception {
gitUtil = new GitTestUtil(options);
gitUtil.mockRemoteGitRepos();
options.gitDestination = new GitDestinationOptions(options.general, options.git);
options.gitDestination.committerEmail = "commiter@email";
options.gitDestination.committerName = "Bara Kopi";
skylark = new SkylarkTestExecutor(options);
options.githubDestination.destinationPrBranch = "test_feature";
GitHubPrDestination d = skylark.eval("r", "r = git.github_pr_destination(" + " url = 'https://github.com/foo', \n" + " title = 'Title ${aaa}',\n" + " body = 'Body ${aaa}',\n" + " allow_empty_diff = False,\n" + " destination_ref = 'main',\n" + " pr_branch = 'test_${CONTEXT_REFERENCE}',\n" + " primary_branch_migration = " + primaryBranchMigration + ",\n" + ")");
WriterContext writerContext = new WriterContext("piper_to_github", "TEST", false, new DummyRevision("feature", "feature"), Glob.ALL_FILES.roots());
return d.newWriter(writerContext);
}
Aggregations