Hello Milimetric,

I'd like you to do a code review.  Please visit

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

to review the following change.

Change subject: Fix type of user_name in SQLAlchemy's model of MediaWiki's user 
table
......................................................................

Fix type of user_name in SQLAlchemy's model of MediaWiki's user table

Validation of UTF-8 usernames failed with

  UnicodeEncodeError: 'ascii' codec can't encode character u'\xe8' in position 
13: ordinal not in range(128)

when validating cohorts. This was due to SQLAlchemy thinking it is a
String column in default character set and hence trying to use
ascii. However, it is a VARBINARY containing UTF-8 in MediaWiki. By
fixing the column's type to what MediaWiki uses, SQLAlchemy/Python can
correctly figure out how to handle UTF-8 in user names and allows to
validate them.

Bug: 63836
Change-Id: I526d1fe181993bd05b49e34f2ace61561c9c7c1f
---
M wikimetrics/models/mediawiki/user.py
1 file changed, 2 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/analytics/wikimetrics 
refs/changes/61/125961/1

diff --git a/wikimetrics/models/mediawiki/user.py 
b/wikimetrics/models/mediawiki/user.py
index 0ea0c62..7175b55 100644
--- a/wikimetrics/models/mediawiki/user.py
+++ b/wikimetrics/models/mediawiki/user.py
@@ -1,7 +1,7 @@
 from sqlalchemy import Column, Integer, String
 from wikimetrics.configurables import db
 from custom_columns import MediawikiTimestamp
-from sqlalchemy.dialects.mysql import TINYBLOB
+from sqlalchemy.dialects.mysql import TINYBLOB, VARBINARY
 from wikimetrics.utils import UNICODE_NULL
 
 __all__ = ['MediawikiUser']
@@ -12,7 +12,7 @@
     
     # defaults are for user generating data methods
     user_id = Column(Integer, primary_key=True)
-    user_name = Column(String(255))
+    user_name = Column(VARBINARY(255), nullable=False, default='')
     user_real_name = Column(String(255), nullable=False, default='')
     user_password = Column(TINYBLOB, nullable=False, default='')
     user_newpassword = Column(TINYBLOB, nullable=False, default='')

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I526d1fe181993bd05b49e34f2ace61561c9c7c1f
Gerrit-PatchSet: 1
Gerrit-Project: analytics/wikimetrics
Gerrit-Branch: master
Gerrit-Owner: QChris <[email protected]>
Gerrit-Reviewer: Milimetric <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to