def test_users_to_zerver_userprofile(self, mock_get_data_file: mock.Mock) -> None:
        custom_profile_field_user1 = {"Xf06054BBB": {"value": "random1"},
                                      "Xf023DSCdd": {"value": "employee"}}
        custom_profile_field_user2 = {"Xf06054BBB": {"value": "random2"},
                                      "Xf023DSCdd": {"value": "employer"}}
        user_data = [{"id": "U08RGD1RD",
                      "team_id": "T5YFFM2QY",
                      "name": "john",
                      "deleted": False,
                      "is_mirror_dummy": False,
                      "real_name": "John Doe",
                      "profile": {"image_32": "", "email": "*****@*****.**", "avatar_hash": "hash",
                                  "phone": "+1-123-456-77-868",
                                  "fields": custom_profile_field_user1}},
                     {"id": "U0CBK5KAT",
                      "team_id": "T5YFFM2QY",
                      "is_admin": True,
                      "is_bot": False,
                      "is_owner": True,
                      "is_primary_owner": True,
                      'name': 'Jane',
                      "real_name": "Jane Doe",
                      "deleted": False,
                      "is_mirror_dummy": False,
                      "profile": {"image_32": "https://secure.gravatar.com/avatar/random.png",
                                  "fields": custom_profile_field_user2,
                                  "email": "*****@*****.**", "avatar_hash": "hash"}},
                     {"id": "U09TYF5Sk",
                      "team_id": "T5YFFM2QY",
                      "name": "Bot",
                      "real_name": "Bot",
                      "is_bot": True,
                      "deleted": False,
                      "is_mirror_dummy": False,
                      "profile": {"image_32": "https://secure.gravatar.com/avatar/random1.png",
                                  "skype": "test_skype_name",
                                  "email": "*****@*****.**", "avatar_hash": "hash"}},
                     {"id": "UHSG7OPQN",
                      "team_id": "T6LARQE2Z",
                      'name': 'matt.perry',
                      "color": '9d8eee',
                      "is_bot": False,
                      "is_app_user": False,
                      "is_mirror_dummy": True,
                      "team_domain": "foreignteam",
                      "profile": {"image_32": "https://secure.gravatar.com/avatar/random6.png",
                                  "avatar_hash": "hash", "first_name": "Matt", "last_name": "Perry",
                                  "real_name": "Matt Perry", "display_name": "matt.perry", "team": "T6LARQE2Z"}}]

        mock_get_data_file.return_value = user_data
        # As user with slack_id 'U0CBK5KAT' is the primary owner, that user should be imported first
        # and hence has zulip_id = 1
        test_slack_user_id_to_zulip_user_id = {'U08RGD1RD': 1, 'U0CBK5KAT': 0, 'U09TYF5Sk': 2, 'UHSG7OPQN': 3}
        slack_data_dir = './random_path'
        timestamp = int(timezone_now().timestamp())
        mock_get_data_file.return_value = user_data
        zerver_userprofile, avatar_list, slack_user_id_to_zulip_user_id, customprofilefield, \
            customprofilefield_value = users_to_zerver_userprofile(slack_data_dir, user_data, 1,
                                                                   timestamp, 'test_domain')

        # Test custom profile fields
        self.assertEqual(customprofilefield[0]['field_type'], 1)
        self.assertEqual(customprofilefield[3]['name'], 'skype')
        cpf_name = {cpf['name'] for cpf in customprofilefield}
        self.assertIn('phone', cpf_name)
        self.assertIn('skype', cpf_name)
        cpf_name.remove('phone')
        cpf_name.remove('skype')
        for name in cpf_name:
            self.assertTrue(name.startswith('slack custom field '))

        self.assertEqual(len(customprofilefield_value), 6)
        self.assertEqual(customprofilefield_value[0]['field'], 0)
        self.assertEqual(customprofilefield_value[0]['user_profile'], 1)
        self.assertEqual(customprofilefield_value[3]['user_profile'], 0)
        self.assertEqual(customprofilefield_value[5]['value'], 'test_skype_name')

        # test that the primary owner should always be imported first
        self.assertDictEqual(slack_user_id_to_zulip_user_id, test_slack_user_id_to_zulip_user_id)
        self.assertEqual(len(avatar_list), 4)

        self.assertEqual(len(zerver_userprofile), 4)

        self.assertEqual(zerver_userprofile[0]['is_staff'], False)
        self.assertEqual(zerver_userprofile[0]['is_bot'], False)
        self.assertEqual(zerver_userprofile[0]['is_active'], True)
        self.assertEqual(zerver_userprofile[0]['is_mirror_dummy'], False)
        self.assertEqual(zerver_userprofile[0]['role'], UserProfile.ROLE_MEMBER)
        self.assertEqual(zerver_userprofile[0]['enable_desktop_notifications'], True)
        self.assertEqual(zerver_userprofile[0]['email'], '*****@*****.**')
        self.assertEqual(zerver_userprofile[0]['full_name'], 'John Doe')

        self.assertEqual(zerver_userprofile[1]['id'], test_slack_user_id_to_zulip_user_id['U0CBK5KAT'])
        self.assertEqual(zerver_userprofile[1]['role'], UserProfile.ROLE_REALM_ADMINISTRATOR)
        self.assertEqual(zerver_userprofile[1]['is_staff'], False)
        self.assertEqual(zerver_userprofile[1]['is_active'], True)
        self.assertEqual(zerver_userprofile[0]['is_mirror_dummy'], False)

        self.assertEqual(zerver_userprofile[2]['id'], test_slack_user_id_to_zulip_user_id['U09TYF5Sk'])
        self.assertEqual(zerver_userprofile[2]['is_bot'], True)
        self.assertEqual(zerver_userprofile[2]['is_active'], True)
        self.assertEqual(zerver_userprofile[2]['is_mirror_dummy'], False)
        self.assertEqual(zerver_userprofile[2]['email'], '*****@*****.**')
        self.assertEqual(zerver_userprofile[2]['bot_type'], 1)
        self.assertEqual(zerver_userprofile[2]['avatar_source'], 'U')

        self.assertEqual(zerver_userprofile[3]['id'], test_slack_user_id_to_zulip_user_id['UHSG7OPQN'])
        self.assertEqual(zerver_userprofile[3]['role'], UserProfile.ROLE_MEMBER)
        self.assertEqual(zerver_userprofile[3]['is_staff'], False)
        self.assertEqual(zerver_userprofile[3]['is_active'], False)
        self.assertEqual(zerver_userprofile[3]['email'], '*****@*****.**')
        self.assertEqual(zerver_userprofile[3]['realm'], 1)
        self.assertEqual(zerver_userprofile[3]['full_name'], 'Matt Perry')
        self.assertEqual(zerver_userprofile[3]['short_name'], 'matt.perry')
        self.assertEqual(zerver_userprofile[3]['is_mirror_dummy'], True)
        self.assertEqual(zerver_userprofile[3]['is_api_super_user'], False)
