Milimetric has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/81275


Change subject: ugggggggh, ENCODING
......................................................................

ugggggggh, ENCODING

Change-Id: I5771c75aca1db196669e9361e5d7ddab0b44e290
---
M tests/test_controllers/test_cohorts.py
M wikimetrics/controllers/cohorts.py
2 files changed, 15 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.wikimedia.org:29418/analytics/wikimetrics 
refs/changes/75/81275/1

diff --git a/tests/test_controllers/test_cohorts.py 
b/tests/test_controllers/test_cohorts.py
index fb585a3..bb4d1fa 100644
--- a/tests/test_controllers/test_cohorts.py
+++ b/tests/test_controllers/test_cohorts.py
@@ -290,6 +290,11 @@
         link = link_to_user_page('Dan', 'en')
         assert_equal(link, 'https://en.wikipedia.org/wiki/User:Dan')
     
+    def test_link_to_user_page_unicode(self):
+        link_to_user_page('ولاء عبد المنعم', 'ar')
+        # just want to make sure no exceptions are raised
+        assert_true(True)
+    
     def test_validate_records(self):
         (valid, invalid) = validate_records([
             {
diff --git a/wikimetrics/controllers/cohorts.py 
b/wikimetrics/controllers/cohorts.py
index 2dcfc4e..074cda3 100644
--- a/wikimetrics/controllers/cohorts.py
+++ b/wikimetrics/controllers/cohorts.py
@@ -373,7 +373,16 @@
 
 def link_to_user_page(username, project):
     project = project_name_for_link(project)
-    return 'https://{0}.wikipedia.org/wiki/User:{1}'.format(project, username)
+    user_link = 'https://{0}.wikipedia.org/wiki/User:{1}'
+    user_not_found_link = 
'https://{0}.wikipedia.org/wiki/Username_could_not_be_parsed'
+    # TODO: python 2 has insane unicode handling, switch to python 3
+    try:
+        return user_link.format(project, username)
+    except UnicodeEncodeError:
+        try:
+            return user_link.format(project, username.encode('utf8'))
+        except:
+            return user_not_found_link.format(project)
 
 
 def validate_records(records):

-- 
To view, visit https://gerrit.wikimedia.org/r/81275
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I5771c75aca1db196669e9361e5d7ddab0b44e290
Gerrit-PatchSet: 1
Gerrit-Project: analytics/wikimetrics
Gerrit-Branch: master
Gerrit-Owner: Milimetric <dandree...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to