Merge pull request #2060 from rtfd/cleanup-errors

Random fixes that come from errors in New Relic
break-out-core-urls-views
Anthony 2016-03-31 10:50:40 -07:00
commit d598d41e8f
7 changed files with 20 additions and 8 deletions

View File

@ -218,7 +218,7 @@ class Symlink(object):
language_dir = os.path.join(self.project_root, self.project.language)
if os.path.islink(language_dir):
os.unlink(language_dir)
if not os.path.exists(language_dir):
if not os.path.lexists(language_dir):
os.makedirs(language_dir)
for (language, slug) in translations.items():

View File

@ -288,7 +288,7 @@ BITBUCKET_REGEXS = [
re.compile('bitbucket.org/(.+)/(.+)/'),
re.compile('bitbucket.org/(.+)/(.+)'),
]
GITHUB_URL = ('https://github.com/{user}/{repo}/'
GITHUB_URL = (u'https://github.com/{user}/{repo}/'
'{action}/{version}{docroot}{path}{source_suffix}')
BITBUCKET_URL = ('https://bitbucket.org/{user}/{repo}/'
BITBUCKET_URL = (u'https://bitbucket.org/{user}/{repo}/'
'src/{version}{docroot}{path}{source_suffix}')

View File

@ -133,7 +133,7 @@ class UpdateDocsTask(Task):
self.config = load_yaml_config(version=self.version)
if self.setup_env.failed:
if self.setup_env.failed or self.config is None:
self.send_notifications()
return None
if self.setup_env.successful and not self.project.has_valid_clone:

View File

@ -89,7 +89,7 @@ def version_windows(versions, major=1, minor=1, point=1):
for version_string in versions:
try:
version_identifiers.append(Version(version_string))
except InvalidVersion:
except (InvalidVersion, UnicodeEncodeError):
pass
major_version_window = major

View File

@ -18,10 +18,13 @@ def project_and_path_from_request(request, path):
match = re.match(
r'^/docs/(?P<project_slug>[^/]+)(?P<path>/.*)$',
path)
if match:
project_slug = match.groupdict()['project_slug']
path = match.groupdict()['path']
else:
return None, path
else:
return None, path
try:
project = Project.objects.get(slug=project_slug)

View File

@ -54,6 +54,10 @@ def search(request):
results = search_file(request=request, project_slug=project_slug,
version_slug=version_slug, query=query)
if results is None:
return Response({'error': 'Project not found'},
status=status.HTTP_404_NOT_FOUND)
# Supplement result paths with domain information on project
hits = results.get('hits', {}).get('hits', [])
for (n, hit) in enumerate(hits):

View File

@ -1,3 +1,5 @@
# -*- coding: utf-8 -*-
import unittest
from readthedocs.projects.version_handling import version_windows
@ -88,7 +90,10 @@ class TestVersionWindows(unittest.TestCase):
major=1, minor=2, point=3)
self.assertEqual(final_versions, ['2.2.0', '2.3.1', '2.3.2', '2.3.3'])
def test_unicode(self):
version_windows(['release-ç', '1.2.¢'], major=2, minor=2, point=1)
version_windows([u'release-ç', u'1.2.¢'], major=2, minor=2, point=1)
self.assertTrue(True)
if __name__ == '__main__':
unittest.main()