@@ -204,6 +204,50 @@ def test_set_remote(git_repo, repo_name, new_repo_url):
204204 ), 'Running remove_set should overwrite previous remote'
205205
206206
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+
207251def test_extract_status ():
208252 FIXTURE_A = textwrap .dedent (
209253 """
0 commit comments