7
7
# -----------------------------------------------------------------------------
8
8
9
9
from unittest import main
10
+ from wtforms .validators import ValidationError
11
+ from wtforms import StringField
10
12
11
13
from qiita_pet .test .tornado_test_base import TestHandlerBase
14
+ from qiita_pet .handlers .user_handlers import UserProfile
12
15
13
16
14
17
class TestUserProfile (TestHandlerBase ):
@@ -17,7 +20,6 @@ class TestUserProfile(TestHandlerBase):
17
20
18
21
19
22
class TestUserProfileHandler (TestHandlerBase ):
20
-
21
23
def test_get (self ):
22
24
response = self .get ('/profile/' )
23
25
self .assertEqual (response .code , 200 )
@@ -44,6 +46,77 @@ def test_post_profile(self):
44
46
response = self .post ('/profile/' , post_args )
45
47
self .assertEqual (response .code , 200 )
46
48
49
+ def test_validators_social (self ):
50
+ # None or empty should be valid
51
+ obs = UserProfile .validate_general (None , "" , "" )
52
+ self .assertEqual (obs , None )
53
+ obs = UserProfile .validate_general ("" , "" , "" )
54
+ self .assertEqual (obs , None )
55
+
56
+ # having white spaces should raise errors
57
+ with self .assertRaises (ValidationError ):
58
+ obs = UserProfile .validate_general (" infix" , "" , "" )
59
+ with self .assertRaises (ValidationError ):
60
+ obs = UserProfile .validate_general ("infix " , "" , "" )
61
+ with self .assertRaises (ValidationError ):
62
+ obs = UserProfile .validate_general (" infix " , "" , "" )
63
+ obs = UserProfile .validate_general ("infix" , "" , "" )
64
+ self .assertEqual (obs , 'infix' )
65
+
66
+ with self .assertRaises (ValidationError ):
67
+ obs = UserProfile .validate_general (
68
+ "http://kurt.com/id1234" , "msg" , r"http://kurt.\w{1,3}/" )
69
+
70
+ def test_validator_orcid_id (self ):
71
+ field = StringField ("testfield" )
72
+
73
+ field .data = "0000-0002-0975-9019"
74
+ obs = UserProfile .validator_orcid_id (None , field )
75
+ self .assertEqual (obs , None )
76
+
77
+ field .data = "https://orcid.org/0000-0002-0975-9019"
78
+ with self .assertRaises (ValidationError ):
79
+ obs = UserProfile .validator_orcid_id (None , field )
80
+
81
+ field .data = "wrong"
82
+ with self .assertRaises (ValidationError ):
83
+ obs = UserProfile .validator_orcid_id (None , field )
84
+
85
+ def test_validator_gscholar_id (self ):
86
+ field = StringField ("testfield" )
87
+
88
+ field .data = "_e3QL94AAAAJ"
89
+ obs = UserProfile .validator_gscholar_id (None , field )
90
+ self .assertEqual (obs , None )
91
+
92
+ field .data = ('https://scholar.google.com/citations?user=_e3QL94AAAAJ&'
93
+ 'hl=en' )
94
+ with self .assertRaises (ValidationError ):
95
+ obs = UserProfile .validator_gscholar_id (None , field )
96
+
97
+ field .data = 'user=_e3QL94AAAAJ&hl=en'
98
+ with self .assertRaises (ValidationError ):
99
+ obs = UserProfile .validator_gscholar_id (None , field )
100
+
101
+ field .data = 'user=_e3QL94AAAAJ'
102
+ with self .assertRaises (ValidationError ):
103
+ obs = UserProfile .validator_gscholar_id (None , field )
104
+
105
+ field .data = '=_e3QL94AAAAJ'
106
+ with self .assertRaises (ValidationError ):
107
+ obs = UserProfile .validator_gscholar_id (None , field )
108
+
109
+ def test_validator_rgate_id (self ):
110
+ field = StringField ("testfield" )
111
+
112
+ field .data = "Rob-Knight"
113
+ obs = UserProfile .validator_rgate_id (None , field )
114
+ self .assertEqual (obs , None )
115
+
116
+ field .data = 'https://www.researchgate.net/profile/Rob-Knight'
117
+ with self .assertRaises (ValidationError ):
118
+ obs = UserProfile .validator_rgate_id (None , field )
119
+
47
120
48
121
class TestUserJobsHandler (TestHandlerBase ):
49
122
def test_get (self ):
0 commit comments