diff options
| author | Gavin Mak <gavinmak@google.com> | 2023-08-22 03:10:01 +0000 |
|---|---|---|
| committer | LUCI <gerrit-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2023-08-22 17:13:43 +0000 |
| commit | 321b7934b5e8e316b7fa4dc306e055d3d6d351ff (patch) | |
| tree | d05109fa2394c764ab13d9bbe7937eead3342550 /tests | |
| parent | 5a3a5f7cec40c70d8c5ceb473f828e1149724962 (diff) | |
| download | git-repo-321b7934b5e8e316b7fa4dc306e055d3d6d351ff.tar.gz | |
sync: Ignore repo project when checking partial syncs
The repo project is fetched at most once a day and should be ignored
when checking if the tree is partially synced.
Bug: b/286126621, b/271507654
Change-Id: I684ed1669c3b3b9605162f8cc9d57185bb3dfe8e
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/383494
Commit-Queue: Gavin Mak <gavinmak@google.com>
Tested-by: Gavin Mak <gavinmak@google.com>
Reviewed-by: Josip Sokcevic <sokcevic@google.com>
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_subcmds_sync.py | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/tests/test_subcmds_sync.py b/tests/test_subcmds_sync.py index 7cc93e39..b43fe18e 100644 --- a/tests/test_subcmds_sync.py +++ b/tests/test_subcmds_sync.py | |||
| @@ -119,6 +119,7 @@ class LocalSyncState(unittest.TestCase): | |||
| 119 | self.repodir = tempfile.mkdtemp(".repo") | 119 | self.repodir = tempfile.mkdtemp(".repo") |
| 120 | self.manifest = mock.MagicMock( | 120 | self.manifest = mock.MagicMock( |
| 121 | repodir=self.repodir, | 121 | repodir=self.repodir, |
| 122 | repoProject=mock.MagicMock(relpath=".repo/repo"), | ||
| 122 | ) | 123 | ) |
| 123 | self.state = self._new_state() | 124 | self.state = self._new_state() |
| 124 | 125 | ||
| @@ -126,8 +127,8 @@ class LocalSyncState(unittest.TestCase): | |||
| 126 | """Common teardown.""" | 127 | """Common teardown.""" |
| 127 | shutil.rmtree(self.repodir) | 128 | shutil.rmtree(self.repodir) |
| 128 | 129 | ||
| 129 | def _new_state(self): | 130 | def _new_state(self, time=_TIME): |
| 130 | with mock.patch("time.time", return_value=self._TIME): | 131 | with mock.patch("time.time", return_value=time): |
| 131 | return sync._LocalSyncState(self.manifest) | 132 | return sync._LocalSyncState(self.manifest) |
| 132 | 133 | ||
| 133 | def test_set(self): | 134 | def test_set(self): |
| @@ -202,6 +203,23 @@ class LocalSyncState(unittest.TestCase): | |||
| 202 | self.state.SetCheckoutTime(projB) | 203 | self.state.SetCheckoutTime(projB) |
| 203 | self.assertEqual(self.state.IsPartiallySynced(), True) | 204 | self.assertEqual(self.state.IsPartiallySynced(), True) |
| 204 | 205 | ||
| 206 | def test_ignore_repo_project(self): | ||
| 207 | """Sync data for repo project is ignored when checking partial sync.""" | ||
| 208 | p = mock.MagicMock(relpath="projA") | ||
| 209 | self.state.SetFetchTime(p) | ||
| 210 | self.state.SetCheckoutTime(p) | ||
| 211 | self.state.SetFetchTime(self.manifest.repoProject) | ||
| 212 | self.state.Save() | ||
| 213 | self.assertEqual(self.state.IsPartiallySynced(), False) | ||
| 214 | |||
| 215 | self.state = self._new_state(self._TIME + 1) | ||
| 216 | self.state.SetFetchTime(self.manifest.repoProject) | ||
| 217 | self.assertEqual( | ||
| 218 | self.state.GetFetchTime(self.manifest.repoProject), self._TIME + 1 | ||
| 219 | ) | ||
| 220 | self.assertEqual(self.state.GetFetchTime(p), self._TIME) | ||
| 221 | self.assertEqual(self.state.IsPartiallySynced(), False) | ||
| 222 | |||
| 205 | def test_nonexistent_project(self): | 223 | def test_nonexistent_project(self): |
| 206 | """Unsaved projects don't have data.""" | 224 | """Unsaved projects don't have data.""" |
| 207 | p = mock.MagicMock(relpath="projC") | 225 | p = mock.MagicMock(relpath="projC") |
