Fix bitbucket repo parsing and add tests.
parent
efba1dde31
commit
5f8b6aba6a
|
@ -208,6 +208,7 @@ class Version(models.Model):
|
|||
else:
|
||||
return ''
|
||||
docroot = self.get_conf_py_path()
|
||||
repo = repo.rstrip('/')
|
||||
|
||||
return GITHUB_URL.format(
|
||||
user=user,
|
||||
|
@ -219,9 +220,9 @@ class Version(models.Model):
|
|||
|
||||
def get_bitbucket_url(self, filename):
|
||||
BB_REGEXS = [
|
||||
re.compile('bitbucket.com/(.+)/(.+)/'),
|
||||
re.compile('bitbucket.com/(.+)/(.+)'),
|
||||
re.compile('bitbucket.com:(.+)/(.+)\.git'),
|
||||
re.compile('bitbucket.org/(.+)/(.+).git'),
|
||||
re.compile('bitbucket.org/(.+)/(.+)/'),
|
||||
re.compile('bitbucket.org/(.+)/(.+)'),
|
||||
]
|
||||
BB_URL = 'https://bitbucket.org/{user}/{repo}/src/{version}{docroot}{path}.rst'
|
||||
|
||||
|
@ -237,6 +238,7 @@ class Version(models.Model):
|
|||
else:
|
||||
return ''
|
||||
docroot = self.get_conf_py_path()
|
||||
repo = repo.rstrip('/')
|
||||
|
||||
return BB_URL.format(
|
||||
user=user,
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
import json
|
||||
|
||||
from django.test import TestCase
|
||||
|
||||
from builds.models import Version
|
||||
from projects.models import Project
|
||||
|
||||
|
||||
class TestRepoParsing(TestCase):
|
||||
fixtures = ["eric", "test_data"]
|
||||
|
||||
def setUp(self):
|
||||
self.client.login(username='eric', password='test')
|
||||
self.pip = Project.objects.get(slug='pip')
|
||||
self.version = Version.objects.create(project=self.pip, identifier='latest',
|
||||
verbose_name='latest', slug='latest',
|
||||
active=True)
|
||||
|
||||
def test_github(self):
|
||||
self.pip.repo = 'https://github.com/user/repo'
|
||||
self.assertEqual(self.version.get_github_url('file'), 'https://github.com/user/repo/blob/master/docs/file.rst')
|
||||
|
||||
self.pip.repo = 'https://github.com/user/repo/'
|
||||
self.assertEqual(self.version.get_github_url('file'), 'https://github.com/user/repo/blob/master/docs/file.rst')
|
||||
|
||||
self.pip.repo = 'https://github.com/user/repo.git'
|
||||
self.assertEqual(self.version.get_github_url('file'), 'https://github.com/user/repo/blob/master/docs/file.rst')
|
||||
|
||||
def test_bitbucket(self):
|
||||
self.pip.repo = 'https://bitbucket.org/user/repo'
|
||||
self.assertEqual(self.version.get_bitbucket_url('file'), 'https://bitbucket.org/user/repo/src/master/docs/file.rst')
|
||||
|
||||
self.pip.repo = 'https://bitbucket.org/user/repo/'
|
||||
self.assertEqual(self.version.get_bitbucket_url('file'), 'https://bitbucket.org/user/repo/src/master/docs/file.rst')
|
||||
|
||||
self.pip.repo = 'https://bitbucket.org/user/repo.git'
|
||||
self.assertEqual(self.version.get_bitbucket_url('file'), 'https://bitbucket.org/user/repo/src/master/docs/file.rst')
|
||||
|
Loading…
Reference in New Issue