@@ -204,6 +204,50 @@ def test_set_remote(git_repo, repo_name, new_repo_url):
204
204
), 'Running remove_set should overwrite previous remote'
205
205
206
206
207
+ def test_get_git_version (git_repo ):
208
+ expected_version = git_repo .run (['--version' ]).replace ('git version ' , '' )
209
+ assert git_repo .get_git_version ()
210
+ assert expected_version == git_repo .get_git_version ()
211
+
212
+
213
+ def test_get_current_remote_name (git_repo ):
214
+ assert git_repo .get_current_remote_name () == 'origin'
215
+
216
+ new_branch = 'another-branch-with-no-upstream'
217
+ git_repo .run (['checkout' , '-B' , new_branch ])
218
+ assert (
219
+ git_repo .get_current_remote_name () is None
220
+ ), 'branch w/o upstream should return None'
221
+
222
+ new_remote_name = 'new_remote_name'
223
+ git_repo .set_remote (
224
+ name = new_remote_name , url = 'file://' + git_repo .path , overwrite = True
225
+ )
226
+ git_repo .run (['fetch' , new_remote_name ])
227
+ git_repo .run (
228
+ ['branch' , '--set-upstream-to' , '{}/{}' .format (new_remote_name , new_branch )]
229
+ )
230
+ assert (
231
+ git_repo .get_current_remote_name () == new_remote_name
232
+ ), 'Should reflect new upstream branch (different remote)'
233
+
234
+ upstream = '{}/{}' .format (new_remote_name , 'master' )
235
+
236
+ git_repo .run (['branch' , '--set-upstream-to' , upstream ])
237
+ assert (
238
+ git_repo .get_current_remote_name () == upstream
239
+ ), 'Should reflect upstream branch (differente remote+branch)'
240
+
241
+ git_repo .run (['checkout' , 'master' ])
242
+
243
+ # Different remote, different branch
244
+ remote = '{}/{}' .format (new_remote_name , new_branch )
245
+ git_repo .run (['branch' , '--set-upstream-to' , remote ])
246
+ assert (
247
+ git_repo .get_current_remote_name () == remote
248
+ ), 'Should reflect new upstream branch (different branch)'
249
+
250
+
207
251
def test_extract_status ():
208
252
FIXTURE_A = textwrap .dedent (
209
253
"""
0 commit comments