Exemple #2
0
    def test_users_to_zerver_userprofile(
            self, mock_get_data_file: mock.Mock) -> None:
        custom_profile_field_user1 = {
            "Xf06054BBB": {
                "value": "random1"
            },
            "Xf023DSCdd": {
                "value": "employee"
            },
        }
        custom_profile_field_user2 = {
            "Xf06054BBB": {
                "value": "random2"
            },
            "Xf023DSCdd": {
                "value": "employer"
            },
        }
        user_data = [
            {
                "id": "U08RGD1RD",
                "team_id": "T5YFFM2QY",
                "name": "john",
                "deleted": False,
                "is_mirror_dummy": False,
                "real_name": "John Doe",
                "profile": {
                    "image_32": "",
                    "email": "*****@*****.**",
                    "avatar_hash": "hash",
                    "phone": "+1-123-456-77-868",
                    "fields": custom_profile_field_user1,
                },
            },
            {
                "id": "U0CBK5KAT",
                "team_id": "T5YFFM2QY",
                "is_admin": True,
                "is_bot": False,
                "is_owner": True,
                "is_primary_owner": True,
                "name": "Jane",
                "real_name": "Jane Doe",
                "deleted": False,
                "is_mirror_dummy": False,
                "profile": {
                    "image_32":
                    "https://secure.gravatar.com/avatar/random.png",
                    "fields": custom_profile_field_user2,
                    "email": "*****@*****.**",
                    "avatar_hash": "hash",
                },
            },
            {
                "id": "U09TYF5Sk",
                "team_id": "T5YFFM2QY",
                "name": "Bot",
                "real_name": "Bot",
                "is_bot": True,
                "deleted": False,
                "is_mirror_dummy": False,
                "profile": {
                    "image_32":
                    "https://secure.gravatar.com/avatar/random1.png",
                    "skype": "test_skype_name",
                    "email": "*****@*****.**",
                    "avatar_hash": "hash",
                },
            },
            {
                "id": "UHSG7OPQN",
                "team_id": "T6LARQE2Z",
                "name": "matt.perry",
                "color": "9d8eee",
                "is_bot": False,
                "is_app_user": False,
                "is_mirror_dummy": True,
                "team_domain": "foreignteam",
                "profile": {
                    "image_32":
                    "https://secure.gravatar.com/avatar/random6.png",
                    "avatar_hash": "hash",
                    "first_name": "Matt",
                    "last_name": "Perry",
                    "real_name": "Matt Perry",
                    "display_name": "matt.perry",
                    "team": "T6LARQE2Z",
                },
            },
            {
                "id": "U8VAHEVUY",
                "team_id": "T5YFFM2QY",
                "name": "steviejacob34",
                "real_name": "Steve Jacob",
                "is_admin": False,
                "is_owner": False,
                "is_primary_owner": False,
                "is_restricted": True,
                "is_ultra_restricted": False,
                "is_bot": False,
                "is_mirror_dummy": False,
                "profile": {
                    "email": "*****@*****.**",
                    "avatar_hash": "hash",
                    "image_32":
                    "https://secure.gravatar.com/avatar/random6.png",
                },
            },
            {
                "id": "U8X25EBAB",
                "team_id": "T5YFFM2QY",
                "name": "pratikweb_0",
                "real_name": "Pratik",
                "is_admin": False,
                "is_owner": False,
                "is_primary_owner": False,
                "is_restricted": True,
                "is_ultra_restricted": True,
                "is_bot": False,
                "is_mirror_dummy": False,
                "profile": {
                    "email": "*****@*****.**",
                    "avatar_hash": "hash",
                    "image_32":
                    "https://secure.gravatar.com/avatar/random.png",
                },
            },
            {
                "id": "U015J7JSE",
                "team_id": "T5YFFM2QY",
                "name": "georgesm27",
                "real_name": "George",
                "is_admin": True,
                "is_owner": True,
                "is_primary_owner": False,
                "is_restricted": False,
                "is_ultra_restricted": False,
                "is_bot": False,
                "is_mirror_dummy": False,
                "profile": {
                    "email": "*****@*****.**",
                    "avatar_hash": "hash",
                    "image_32":
                    "https://secure.gravatar.com/avatar/random5.png",
                },
            },
            {
                "id": "U1RDFEC80",
                "team_id": "T5YFFM2QY",
                "name": "daniel.smith",
                "real_name": "Daniel Smith",
                "is_admin": True,
                "is_owner": False,
                "is_primary_owner": False,
                "is_restricted": False,
                "is_ultra_restricted": False,
                "is_bot": False,
                "is_mirror_dummy": False,
                "profile": {
                    "email": "*****@*****.**",
                    "avatar_hash": "hash",
                    "image_32":
                    "https://secure.gravatar.com/avatar/random7.png",
                },
            },
        ]

        mock_get_data_file.return_value = user_data
        # As user with slack_id 'U0CBK5KAT' is the primary owner, that user should be imported first
        # and hence has zulip_id = 1
        test_slack_user_id_to_zulip_user_id = {
            "U08RGD1RD": 1,
            "U0CBK5KAT": 0,
            "U09TYF5Sk": 2,
            "UHSG7OPQN": 3,
            "U8VAHEVUY": 4,
            "U8X25EBAB": 5,
            "U015J7JSE": 6,
            "U1RDFEC80": 7,
        }
        slack_data_dir = "./random_path"
        timestamp = int(timezone_now().timestamp())
        mock_get_data_file.return_value = user_data

        with self.assertLogs(level="INFO"):
            (
                zerver_userprofile,
                avatar_list,
                slack_user_id_to_zulip_user_id,
                customprofilefield,
                customprofilefield_value,
            ) = users_to_zerver_userprofile(slack_data_dir, user_data, 1,
                                            timestamp, "test_domain")

        # Test custom profile fields
        self.assertEqual(customprofilefield[0]["field_type"], 1)
        self.assertEqual(customprofilefield[3]["name"], "skype")
        cpf_name = {cpf["name"] for cpf in customprofilefield}
        self.assertIn("phone", cpf_name)
        self.assertIn("skype", cpf_name)
        cpf_name.remove("phone")
        cpf_name.remove("skype")
        for name in cpf_name:
            self.assertTrue(name.startswith("Slack custom field "))

        self.assert_length(customprofilefield_value, 6)
        self.assertEqual(customprofilefield_value[0]["field"], 0)
        self.assertEqual(customprofilefield_value[0]["user_profile"], 1)
        self.assertEqual(customprofilefield_value[3]["user_profile"], 0)
        self.assertEqual(customprofilefield_value[5]["value"],
                         "test_skype_name")

        # test that the primary owner should always be imported first
        self.assertDictEqual(slack_user_id_to_zulip_user_id,
                             test_slack_user_id_to_zulip_user_id)
        self.assert_length(avatar_list, 8)

        self.assert_length(zerver_userprofile, 8)

        self.assertEqual(zerver_userprofile[0]["is_staff"], False)
        self.assertEqual(zerver_userprofile[0]["is_bot"], False)
        self.assertEqual(zerver_userprofile[0]["is_active"], True)
        self.assertEqual(zerver_userprofile[0]["is_mirror_dummy"], False)
        self.assertEqual(zerver_userprofile[0]["role"],
                         UserProfile.ROLE_MEMBER)
        self.assertEqual(zerver_userprofile[0]["enable_desktop_notifications"],
                         True)
        self.assertEqual(zerver_userprofile[0]["email"], "*****@*****.**")
        self.assertEqual(zerver_userprofile[0]["full_name"], "John Doe")

        self.assertEqual(zerver_userprofile[1]["id"],
                         test_slack_user_id_to_zulip_user_id["U0CBK5KAT"])
        self.assertEqual(zerver_userprofile[1]["role"],
                         UserProfile.ROLE_REALM_OWNER)
        self.assertEqual(zerver_userprofile[1]["is_staff"], False)
        self.assertEqual(zerver_userprofile[1]["is_active"], True)
        self.assertEqual(zerver_userprofile[0]["is_mirror_dummy"], False)

        self.assertEqual(zerver_userprofile[2]["id"],
                         test_slack_user_id_to_zulip_user_id["U09TYF5Sk"])
        self.assertEqual(zerver_userprofile[2]["is_bot"], True)
        self.assertEqual(zerver_userprofile[2]["is_active"], True)
        self.assertEqual(zerver_userprofile[2]["is_mirror_dummy"], False)
        self.assertEqual(zerver_userprofile[2]["email"], "*****@*****.**")
        self.assertEqual(zerver_userprofile[2]["bot_type"], 1)
        self.assertEqual(zerver_userprofile[2]["avatar_source"], "U")

        self.assertEqual(zerver_userprofile[3]["id"],
                         test_slack_user_id_to_zulip_user_id["UHSG7OPQN"])
        self.assertEqual(zerver_userprofile[3]["role"],
                         UserProfile.ROLE_MEMBER)
        self.assertEqual(zerver_userprofile[3]["is_staff"], False)
        self.assertEqual(zerver_userprofile[3]["is_active"], False)
        self.assertEqual(zerver_userprofile[3]["email"],
                         "*****@*****.**")
        self.assertEqual(zerver_userprofile[3]["realm"], 1)
        self.assertEqual(zerver_userprofile[3]["full_name"], "Matt Perry")
        self.assertEqual(zerver_userprofile[3]["is_mirror_dummy"], True)
        self.assertEqual(zerver_userprofile[3]["can_forge_sender"], False)

        self.assertEqual(zerver_userprofile[4]["id"],
                         test_slack_user_id_to_zulip_user_id["U8VAHEVUY"])
        self.assertEqual(zerver_userprofile[4]["role"], UserProfile.ROLE_GUEST)
        self.assertEqual(zerver_userprofile[4]["is_staff"], False)
        self.assertEqual(zerver_userprofile[4]["is_active"], True)
        self.assertEqual(zerver_userprofile[4]["is_mirror_dummy"], False)

        self.assertEqual(zerver_userprofile[5]["id"],
                         test_slack_user_id_to_zulip_user_id["U8X25EBAB"])
        self.assertEqual(zerver_userprofile[5]["role"], UserProfile.ROLE_GUEST)
        self.assertEqual(zerver_userprofile[5]["is_staff"], False)
        self.assertEqual(zerver_userprofile[5]["is_active"], True)
        self.assertEqual(zerver_userprofile[5]["is_mirror_dummy"], False)

        self.assertEqual(zerver_userprofile[6]["id"],
                         test_slack_user_id_to_zulip_user_id["U015J7JSE"])
        self.assertEqual(zerver_userprofile[6]["role"],
                         UserProfile.ROLE_REALM_OWNER)
        self.assertEqual(zerver_userprofile[6]["is_staff"], False)
        self.assertEqual(zerver_userprofile[6]["is_active"], True)
        self.assertEqual(zerver_userprofile[6]["is_mirror_dummy"], False)

        self.assertEqual(zerver_userprofile[7]["id"],
                         test_slack_user_id_to_zulip_user_id["U1RDFEC80"])
        self.assertEqual(zerver_userprofile[7]["role"],
                         UserProfile.ROLE_REALM_ADMINISTRATOR)
        self.assertEqual(zerver_userprofile[7]["is_staff"], False)
        self.assertEqual(zerver_userprofile[7]["is_active"], True)
        self.assertEqual(zerver_userprofile[7]["is_mirror_dummy"], False)
    def test_users_to_zerver_userprofile(
            self, mock_get_data_file: mock.Mock) -> None:
        custom_profile_field_user1 = {
            "Xf06054BBB": {
                "value": "random1"
            },
            "Xf023DSCdd": {
                "value": "employee"
            }
        }
        custom_profile_field_user2 = {
            "Xf06054BBB": {
                "value": "random2"
            },
            "Xf023DSCdd": {
                "value": "employer"
            }
        }
        user_data = [{
            "id": "U08RGD1RD",
            "team_id": "T5YFFM2QY",
            "name": "john",
            "deleted": False,
            "real_name": "John Doe",
            "profile": {
                "image_32": "",
                "email": "*****@*****.**",
                "avatar_hash": "hash",
                "phone": "+1-123-456-77-868",
                "fields": custom_profile_field_user1
            }
        }, {
            "id": "U0CBK5KAT",
            "team_id": "T5YFFM2QY",
            "is_admin": True,
            "is_bot": False,
            "is_owner": True,
            "is_primary_owner": True,
            'name': 'Jane',
            "real_name": "Jane Doe",
            "deleted": False,
            "profile": {
                "image_32": "https://secure.gravatar.com/avatar/random.png",
                "fields": custom_profile_field_user2,
                "email": "*****@*****.**",
                "avatar_hash": "hash"
            }
        }, {
            "id": "U09TYF5Sk",
            "team_id": "T5YFFM2QY",
            "name": "Bot",
            "real_name": "Bot",
            "is_bot": True,
            "deleted": False,
            "profile": {
                "image_32": "https://secure.gravatar.com/avatar/random1.png",
                "skype": "test_skype_name",
                "email": "*****@*****.**",
                "avatar_hash": "hash"
            }
        }]

        mock_get_data_file.return_value = user_data
        # As user with slack_id 'U0CBK5KAT' is the primary owner, that user should be imported first
        # and hence has zulip_id = 1
        test_added_users = {'U08RGD1RD': 1, 'U0CBK5KAT': 0, 'U09TYF5Sk': 2}
        slack_data_dir = './random_path'
        timestamp = int(timezone_now().timestamp())
        mock_get_data_file.return_value = user_data
        zerver_userprofile, avatar_list, added_users, customprofilefield, \
            customprofilefield_value = users_to_zerver_userprofile(slack_data_dir, user_data, 1,
                                                                   timestamp, 'test_domain')

        # Test custom profile fields
        self.assertEqual(customprofilefield[0]['field_type'], 1)
        self.assertEqual(customprofilefield[3]['name'], 'skype')
        cpf_name = {cpf['name'] for cpf in customprofilefield}
        self.assertIn('phone', cpf_name)
        self.assertIn('skype', cpf_name)
        cpf_name.remove('phone')
        cpf_name.remove('skype')
        for name in cpf_name:
            self.assertTrue(name.startswith('slack custom field '))

        self.assertEqual(len(customprofilefield_value), 6)
        self.assertEqual(customprofilefield_value[0]['field'], 0)
        self.assertEqual(customprofilefield_value[0]['user_profile'], 1)
        self.assertEqual(customprofilefield_value[3]['user_profile'], 0)
        self.assertEqual(customprofilefield_value[5]['value'],
                         'test_skype_name')

        # test that the primary owner should always be imported first
        self.assertDictEqual(added_users, test_added_users)
        self.assertEqual(len(avatar_list), 3)

        self.assertEqual(zerver_userprofile[1]['id'],
                         test_added_users['U0CBK5KAT'])
        self.assertEqual(len(zerver_userprofile), 3)
        self.assertEqual(zerver_userprofile[1]['id'], 0)
        self.assertEqual(zerver_userprofile[1]['is_realm_admin'], True)
        self.assertEqual(zerver_userprofile[1]['is_staff'], False)
        self.assertEqual(zerver_userprofile[1]['is_active'], True)
        self.assertEqual(zerver_userprofile[0]['is_staff'], False)
        self.assertEqual(zerver_userprofile[0]['is_bot'], False)
        self.assertEqual(zerver_userprofile[0]['enable_desktop_notifications'],
                         True)
        self.assertEqual(zerver_userprofile[2]['bot_type'], 1)
        self.assertEqual(zerver_userprofile[2]['avatar_source'], 'U')
    def test_users_to_zerver_userprofile(self, mock_get_data_file: mock.Mock) -> None:
        custom_profile_field_user1 = {"Xf06054BBB": {"value": "random1"},
                                      "Xf023DSCdd": {"value": "employee"}}
        custom_profile_field_user2 = {"Xf06054BBB": {"value": "random2"},
                                      "Xf023DSCdd": {"value": "employer"}}
        user_data = [{"id": "U08RGD1RD",
                      "team_id": "T5YFFM2QY",
                      "name": "john",
                      "deleted": False,
                      "real_name": "John Doe",
                      "profile": {"image_32": "", "email": "*****@*****.**", "avatar_hash": "hash",
                                  "phone": "+1-123-456-77-868",
                                  "fields": custom_profile_field_user1}},
                     {"id": "U0CBK5KAT",
                      "team_id": "T5YFFM2QY",
                      "is_admin": True,
                      "is_bot": False,
                      "is_owner": True,
                      "is_primary_owner": True,
                      'name': 'Jane',
                      "real_name": "Jane Doe",
                      "deleted": False,
                      "profile": {"image_32": "https://secure.gravatar.com/avatar/random.png",
                                  "fields": custom_profile_field_user2,
                                  "email": "*****@*****.**", "avatar_hash": "hash"}},
                     {"id": "U09TYF5Sk",
                      "team_id": "T5YFFM2QY",
                      "name": "Bot",
                      "real_name": "Bot",
                      "is_bot": True,
                      "deleted": False,
                      "profile": {"image_32": "https://secure.gravatar.com/avatar/random1.png",
                                  "skype": "test_skype_name",
                                  "email": "*****@*****.**", "avatar_hash": "hash"}}]

        mock_get_data_file.return_value = user_data
        # As user with slack_id 'U0CBK5KAT' is the primary owner, that user should be imported first
        # and hence has zulip_id = 1
        test_added_users = {'U08RGD1RD': 1,
                            'U0CBK5KAT': 0,
                            'U09TYF5Sk': 2}
        slack_data_dir = './random_path'
        timestamp = int(timezone_now().timestamp())
        mock_get_data_file.return_value = user_data
        zerver_userprofile, avatar_list, added_users, customprofilefield, \
            customprofilefield_value = users_to_zerver_userprofile(slack_data_dir, user_data, 1,
                                                                   timestamp, 'test_domain')

        # Test custom profile fields
        self.assertEqual(customprofilefield[0]['field_type'], 1)
        self.assertEqual(customprofilefield[3]['name'], 'skype')
        cpf_name = {cpf['name'] for cpf in customprofilefield}
        self.assertIn('phone', cpf_name)
        self.assertIn('skype', cpf_name)
        cpf_name.remove('phone')
        cpf_name.remove('skype')
        for name in cpf_name:
            self.assertTrue(name.startswith('slack custom field '))

        self.assertEqual(len(customprofilefield_value), 6)
        self.assertEqual(customprofilefield_value[0]['field'], 0)
        self.assertEqual(customprofilefield_value[0]['user_profile'], 1)
        self.assertEqual(customprofilefield_value[3]['user_profile'], 0)
        self.assertEqual(customprofilefield_value[5]['value'], 'test_skype_name')

        # test that the primary owner should always be imported first
        self.assertDictEqual(added_users, test_added_users)
        self.assertEqual(len(avatar_list), 3)

        self.assertEqual(zerver_userprofile[1]['id'], test_added_users['U0CBK5KAT'])
        self.assertEqual(len(zerver_userprofile), 3)
        self.assertEqual(zerver_userprofile[1]['id'], 0)
        self.assertEqual(zerver_userprofile[1]['is_realm_admin'], True)
        self.assertEqual(zerver_userprofile[1]['is_staff'], False)
        self.assertEqual(zerver_userprofile[1]['is_active'], True)
        self.assertEqual(zerver_userprofile[0]['is_staff'], False)
        self.assertEqual(zerver_userprofile[0]['is_bot'], False)
        self.assertEqual(zerver_userprofile[0]['enable_desktop_notifications'], True)
        self.assertEqual(zerver_userprofile[2]['bot_type'], 1)
        self.assertEqual(zerver_userprofile[2]['avatar_source'], 'U')