From 466935e9a3d3d45551efa42927035eba9077bd3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20W=C3=B3jcik?= Date: Sun, 16 Apr 2017 13:58:58 -0400 Subject: [PATCH] Unicode support in EmailField (#1527) --- mongoengine/fields.py | 105 +++++++++++++++++++++++++++++++++---- tests/document/instance.py | 2 +- tests/fields/fields.py | 101 ++++++++++++++++++++++++++++++----- 3 files changed, 183 insertions(+), 25 deletions(-) diff --git a/mongoengine/fields.py b/mongoengine/fields.py index 06c56f06..b631fc48 100644 --- a/mongoengine/fields.py +++ b/mongoengine/fields.py @@ -2,6 +2,7 @@ import datetime import decimal import itertools import re +import socket import time import uuid import warnings @@ -154,21 +155,105 @@ class EmailField(StringField): .. versionadded:: 0.4 """ - - EMAIL_REGEX = re.compile( - # dot-atom - r"(^[-!#$%&'*+/=?^_`{}|~0-9A-Z]+(\.[-!#$%&'*+/=?^_`{}|~0-9A-Z]+)*" - # quoted-string - r'|^"([\001-\010\013\014\016-\037!#-\[\]-\177]|\\[\001-011\013\014\016-\177])*"' - # domain (max length of an ICAAN TLD is 22 characters) - r')@(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+(?:[A-Z]{2,6}|[A-Z0-9-]{2,}(?