def test_get_current_version_label(self): client = GitClient(path=self.local_path) # with detached local status client.checkout(url=self.remote_path, version='test_tag') self.assertEqual(client.get_current_version_label(), '<detached>') # when difference between local and tracking branch client.update(version='master') self.assertEqual(client.get_current_version_label(), 'master') # with other tracking branch cmd = 'git config --replace-all branch.master.merge test_branch' subprocess.check_call(cmd, shell=True, cwd=self.local_path) self.assertEqual(client.get_current_version_label(), 'master < test_branch') # with other remote for cmd in [ 'git remote add remote2 %s' % self.remote_path, 'git config --replace-all branch.master.remote remote2', 'git fetch remote2']: subprocess.check_call(cmd, shell=True, cwd=self.local_path) self.assertEqual(client.get_current_version_label(), 'master < remote2/test_branch') # return remote back to original config for cmd in [ 'git config --replace-all branch.master.remote origin', 'git config --replace-all branch.master.merge refs/heads/master']: subprocess.check_call(cmd, shell=True, cwd=self.local_path)