forked from mongodb/mongo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
SERVER-50595: Don't require evergreen.py for local lint runs
- Loading branch information
Showing
7 changed files
with
66 additions
and
43 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
"""Tools for detecting changes inside of Evergreen.""" | ||
from typing import List | ||
|
||
from git import Repo | ||
from evergreen import EvergreenApi | ||
|
||
from buildscripts.patch_builds.change_data import RevisionMap, generate_revision_map | ||
|
||
|
||
def generate_revision_map_from_manifest(repos: List[Repo], task_id: str, | ||
evg_api: EvergreenApi) -> RevisionMap: | ||
""" | ||
Generate a revision map for the given repositories using the revisions from the manifest. | ||
:param repos: Repositories to generate map for. | ||
:param task_id: Id of evergreen task running. | ||
:param evg_api: Evergreen API object. | ||
:return: Map of repositories to revisions | ||
""" | ||
manifest = evg_api.manifest_for_task(task_id) | ||
revisions_data = { | ||
module_name: module.revision | ||
for module_name, module in manifest.modules.items() | ||
} | ||
revisions_data["mongo"] = manifest.revision | ||
|
||
return generate_revision_map(repos, revisions_data) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
"""Unit tests for buildscripts.patch_builds.evg_change_data.py.""" | ||
from __future__ import absolute_import | ||
|
||
import os | ||
import unittest | ||
|
||
from mock import MagicMock | ||
|
||
import buildscripts.patch_builds.evg_change_data as under_test | ||
|
||
# pylint: disable=missing-docstring | ||
|
||
|
||
def create_mock_repo(working_dir=""): | ||
return MagicMock(working_dir=working_dir) | ||
|
||
|
||
class TestGenerateRevisionMapFromManifest(unittest.TestCase): | ||
def test_map_can_be_created_from_evergreen_api(self): | ||
mock_repo_list = [create_mock_repo(os.getcwd()), create_mock_repo("/path/to/enterprise")] | ||
mongo_revision = "revision1234" | ||
enterprise_revision = "revision5678" | ||
mock_manifest = MagicMock(revision=mongo_revision, | ||
modules={"enterprise": MagicMock(revision=enterprise_revision)}) | ||
mock_evg_api = MagicMock() | ||
mock_evg_api.manifest_for_task.return_value = mock_manifest | ||
|
||
revision_map = under_test.generate_revision_map_from_manifest(mock_repo_list, "task_id", | ||
mock_evg_api) | ||
|
||
self.assertEqual(revision_map[mock_repo_list[0].git_dir], mongo_revision) | ||
self.assertEqual(revision_map[mock_repo_list[1].git_dir], enterprise_revision) |