Skip to content

Commit 2e937a6

Browse files
committed
Add test for version syncing unicode
1 parent bc879e1 commit 2e937a6

File tree

2 files changed

+34
-21
lines changed

2 files changed

+34
-21
lines changed

readthedocs/restapi/views/model_views.py

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -132,27 +132,23 @@ def sync_versions(self, request, **kwargs):
132132
log.exception("Sync Versions Error: %s" % e.message)
133133
return Response({'error': e.message}, status=status.HTTP_400_BAD_REQUEST)
134134

135-
try:
136-
old_stable = project.get_stable_version()
137-
promoted_version = project.update_stable_version()
138-
if promoted_version:
139-
new_stable = project.get_stable_version()
140-
log.info(
141-
"Triggering new stable build: {project}:{version}".format(
142-
project=project.slug,
143-
version=new_stable.identifier))
144-
trigger_build(project=project, version=new_stable)
145-
146-
# Marking the tag that is considered the new stable version as
147-
# active and building it if it was just added.
148-
if (
149-
activate_new_stable and
150-
promoted_version.slug in added_versions):
151-
promoted_version.active = True
152-
promoted_version.save()
153-
trigger_build(project=project, version=promoted_version)
154-
except:
155-
log.exception("Stable Version Failure", exc_info=True)
135+
promoted_version = project.update_stable_version()
136+
if promoted_version:
137+
new_stable = project.get_stable_version()
138+
log.info(
139+
"Triggering new stable build: {project}:{version}".format(
140+
project=project.slug,
141+
version=new_stable.identifier))
142+
trigger_build(project=project, version=new_stable)
143+
144+
# Marking the tag that is considered the new stable version as
145+
# active and building it if it was just added.
146+
if (
147+
activate_new_stable and
148+
promoted_version.slug in added_versions):
149+
promoted_version.active = True
150+
promoted_version.save()
151+
trigger_build(project=project, version=promoted_version)
156152

157153
return Response({
158154
'added_versions': added_versions,

readthedocs/rtd_tests/tests/test_sync_versions.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
# -*- coding: utf-8 -*-
2+
13
import json
24

35
from django.test import TestCase
@@ -344,3 +346,18 @@ def test_update_inactive_stable_version(self):
344346
version_stable = Version.objects.get(slug=STABLE)
345347
self.assertFalse(version_stable.active)
346348
self.assertEqual(version_stable.identifier, '1.0.0')
349+
350+
def test_unicode(self):
351+
version_post_data = {
352+
'branches': [],
353+
'tags': [
354+
{'identifier': 'foo-£', 'verbose_name': 'foo-£'},
355+
]
356+
}
357+
358+
resp = self.client.post(
359+
'/api/v2/project/%s/sync_versions/' % self.pip.pk,
360+
data=json.dumps(version_post_data),
361+
content_type='application/json',
362+
)
363+
self.assertEqual(resp.status_code, 200)

0 commit comments

Comments
 (0)