def get_emperor_library_version(): """Get Emperor version and the git SHA + current branch (if applicable)""" emperor_dir = get_emperor_project_dir() emperor_version = emperor_library_version # more information could be retrieved following this pattern sha_cmd = 'git --git-dir %s/.git rev-parse HEAD' % (emperor_dir) sha_o, sha_e, sha_r = qcli_system_call(sha_cmd) git_sha = sha_o.strip() branch_cmd = 'git --git-dir %s/.git rev-parse --abbrev-ref HEAD' %\ (emperor_dir) branch_o, branch_e, branch_r = qcli_system_call(branch_cmd) git_branch = branch_o.strip() # validate the output from both command calls if is_valid_git_refname(git_branch) and is_valid_git_sha1(git_sha): return '%s, %s@%s' % (emperor_version, git_branch, git_sha[0:7]) else: return '%s' % emperor_version
def test_is_valid_git_sha1(self): """ """ # valid sha1 strings self.assertTrue( is_valid_git_sha1('65a9ba2ef4b126fb5b054ea6b89b457463db4ec6')) self.assertTrue( is_valid_git_sha1('a29a9911e41253405494c43889925a6d79ca26db')) self.assertTrue( is_valid_git_sha1('e099cd5fdea89eba929d6051fbd26cc9e7a0c961')) self.assertTrue( is_valid_git_sha1('44235d322c3386bd5ce872d9d7ea2e10d27c86cb')) self.assertTrue( is_valid_git_sha1('7d2fc23E04540EE92c742948cca9ed5bc54d08d1')) self.assertTrue( is_valid_git_sha1('fb5dc0285a8b11f199c4f3a7547a2da38138373f')) self.assertTrue( is_valid_git_sha1('0b2abAEb195ba7ebc5cfdb53213a66fbaddefdb8')) # invalid length self.assertFalse(is_valid_git_sha1('cca9ed5bc54d08d1')) self.assertFalse(is_valid_git_sha1('')) # invalid characters self.assertFalse( is_valid_git_sha1('fb5dy0f85a8b11f199c4f3a75474a2das8138373')) self.assertFalse( is_valid_git_sha1('0x5dcc816fbc1c2e8eX087d7d2ed8d2950a7c16b'))
def test_is_valid_git_sha1(self): """ """ # valid sha1 strings self.assertTrue(is_valid_git_sha1( '65a9ba2ef4b126fb5b054ea6b89b457463db4ec6')) self.assertTrue(is_valid_git_sha1( 'a29a9911e41253405494c43889925a6d79ca26db')) self.assertTrue(is_valid_git_sha1( 'e099cd5fdea89eba929d6051fbd26cc9e7a0c961')) self.assertTrue(is_valid_git_sha1( '44235d322c3386bd5ce872d9d7ea2e10d27c86cb')) self.assertTrue(is_valid_git_sha1( '7d2fc23E04540EE92c742948cca9ed5bc54d08d1')) self.assertTrue(is_valid_git_sha1( 'fb5dc0285a8b11f199c4f3a7547a2da38138373f')) self.assertTrue(is_valid_git_sha1( '0b2abAEb195ba7ebc5cfdb53213a66fbaddefdb8')) # invalid length self.assertFalse(is_valid_git_sha1('cca9ed5bc54d08d1')) self.assertFalse(is_valid_git_sha1('')) # invalid characters self.assertFalse(is_valid_git_sha1( 'fb5dy0f85a8b11f199c4f3a75474a2das8138373')) self.assertFalse(is_valid_git_sha1( '0x5dcc816fbc1c2e8eX087d7d2ed8d2950a7c16b'))