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 /tests | |
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>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_wrapper.py | 88 |
1 files changed, 88 insertions, 0 deletions
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() |