mirror of
https://github.com/zulip/zulip.git
synced 2025-11-03 13:33:24 +00:00
test_custom_profile_data: Don't do a database query on import.
This is a general code cleanlyness improvement. While we're at it, we combine together two test classes that didn't have a particularly good reason for existing.
This commit is contained in:
@@ -10,16 +10,17 @@ from zerver.models import CustomProfileField, \
|
||||
custom_profile_fields_for_realm, get_realm
|
||||
import ujson
|
||||
|
||||
FIELDS_ALREADY_EXISTS = len(custom_profile_fields_for_realm(get_realm("zulip").id))
|
||||
|
||||
class CustomProfileFieldTest(ZulipTestCase):
|
||||
def setUp(self) -> None:
|
||||
self.original_count = len(custom_profile_fields_for_realm(get_realm("zulip").id))
|
||||
|
||||
def test_list(self) -> None:
|
||||
self.login(self.example_email("iago"))
|
||||
result = self.client_get("/json/realm/profile_fields")
|
||||
self.assert_json_success(result)
|
||||
self.assertEqual(200, result.status_code)
|
||||
content = result.json()
|
||||
self.assertEqual(len(content["custom_fields"]), FIELDS_ALREADY_EXISTS)
|
||||
self.assertEqual(len(content["custom_fields"]), self.original_count)
|
||||
|
||||
def test_create(self) -> None:
|
||||
self.login(self.example_email("iago"))
|
||||
@@ -120,11 +121,11 @@ class CustomProfileFieldTest(ZulipTestCase):
|
||||
result = self.client_delete("/json/realm/profile_fields/100")
|
||||
self.assert_json_error(result, 'Field id 100 not found.')
|
||||
|
||||
self.assertEqual(CustomProfileField.objects.count(), FIELDS_ALREADY_EXISTS)
|
||||
self.assertEqual(CustomProfileField.objects.count(), self.original_count)
|
||||
result = self.client_delete(
|
||||
"/json/realm/profile_fields/{}".format(field.id))
|
||||
self.assert_json_success(result)
|
||||
self.assertEqual(CustomProfileField.objects.count(), FIELDS_ALREADY_EXISTS - 1)
|
||||
self.assertEqual(CustomProfileField.objects.count(), self.original_count - 1)
|
||||
|
||||
def test_update(self) -> None:
|
||||
self.login(self.example_email("iago"))
|
||||
@@ -145,14 +146,14 @@ class CustomProfileFieldTest(ZulipTestCase):
|
||||
|
||||
field = CustomProfileField.objects.get(name="Phone number", realm=realm)
|
||||
|
||||
self.assertEqual(CustomProfileField.objects.count(), FIELDS_ALREADY_EXISTS)
|
||||
self.assertEqual(CustomProfileField.objects.count(), self.original_count)
|
||||
result = self.client_patch(
|
||||
"/json/realm/profile_fields/{}".format(field.id),
|
||||
info={'name': 'New phone number',
|
||||
'field_type': CustomProfileField.SHORT_TEXT})
|
||||
self.assert_json_success(result)
|
||||
field = CustomProfileField.objects.get(id=field.id, realm=realm)
|
||||
self.assertEqual(CustomProfileField.objects.count(), FIELDS_ALREADY_EXISTS)
|
||||
self.assertEqual(CustomProfileField.objects.count(), self.original_count)
|
||||
self.assertEqual(field.name, 'New phone number')
|
||||
self.assertIs(field.hint, '')
|
||||
self.assertEqual(field.field_type, CustomProfileField.SHORT_TEXT)
|
||||
@@ -173,7 +174,7 @@ class CustomProfileFieldTest(ZulipTestCase):
|
||||
self.assert_json_success(result)
|
||||
|
||||
field = CustomProfileField.objects.get(id=field.id, realm=realm)
|
||||
self.assertEqual(CustomProfileField.objects.count(), FIELDS_ALREADY_EXISTS)
|
||||
self.assertEqual(CustomProfileField.objects.count(), self.original_count)
|
||||
self.assertEqual(field.name, 'New phone number')
|
||||
self.assertEqual(field.hint, 'New contact number')
|
||||
self.assertEqual(field.field_type, CustomProfileField.SHORT_TEXT)
|
||||
@@ -218,14 +219,13 @@ class CustomProfileFieldTest(ZulipTestCase):
|
||||
CustomProfileField.SHORT_TEXT
|
||||
)
|
||||
|
||||
self.assertEqual(CustomProfileField.objects.count(), FIELDS_ALREADY_EXISTS + 2)
|
||||
self.assertEqual(CustomProfileField.objects.count(), self.original_count + 2)
|
||||
result = self.client_patch(
|
||||
"/json/realm/profile_fields/{}".format(field.id),
|
||||
info={'name': 'Phone', 'field_type': CustomProfileField.SHORT_TEXT})
|
||||
self.assert_json_error(
|
||||
result, u'A field with that name already exists.')
|
||||
|
||||
class CustomProfileDataTest(ZulipTestCase):
|
||||
def assert_error_update_invalid_value(self, field_name: str, new_value: object, error_msg: str) -> None:
|
||||
self.login(self.example_email("iago"))
|
||||
realm = get_realm('zulip')
|
||||
@@ -296,7 +296,7 @@ class CustomProfileDataTest(ZulipTestCase):
|
||||
for k in ['id', 'type', 'name', 'field_data']:
|
||||
self.assertIn(k, field_dict)
|
||||
|
||||
self.assertEqual(len(iago.profile_data), FIELDS_ALREADY_EXISTS)
|
||||
self.assertEqual(len(iago.profile_data), self.original_count)
|
||||
|
||||
# Update value of one field.
|
||||
field = CustomProfileField.objects.get(name='Biography', realm=realm)
|
||||
@@ -330,17 +330,17 @@ class CustomProfileDataTest(ZulipTestCase):
|
||||
{'data': ujson.dumps(data)})
|
||||
self.assert_json_success(result)
|
||||
|
||||
def test_delete(self) -> None:
|
||||
def test_delete_internals(self) -> None:
|
||||
user_profile = self.example_user('iago')
|
||||
realm = user_profile.realm
|
||||
field = CustomProfileField.objects.get(name="Phone number", realm=realm)
|
||||
data = [{'id': field.id, 'value': u'123456'}] # type: List[Dict[str, Union[int, Text]]]
|
||||
do_update_user_custom_profile_data(user_profile, data)
|
||||
|
||||
self.assertEqual(len(custom_profile_fields_for_realm(realm.id)), FIELDS_ALREADY_EXISTS)
|
||||
self.assertEqual(user_profile.customprofilefieldvalue_set.count(), FIELDS_ALREADY_EXISTS)
|
||||
self.assertEqual(len(custom_profile_fields_for_realm(realm.id)), self.original_count)
|
||||
self.assertEqual(user_profile.customprofilefieldvalue_set.count(), self.original_count)
|
||||
|
||||
do_remove_realm_custom_profile_field(realm, field)
|
||||
|
||||
self.assertEqual(len(custom_profile_fields_for_realm(realm.id)), FIELDS_ALREADY_EXISTS - 1)
|
||||
self.assertEqual(user_profile.customprofilefieldvalue_set.count(), FIELDS_ALREADY_EXISTS - 1)
|
||||
self.assertEqual(len(custom_profile_fields_for_realm(realm.id)), self.original_count - 1)
|
||||
self.assertEqual(user_profile.customprofilefieldvalue_set.count(), self.original_count - 1)
|
||||
|
||||
Reference in New Issue
Block a user