Merge #88 Resolve HEAD in ksurl to actual hash
This commit is contained in:
commit
81e90eb780
4 changed files with 88 additions and 2 deletions
50
tests/test_util.py
Executable file
50
tests/test_util.py
Executable file
|
|
@ -0,0 +1,50 @@
|
|||
#!/usr/bin/env python2
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import mock
|
||||
import os
|
||||
import sys
|
||||
import unittest
|
||||
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), ".."))
|
||||
|
||||
from pungi import util
|
||||
|
||||
|
||||
class TestGitRefResolver(unittest.TestCase):
|
||||
|
||||
@mock.patch('pungi.util.run')
|
||||
def test_successful_resolve(self, run):
|
||||
run.return_value = (0, 'CAFEBABE\tHEAD\n')
|
||||
|
||||
url = util.resolve_git_url('https://git.example.com/repo.git?somedir#HEAD')
|
||||
|
||||
self.assertEqual(url, 'https://git.example.com/repo.git?somedir#CAFEBABE')
|
||||
run.assert_called_once_with(['git', 'ls-remote', 'https://git.example.com/repo.git', 'HEAD'])
|
||||
|
||||
@mock.patch('pungi.util.run')
|
||||
def test_resolve_missing_spec(self, run):
|
||||
url = util.resolve_git_url('https://git.example.com/repo.git')
|
||||
|
||||
self.assertEqual(url, 'https://git.example.com/repo.git')
|
||||
self.assertEqual(run.mock_calls, [])
|
||||
|
||||
@mock.patch('pungi.util.run')
|
||||
def test_resolve_non_head_spec(self, run):
|
||||
url = util.resolve_git_url('https://git.example.com/repo.git#some-tag')
|
||||
|
||||
self.assertEqual(url, 'https://git.example.com/repo.git#some-tag')
|
||||
self.assertEqual(run.mock_calls, [])
|
||||
|
||||
@mock.patch('pungi.util.run')
|
||||
def test_resolve_ambiguous(self, run):
|
||||
run.return_value = (0, 'CAFEBABE\tF11\nDEADBEEF\tF10\n')
|
||||
|
||||
with self.assertRaises(RuntimeError):
|
||||
util.resolve_git_url('https://git.example.com/repo.git?somedir#HEAD')
|
||||
|
||||
run.assert_called_once_with(['git', 'ls-remote', 'https://git.example.com/repo.git', 'HEAD'])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Loading…
Add table
Add a link
Reference in a new issue