diff options
| author | Mike Frysinger <vapier@google.com> | 2020-03-23 16:49:11 -0400 |
|---|---|---|
| committer | Mike Frysinger <vapier@google.com> | 2020-03-24 03:08:25 +0000 |
| commit | 587f162033b3d39e394cfb0cd13e5703af913901 (patch) | |
| tree | a5c7730bf47441ec5396d2da3a6d59aeb1382d48 | |
| parent | 78964472adc5c92e0aad7bf513c50df5331d9d66 (diff) | |
| download | git-repo-587f162033b3d39e394cfb0cd13e5703af913901.tar.gz | |
tests: add more wrapper unittests
Change-Id: Ic6b4eb96b871793bc9463c9047674cf3cfbe4b5e
Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/259993
Tested-by: Mike Frysinger <vapier@google.com>
Reviewed-by: Jonathan Nieder <jrn@google.com>
| -rwxr-xr-x | repo | 3 | ||||
| -rw-r--r-- | tests/test_wrapper.py | 88 |
2 files changed, 90 insertions, 1 deletions
| @@ -602,7 +602,8 @@ def _CheckGitVersion(): | |||
| 602 | 602 | ||
| 603 | if ver_act < MIN_GIT_VERSION: | 603 | if ver_act < MIN_GIT_VERSION: |
| 604 | need = '.'.join(map(str, MIN_GIT_VERSION)) | 604 | need = '.'.join(map(str, MIN_GIT_VERSION)) |
| 605 | print('fatal: git %s or later required' % need, file=sys.stderr) | 605 | print('fatal: git %s or later required; found %s' % (need, ver_act.full), |
| 606 | file=sys.stderr) | ||
| 606 | raise CloneFailure() | 607 | raise CloneFailure() |
| 607 | 608 | ||
| 608 | 609 | ||
diff --git a/tests/test_wrapper.py b/tests/test_wrapper.py index a98c4130..c105a3ce 100644 --- a/tests/test_wrapper.py +++ b/tests/test_wrapper.py | |||
| @@ -153,5 +153,93 @@ class SetGitTrace2ParentSid(RepoWrapperTestCase): | |||
| 153 | self.assertRegex(value, self.VALID_FORMAT) | 153 | self.assertRegex(value, self.VALID_FORMAT) |
| 154 | 154 | ||
| 155 | 155 | ||
| 156 | class RunCommand(RepoWrapperTestCase): | ||
| 157 | """Check run_command behavior.""" | ||
| 158 | |||
| 159 | def test_capture(self): | ||
| 160 | """Check capture_output handling.""" | ||
| 161 | ret = self.wrapper.run_command(['echo', 'hi'], capture_output=True) | ||
| 162 | self.assertEqual(ret.stdout, 'hi\n') | ||
| 163 | |||
| 164 | def test_check(self): | ||
| 165 | """Check check handling.""" | ||
| 166 | self.wrapper.run_command(['true'], check=False) | ||
| 167 | self.wrapper.run_command(['true'], check=True) | ||
| 168 | self.wrapper.run_command(['false'], check=False) | ||
| 169 | with self.assertRaises(self.wrapper.RunError): | ||
| 170 | self.wrapper.run_command(['false'], check=True) | ||
| 171 | |||
| 172 | |||
| 173 | class RunGit(RepoWrapperTestCase): | ||
| 174 | """Check run_git behavior.""" | ||
| 175 | |||
| 176 | def test_capture(self): | ||
| 177 | """Check capture_output handling.""" | ||
| 178 | ret = self.wrapper.run_git('--version') | ||
| 179 | self.assertIn('git', ret.stdout) | ||
| 180 | |||
| 181 | def test_check(self): | ||
| 182 | """Check check handling.""" | ||
| 183 | with self.assertRaises(self.wrapper.CloneFailure): | ||
| 184 | self.wrapper.run_git('--version-asdfasdf') | ||
| 185 | self.wrapper.run_git('--version-asdfasdf', check=False) | ||
| 186 | |||
| 187 | |||
| 188 | class ParseGitVersion(RepoWrapperTestCase): | ||
| 189 | """Check ParseGitVersion behavior.""" | ||
| 190 | |||
| 191 | def test_autoload(self): | ||
| 192 | """Check we can load the version from the live git.""" | ||
| 193 | ret = self.wrapper.ParseGitVersion() | ||
| 194 | self.assertIsNotNone(ret) | ||
| 195 | |||
| 196 | def test_bad_ver(self): | ||
| 197 | """Check handling of bad git versions.""" | ||
| 198 | ret = self.wrapper.ParseGitVersion(ver_str='asdf') | ||
| 199 | self.assertIsNone(ret) | ||
| 200 | |||
| 201 | def test_normal_ver(self): | ||
| 202 | """Check handling of normal git versions.""" | ||
| 203 | ret = self.wrapper.ParseGitVersion(ver_str='git version 2.25.1') | ||
| 204 | self.assertEqual(2, ret.major) | ||
| 205 | self.assertEqual(25, ret.minor) | ||
| 206 | self.assertEqual(1, ret.micro) | ||
| 207 | self.assertEqual('2.25.1', ret.full) | ||
| 208 | |||
| 209 | def test_extended_ver(self): | ||
| 210 | """Check handling of extended distro git versions.""" | ||
| 211 | ret = self.wrapper.ParseGitVersion( | ||
| 212 | ver_str='git version 1.30.50.696.g5e7596f4ac-goog') | ||
| 213 | self.assertEqual(1, ret.major) | ||
| 214 | self.assertEqual(30, ret.minor) | ||
| 215 | self.assertEqual(50, ret.micro) | ||
| 216 | self.assertEqual('1.30.50.696.g5e7596f4ac-goog', ret.full) | ||
| 217 | |||
| 218 | |||
| 219 | class CheckGitVersion(RepoWrapperTestCase): | ||
| 220 | """Check _CheckGitVersion behavior.""" | ||
| 221 | |||
| 222 | def test_unknown(self): | ||
| 223 | """Unknown versions should abort.""" | ||
| 224 | with mock.patch.object(self.wrapper, 'ParseGitVersion', return_value=None): | ||
| 225 | with self.assertRaises(self.wrapper.CloneFailure): | ||
| 226 | self.wrapper._CheckGitVersion() | ||
| 227 | |||
| 228 | def test_old(self): | ||
| 229 | """Old versions should abort.""" | ||
| 230 | with mock.patch.object( | ||
| 231 | self.wrapper, 'ParseGitVersion', | ||
| 232 | return_value=self.wrapper.GitVersion(1, 0, 0, '1.0.0')): | ||
| 233 | with self.assertRaises(self.wrapper.CloneFailure): | ||
| 234 | self.wrapper._CheckGitVersion() | ||
| 235 | |||
| 236 | def test_new(self): | ||
| 237 | """Newer versions should run fine.""" | ||
| 238 | with mock.patch.object( | ||
| 239 | self.wrapper, 'ParseGitVersion', | ||
| 240 | return_value=self.wrapper.GitVersion(100, 0, 0, '100.0.0')): | ||
| 241 | self.wrapper._CheckGitVersion() | ||
| 242 | |||
| 243 | |||
| 156 | if __name__ == '__main__': | 244 | if __name__ == '__main__': |
| 157 | unittest.main() | 245 | unittest.main() |
