Compare commits
	
		
			2 Commits
		
	
	
		
			v0.18.2
			...
			unicode-ur
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 3534daf37d | ||
|  | 6a59e4658e | 
| @@ -139,12 +139,12 @@ class URLField(StringField): | ||||
|         # Check first if the scheme is valid | ||||
|         scheme = value.split('://')[0].lower() | ||||
|         if scheme not in self.schemes: | ||||
|             self.error('Invalid scheme {} in URL: {}'.format(scheme, value)) | ||||
|             self.error(u'Invalid scheme {} in URL: {}'.format(scheme, value)) | ||||
|             return | ||||
|  | ||||
|         # Then check full URL | ||||
|         if not self.url_regex.match(value): | ||||
|             self.error('Invalid URL: {}'.format(value)) | ||||
|             self.error(u'Invalid URL: {}'.format(value)) | ||||
|             return | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -341,11 +341,12 @@ class FieldTest(MongoDBTestCase): | ||||
|         person.validate() | ||||
|  | ||||
|     def test_url_validation(self): | ||||
|         """Ensure that URLFields validate urls properly. | ||||
|         """ | ||||
|         """Ensure that URLFields validate urls properly.""" | ||||
|         class Link(Document): | ||||
|             url = URLField() | ||||
|  | ||||
|         Link.drop_collection() | ||||
|  | ||||
|         link = Link() | ||||
|         link.url = 'google' | ||||
|         self.assertRaises(ValidationError, link.validate) | ||||
| @@ -353,6 +354,27 @@ class FieldTest(MongoDBTestCase): | ||||
|         link.url = 'http://www.google.com:8080' | ||||
|         link.validate() | ||||
|  | ||||
|     def test_unicode_url_validation(self): | ||||
|         """Ensure unicode URLs are validated properly.""" | ||||
|         class Link(Document): | ||||
|             url = URLField() | ||||
|  | ||||
|         Link.drop_collection() | ||||
|  | ||||
|         link = Link() | ||||
|         link.url = u'http://привет.com' | ||||
|  | ||||
|         # TODO fix URL validation - this *IS* a valid URL | ||||
|         # For now we just want to make sure that the error message is correct | ||||
|         try: | ||||
|             link.validate() | ||||
|             self.assertTrue(False) | ||||
|         except ValidationError as e: | ||||
|             self.assertEqual( | ||||
|                 unicode(e), | ||||
|                 u"ValidationError (Link:None) (Invalid URL: http://\u043f\u0440\u0438\u0432\u0435\u0442.com: ['url'])" | ||||
|             ) | ||||
|  | ||||
|     def test_url_scheme_validation(self): | ||||
|         """Ensure that URLFields validate urls with specific schemes properly. | ||||
|         """ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user