|
1 | 1 | import pytest |
2 | 2 | from osf.exceptions import ValidationValueError |
3 | 3 |
|
4 | | -from osf.models import validators |
| 4 | +from types import SimpleNamespace |
| 5 | +from osf.models import validators, OSFUser |
5 | 6 | from osf.models.validators import has_domain_in_user_fields_for_names |
6 | | -from osf_tests.factories import SubjectFactory, AuthUserFactory |
| 7 | +from osf_tests.factories import SubjectFactory |
7 | 8 |
|
8 | 9 |
|
9 | 10 | # Ported from tests/framework/test_mongo.py |
10 | 11 |
|
11 | | -@pytest.fixture() |
12 | | -def user(user_data): |
13 | | - return AuthUserFactory(**user_data) |
14 | | - |
| 12 | +def mock_user(user_data): |
| 13 | + user = SimpleNamespace() |
| 14 | + user.DOMAIN_VALIDATION_FIELDS = OSFUser.DOMAIN_VALIDATION_FIELDS |
| 15 | + for field in user.DOMAIN_VALIDATION_FIELDS: |
| 16 | + setattr(user, field, user_data.get(field, '')) |
| 17 | + return user |
15 | 18 |
|
16 | 19 | def test_string_required_passes_with_string(): |
17 | 20 | assert validators.string_required('Hi!') is True |
@@ -155,13 +158,36 @@ def test_validate_expand_subject_hierarchy(): |
155 | 158 | } |
156 | 159 | ] |
157 | 160 | ) |
158 | | -def test_has_domain_in_user_fields_for_names_returns_false(user, user_data): |
159 | | - user.DOMAIN_VALIDATION_FIELDS = [ |
160 | | - 'fullname', |
161 | | - 'given_name', |
162 | | - 'middle_names', |
163 | | - 'family_name', |
164 | | - 'suffix', |
165 | | - ] |
166 | | - |
| 161 | +def test_has_domain_in_user_fields(user_data): |
| 162 | + user = mock_user(user_data) |
167 | 163 | assert has_domain_in_user_fields_for_names(user) is False |
| 164 | + |
| 165 | + |
| 166 | +@pytest.mark.parametrize( |
| 167 | + 'user_data', |
| 168 | + [ |
| 169 | + { |
| 170 | + 'fullname': 'Judith Sarah', |
| 171 | + 'given_name': 'Judith', |
| 172 | + 'family_name': 'Preuss', |
| 173 | + 'middle_names': 'https://www.google.com', |
| 174 | + 'suffix': 'M.Sc.', |
| 175 | + }, |
| 176 | + { |
| 177 | + 'fullname': 'J.H. van Hateren', |
| 178 | + 'given_name': 'J.H.', |
| 179 | + 'family_name': 'https://google.com', |
| 180 | + 'middle_names': '', |
| 181 | + }, |
| 182 | + { |
| 183 | + 'fullname': 'Judith Sarah', |
| 184 | + 'given_name': 'Judith', |
| 185 | + 'family_name': 'Preuss', |
| 186 | + 'middle_names': 'www.google.com', |
| 187 | + 'suffix': 'M.Sc.', |
| 188 | + }, |
| 189 | + ] |
| 190 | +) |
| 191 | +def test_has_domain_in_user_fields_fail(user_data): |
| 192 | + user = mock_user(user_data) |
| 193 | + assert has_domain_in_user_fields_for_names(user) is True |
0 commit comments