| @@ 3624-3981 (lines=358) @@ | ||
| 3621 | assert res.json_body['code'] == error.INSUFFICIENT_USER_PROFILE |
|
| 3622 | ||
| 3623 | ||
| 3624 | class TestKnownMembersEndpoint(FunctionalTest): |
|
| 3625 | # -*- coding: utf-8 -*- |
|
| 3626 | """ |
|
| 3627 | Tests for GET /api/v2/users/{user_id} |
|
| 3628 | """ |
|
| 3629 | fixtures = [BaseFixture] |
|
| 3630 | ||
| 3631 | def test_api__get_user__ok_200__admin__by_name(self): |
|
| 3632 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
| 3633 | admin = dbsession.query(models.User) \ |
|
| 3634 | .filter(models.User.email == '[email protected]') \ |
|
| 3635 | .one() |
|
| 3636 | uapi = UserApi( |
|
| 3637 | current_user=admin, |
|
| 3638 | session=dbsession, |
|
| 3639 | config=self.app_config, |
|
| 3640 | ) |
|
| 3641 | gapi = GroupApi( |
|
| 3642 | current_user=admin, |
|
| 3643 | session=dbsession, |
|
| 3644 | config=self.app_config, |
|
| 3645 | ) |
|
| 3646 | groups = [gapi.get_one_with_name('users')] |
|
| 3647 | test_user = uapi.create_user( |
|
| 3648 | email='[email protected]', |
|
| 3649 | password='pass', |
|
| 3650 | name='bob', |
|
| 3651 | groups=groups, |
|
| 3652 | timezone='Europe/Paris', |
|
| 3653 | lang='fr', |
|
| 3654 | do_save=True, |
|
| 3655 | do_notify=False, |
|
| 3656 | ) |
|
| 3657 | test_user2 = uapi.create_user( |
|
| 3658 | email='[email protected]', |
|
| 3659 | password='pass', |
|
| 3660 | name='bob2', |
|
| 3661 | groups=groups, |
|
| 3662 | timezone='Europe/Paris', |
|
| 3663 | lang='fr', |
|
| 3664 | do_save=True, |
|
| 3665 | do_notify=False, |
|
| 3666 | ) |
|
| 3667 | uapi.save(test_user) |
|
| 3668 | uapi.save(test_user2) |
|
| 3669 | transaction.commit() |
|
| 3670 | user_id = int(admin.user_id) |
|
| 3671 | ||
| 3672 | self.testapp.authorization = ( |
|
| 3673 | 'Basic', |
|
| 3674 | ( |
|
| 3675 | '[email protected]', |
|
| 3676 | '[email protected]' |
|
| 3677 | ) |
|
| 3678 | ) |
|
| 3679 | params = { |
|
| 3680 | 'acp': 'bob', |
|
| 3681 | } |
|
| 3682 | res = self.testapp.get( |
|
| 3683 | '/api/v2/users/{user_id}/known_members'.format(user_id=user_id), |
|
| 3684 | status=200, |
|
| 3685 | params=params, |
|
| 3686 | ) |
|
| 3687 | res = res.json_body |
|
| 3688 | assert len(res) == 2 |
|
| 3689 | assert res[0]['user_id'] == test_user.user_id |
|
| 3690 | assert res[0]['public_name'] == test_user.display_name |
|
| 3691 | assert res[0]['avatar_url'] is None |
|
| 3692 | ||
| 3693 | assert res[1]['user_id'] == test_user2.user_id |
|
| 3694 | assert res[1]['public_name'] == test_user2.display_name |
|
| 3695 | assert res[1]['avatar_url'] is None |
|
| 3696 | ||
| 3697 | def test_api__get_user__ok_200__admin__by_name__deactivated_members(self): |
|
| 3698 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
| 3699 | admin = dbsession.query(models.User) \ |
|
| 3700 | .filter(models.User.email == '[email protected]') \ |
|
| 3701 | .one() |
|
| 3702 | uapi = UserApi( |
|
| 3703 | current_user=admin, |
|
| 3704 | session=dbsession, |
|
| 3705 | config=self.app_config, |
|
| 3706 | ) |
|
| 3707 | gapi = GroupApi( |
|
| 3708 | current_user=admin, |
|
| 3709 | session=dbsession, |
|
| 3710 | config=self.app_config, |
|
| 3711 | ) |
|
| 3712 | groups = [gapi.get_one_with_name('users')] |
|
| 3713 | test_user = uapi.create_user( |
|
| 3714 | email='[email protected]', |
|
| 3715 | password='pass', |
|
| 3716 | name='bob', |
|
| 3717 | groups=groups, |
|
| 3718 | timezone='Europe/Paris', |
|
| 3719 | lang='fr', |
|
| 3720 | do_save=True, |
|
| 3721 | do_notify=False, |
|
| 3722 | ) |
|
| 3723 | test_user2 = uapi.create_user( |
|
| 3724 | email='[email protected]', |
|
| 3725 | password='pass', |
|
| 3726 | name='bob2', |
|
| 3727 | groups=groups, |
|
| 3728 | timezone='Europe/Paris', |
|
| 3729 | lang='fr', |
|
| 3730 | do_save=True, |
|
| 3731 | do_notify=False, |
|
| 3732 | ) |
|
| 3733 | test_user2.is_active = False |
|
| 3734 | uapi.save(test_user) |
|
| 3735 | uapi.save(test_user2) |
|
| 3736 | transaction.commit() |
|
| 3737 | user_id = int(admin.user_id) |
|
| 3738 | ||
| 3739 | self.testapp.authorization = ( |
|
| 3740 | 'Basic', |
|
| 3741 | ( |
|
| 3742 | '[email protected]', |
|
| 3743 | '[email protected]' |
|
| 3744 | ) |
|
| 3745 | ) |
|
| 3746 | params = { |
|
| 3747 | 'acp': 'bob', |
|
| 3748 | } |
|
| 3749 | res = self.testapp.get( |
|
| 3750 | '/api/v2/users/{user_id}/known_members'.format(user_id=user_id), |
|
| 3751 | status=200, |
|
| 3752 | params=params, |
|
| 3753 | ) |
|
| 3754 | res = res.json_body |
|
| 3755 | assert len(res) == 1 |
|
| 3756 | assert res[0]['user_id'] == test_user.user_id |
|
| 3757 | assert res[0]['public_name'] == test_user.display_name |
|
| 3758 | assert res[0]['avatar_url'] is None |
|
| 3759 | ||
| 3760 | def test_api__get_user__ok_200__admin__by_email(self): |
|
| 3761 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
| 3762 | admin = dbsession.query(models.User) \ |
|
| 3763 | .filter(models.User.email == '[email protected]') \ |
|
| 3764 | .one() |
|
| 3765 | uapi = UserApi( |
|
| 3766 | current_user=admin, |
|
| 3767 | session=dbsession, |
|
| 3768 | config=self.app_config, |
|
| 3769 | ) |
|
| 3770 | gapi = GroupApi( |
|
| 3771 | current_user=admin, |
|
| 3772 | session=dbsession, |
|
| 3773 | config=self.app_config, |
|
| 3774 | ) |
|
| 3775 | groups = [gapi.get_one_with_name('users')] |
|
| 3776 | test_user = uapi.create_user( |
|
| 3777 | email='[email protected]', |
|
| 3778 | password='pass', |
|
| 3779 | name='bob', |
|
| 3780 | groups=groups, |
|
| 3781 | timezone='Europe/Paris', |
|
| 3782 | lang='fr', |
|
| 3783 | do_save=True, |
|
| 3784 | do_notify=False, |
|
| 3785 | ) |
|
| 3786 | test_user2 = uapi.create_user( |
|
| 3787 | email='[email protected]', |
|
| 3788 | password='pass', |
|
| 3789 | name='bob2', |
|
| 3790 | groups=groups, |
|
| 3791 | timezone='Europe/Paris', |
|
| 3792 | lang='fr', |
|
| 3793 | do_save=True, |
|
| 3794 | do_notify=False, |
|
| 3795 | ) |
|
| 3796 | uapi.save(test_user) |
|
| 3797 | uapi.save(test_user2) |
|
| 3798 | transaction.commit() |
|
| 3799 | user_id = int(admin.user_id) |
|
| 3800 | ||
| 3801 | self.testapp.authorization = ( |
|
| 3802 | 'Basic', |
|
| 3803 | ( |
|
| 3804 | '[email protected]', |
|
| 3805 | '[email protected]' |
|
| 3806 | ) |
|
| 3807 | ) |
|
| 3808 | params = { |
|
| 3809 | 'acp': 'test', |
|
| 3810 | } |
|
| 3811 | res = self.testapp.get( |
|
| 3812 | '/api/v2/users/{user_id}/known_members'.format(user_id=user_id), |
|
| 3813 | status=200, |
|
| 3814 | params=params, |
|
| 3815 | ) |
|
| 3816 | res = res.json_body |
|
| 3817 | assert len(res) == 2 |
|
| 3818 | assert res[0]['user_id'] == test_user.user_id |
|
| 3819 | assert res[0]['public_name'] == test_user.display_name |
|
| 3820 | assert res[0]['avatar_url'] is None |
|
| 3821 | ||
| 3822 | assert res[1]['user_id'] == test_user2.user_id |
|
| 3823 | assert res[1]['public_name'] == test_user2.display_name |
|
| 3824 | assert res[1]['avatar_url'] is None |
|
| 3825 | ||
| 3826 | def test_api__get_user__err_403__admin__too_small_acp(self): |
|
| 3827 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
| 3828 | admin = dbsession.query(models.User) \ |
|
| 3829 | .filter(models.User.email == '[email protected]') \ |
|
| 3830 | .one() |
|
| 3831 | uapi = UserApi( |
|
| 3832 | current_user=admin, |
|
| 3833 | session=dbsession, |
|
| 3834 | config=self.app_config, |
|
| 3835 | ) |
|
| 3836 | gapi = GroupApi( |
|
| 3837 | current_user=admin, |
|
| 3838 | session=dbsession, |
|
| 3839 | config=self.app_config, |
|
| 3840 | ) |
|
| 3841 | groups = [gapi.get_one_with_name('users')] |
|
| 3842 | test_user = uapi.create_user( |
|
| 3843 | email='[email protected]', |
|
| 3844 | password='pass', |
|
| 3845 | name='bob', |
|
| 3846 | groups=groups, |
|
| 3847 | timezone='Europe/Paris', |
|
| 3848 | lang='fr', |
|
| 3849 | do_save=True, |
|
| 3850 | do_notify=False, |
|
| 3851 | ) |
|
| 3852 | test_user2 = uapi.create_user( |
|
| 3853 | email='[email protected]', |
|
| 3854 | password='pass', |
|
| 3855 | name='bob2', |
|
| 3856 | groups=groups, |
|
| 3857 | timezone='Europe/Paris', |
|
| 3858 | lang='fr', |
|
| 3859 | do_save=True, |
|
| 3860 | do_notify=False, |
|
| 3861 | ) |
|
| 3862 | uapi.save(test_user) |
|
| 3863 | transaction.commit() |
|
| 3864 | user_id = int(admin.user_id) |
|
| 3865 | ||
| 3866 | self.testapp.authorization = ( |
|
| 3867 | 'Basic', |
|
| 3868 | ( |
|
| 3869 | '[email protected]', |
|
| 3870 | '[email protected]' |
|
| 3871 | ) |
|
| 3872 | ) |
|
| 3873 | params = { |
|
| 3874 | 'acp': 't', |
|
| 3875 | } |
|
| 3876 | res = self.testapp.get( |
|
| 3877 | '/api/v2/users/{user_id}/known_members'.format(user_id=user_id), |
|
| 3878 | status=400, |
|
| 3879 | params=params |
|
| 3880 | ) |
|
| 3881 | assert isinstance(res.json, dict) |
|
| 3882 | assert 'code' in res.json.keys() |
|
| 3883 | assert res.json_body['code'] == error.GENERIC_SCHEMA_VALIDATION_ERROR # nopep8 |
|
| 3884 | ||
| 3885 | def test_api__get_user__ok_200__normal_user_by_email(self): |
|
| 3886 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
| 3887 | admin = dbsession.query(models.User) \ |
|
| 3888 | .filter(models.User.email == '[email protected]') \ |
|
| 3889 | .one() |
|
| 3890 | uapi = UserApi( |
|
| 3891 | current_user=admin, |
|
| 3892 | session=dbsession, |
|
| 3893 | config=self.app_config, |
|
| 3894 | ) |
|
| 3895 | gapi = GroupApi( |
|
| 3896 | current_user=admin, |
|
| 3897 | session=dbsession, |
|
| 3898 | config=self.app_config, |
|
| 3899 | ) |
|
| 3900 | groups = [gapi.get_one_with_name('users')] |
|
| 3901 | test_user = uapi.create_user( |
|
| 3902 | email='[email protected]', |
|
| 3903 | password='pass', |
|
| 3904 | name='bob', |
|
| 3905 | groups=groups, |
|
| 3906 | timezone='Europe/Paris', |
|
| 3907 | lang='fr', |
|
| 3908 | do_save=True, |
|
| 3909 | do_notify=False, |
|
| 3910 | ) |
|
| 3911 | test_user2 = uapi.create_user( |
|
| 3912 | email='[email protected]', |
|
| 3913 | password='pass', |
|
| 3914 | name='bob2', |
|
| 3915 | groups=groups, |
|
| 3916 | timezone='Europe/Paris', |
|
| 3917 | lang='fr', |
|
| 3918 | do_save=True, |
|
| 3919 | do_notify=False, |
|
| 3920 | ) |
|
| 3921 | test_user3 = uapi.create_user( |
|
| 3922 | email='[email protected]', |
|
| 3923 | password='pass', |
|
| 3924 | name='bob3', |
|
| 3925 | groups=groups, |
|
| 3926 | timezone='Europe/Paris', |
|
| 3927 | lang='fr', |
|
| 3928 | do_save=True, |
|
| 3929 | do_notify=False, |
|
| 3930 | ) |
|
| 3931 | uapi.save(test_user) |
|
| 3932 | uapi.save(test_user2) |
|
| 3933 | uapi.save(test_user3) |
|
| 3934 | workspace_api = WorkspaceApi( |
|
| 3935 | current_user=admin, |
|
| 3936 | session=dbsession, |
|
| 3937 | config=self.app_config |
|
| 3938 | ||
| 3939 | ) |
|
| 3940 | workspace = WorkspaceApi( |
|
| 3941 | current_user=admin, |
|
| 3942 | session=dbsession, |
|
| 3943 | config=self.app_config, |
|
| 3944 | ).create_workspace( |
|
| 3945 | 'test workspace', |
|
| 3946 | save_now=True |
|
| 3947 | ) |
|
| 3948 | role_api = RoleApi( |
|
| 3949 | current_user=admin, |
|
| 3950 | session=dbsession, |
|
| 3951 | config=self.app_config, |
|
| 3952 | ) |
|
| 3953 | role_api.create_one(test_user, workspace, UserRoleInWorkspace.READER, False) |
|
| 3954 | role_api.create_one(test_user2, workspace, UserRoleInWorkspace.READER, False) |
|
| 3955 | transaction.commit() |
|
| 3956 | user_id = int(test_user.user_id) |
|
| 3957 | ||
| 3958 | self.testapp.authorization = ( |
|
| 3959 | 'Basic', |
|
| 3960 | ( |
|
| 3961 | '[email protected]', |
|
| 3962 | 'pass' |
|
| 3963 | ) |
|
| 3964 | ) |
|
| 3965 | params = { |
|
| 3966 | 'acp': 'test', |
|
| 3967 | } |
|
| 3968 | res = self.testapp.get( |
|
| 3969 | '/api/v2/users/{user_id}/known_members'.format(user_id=user_id), |
|
| 3970 | status=200, |
|
| 3971 | params=params |
|
| 3972 | ) |
|
| 3973 | res = res.json_body |
|
| 3974 | assert len(res) == 2 |
|
| 3975 | assert res[0]['user_id'] == test_user.user_id |
|
| 3976 | assert res[0]['public_name'] == test_user.display_name |
|
| 3977 | assert res[0]['avatar_url'] is None |
|
| 3978 | ||
| 3979 | assert res[1]['user_id'] == test_user2.user_id |
|
| 3980 | assert res[1]['public_name'] == test_user2.display_name |
|
| 3981 | assert res[1]['avatar_url'] is None |
|
| 3982 | ||
| 3983 | ||
| 3984 | class TestSetEmailEndpoint(FunctionalTest): |
|
| @@ 1049-1406 (lines=358) @@ | ||
| 1046 | assert res['is_deleted'] is False |
|
| 1047 | ||
| 1048 | ||
| 1049 | class TestAccountKnownMembersEndpoint(FunctionalTest): |
|
| 1050 | # -*- coding: utf-8 -*- |
|
| 1051 | """ |
|
| 1052 | Tests for GET /api/v2/users/me |
|
| 1053 | """ |
|
| 1054 | fixtures = [BaseFixture] |
|
| 1055 | ||
| 1056 | def test_api__get_user__ok_200__admin__by_name(self): |
|
| 1057 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
| 1058 | admin = dbsession.query(models.User) \ |
|
| 1059 | .filter(models.User.email == '[email protected]') \ |
|
| 1060 | .one() |
|
| 1061 | uapi = UserApi( |
|
| 1062 | current_user=admin, |
|
| 1063 | session=dbsession, |
|
| 1064 | config=self.app_config, |
|
| 1065 | ) |
|
| 1066 | gapi = GroupApi( |
|
| 1067 | current_user=admin, |
|
| 1068 | session=dbsession, |
|
| 1069 | config=self.app_config, |
|
| 1070 | ) |
|
| 1071 | groups = [gapi.get_one_with_name('users')] |
|
| 1072 | test_user = uapi.create_user( |
|
| 1073 | email='[email protected]', |
|
| 1074 | password='pass', |
|
| 1075 | name='bob', |
|
| 1076 | groups=groups, |
|
| 1077 | timezone='Europe/Paris', |
|
| 1078 | lang='fr', |
|
| 1079 | do_save=True, |
|
| 1080 | do_notify=False, |
|
| 1081 | ) |
|
| 1082 | test_user2 = uapi.create_user( |
|
| 1083 | email='[email protected]', |
|
| 1084 | password='pass', |
|
| 1085 | name='bob2', |
|
| 1086 | groups=groups, |
|
| 1087 | timezone='Europe/Paris', |
|
| 1088 | lang='fr', |
|
| 1089 | do_save=True, |
|
| 1090 | do_notify=False, |
|
| 1091 | ) |
|
| 1092 | uapi.save(test_user) |
|
| 1093 | uapi.save(test_user2) |
|
| 1094 | transaction.commit() |
|
| 1095 | user_id = int(admin.user_id) |
|
| 1096 | ||
| 1097 | self.testapp.authorization = ( |
|
| 1098 | 'Basic', |
|
| 1099 | ( |
|
| 1100 | '[email protected]', |
|
| 1101 | '[email protected]' |
|
| 1102 | ) |
|
| 1103 | ) |
|
| 1104 | params = { |
|
| 1105 | 'acp': 'bob', |
|
| 1106 | } |
|
| 1107 | res = self.testapp.get( |
|
| 1108 | '/api/v2/users/me/known_members'.format(user_id=user_id), |
|
| 1109 | status=200, |
|
| 1110 | params=params, |
|
| 1111 | ) |
|
| 1112 | res = res.json_body |
|
| 1113 | assert len(res) == 2 |
|
| 1114 | assert res[0]['user_id'] == test_user.user_id |
|
| 1115 | assert res[0]['public_name'] == test_user.display_name |
|
| 1116 | assert res[0]['avatar_url'] is None |
|
| 1117 | ||
| 1118 | assert res[1]['user_id'] == test_user2.user_id |
|
| 1119 | assert res[1]['public_name'] == test_user2.display_name |
|
| 1120 | assert res[1]['avatar_url'] is None |
|
| 1121 | ||
| 1122 | def test_api__get_user__ok_200__admin__by_name__deactivated_members(self): |
|
| 1123 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
| 1124 | admin = dbsession.query(models.User) \ |
|
| 1125 | .filter(models.User.email == '[email protected]') \ |
|
| 1126 | .one() |
|
| 1127 | uapi = UserApi( |
|
| 1128 | current_user=admin, |
|
| 1129 | session=dbsession, |
|
| 1130 | config=self.app_config, |
|
| 1131 | ) |
|
| 1132 | gapi = GroupApi( |
|
| 1133 | current_user=admin, |
|
| 1134 | session=dbsession, |
|
| 1135 | config=self.app_config, |
|
| 1136 | ) |
|
| 1137 | groups = [gapi.get_one_with_name('users')] |
|
| 1138 | test_user = uapi.create_user( |
|
| 1139 | email='[email protected]', |
|
| 1140 | password='pass', |
|
| 1141 | name='bob', |
|
| 1142 | groups=groups, |
|
| 1143 | timezone='Europe/Paris', |
|
| 1144 | lang='fr', |
|
| 1145 | do_save=True, |
|
| 1146 | do_notify=False, |
|
| 1147 | ) |
|
| 1148 | test_user2 = uapi.create_user( |
|
| 1149 | email='[email protected]', |
|
| 1150 | password='pass', |
|
| 1151 | name='bob2', |
|
| 1152 | groups=groups, |
|
| 1153 | timezone='Europe/Paris', |
|
| 1154 | lang='fr', |
|
| 1155 | do_save=True, |
|
| 1156 | do_notify=False, |
|
| 1157 | ) |
|
| 1158 | test_user2.is_active = False |
|
| 1159 | uapi.save(test_user) |
|
| 1160 | uapi.save(test_user2) |
|
| 1161 | transaction.commit() |
|
| 1162 | user_id = int(admin.user_id) |
|
| 1163 | ||
| 1164 | self.testapp.authorization = ( |
|
| 1165 | 'Basic', |
|
| 1166 | ( |
|
| 1167 | '[email protected]', |
|
| 1168 | '[email protected]' |
|
| 1169 | ) |
|
| 1170 | ) |
|
| 1171 | params = { |
|
| 1172 | 'acp': 'bob', |
|
| 1173 | } |
|
| 1174 | res = self.testapp.get( |
|
| 1175 | '/api/v2/users/me/known_members'.format(user_id=user_id), |
|
| 1176 | status=200, |
|
| 1177 | params=params, |
|
| 1178 | ) |
|
| 1179 | res = res.json_body |
|
| 1180 | assert len(res) == 1 |
|
| 1181 | assert res[0]['user_id'] == test_user.user_id |
|
| 1182 | assert res[0]['public_name'] == test_user.display_name |
|
| 1183 | assert res[0]['avatar_url'] is None |
|
| 1184 | ||
| 1185 | def test_api__get_user__ok_200__admin__by_email(self): |
|
| 1186 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
| 1187 | admin = dbsession.query(models.User) \ |
|
| 1188 | .filter(models.User.email == '[email protected]') \ |
|
| 1189 | .one() |
|
| 1190 | uapi = UserApi( |
|
| 1191 | current_user=admin, |
|
| 1192 | session=dbsession, |
|
| 1193 | config=self.app_config, |
|
| 1194 | ) |
|
| 1195 | gapi = GroupApi( |
|
| 1196 | current_user=admin, |
|
| 1197 | session=dbsession, |
|
| 1198 | config=self.app_config, |
|
| 1199 | ) |
|
| 1200 | groups = [gapi.get_one_with_name('users')] |
|
| 1201 | test_user = uapi.create_user( |
|
| 1202 | email='[email protected]', |
|
| 1203 | password='pass', |
|
| 1204 | name='bob', |
|
| 1205 | groups=groups, |
|
| 1206 | timezone='Europe/Paris', |
|
| 1207 | lang='fr', |
|
| 1208 | do_save=True, |
|
| 1209 | do_notify=False, |
|
| 1210 | ) |
|
| 1211 | test_user2 = uapi.create_user( |
|
| 1212 | email='[email protected]', |
|
| 1213 | password='pass', |
|
| 1214 | name='bob2', |
|
| 1215 | groups=groups, |
|
| 1216 | timezone='Europe/Paris', |
|
| 1217 | lang='fr', |
|
| 1218 | do_save=True, |
|
| 1219 | do_notify=False, |
|
| 1220 | ) |
|
| 1221 | uapi.save(test_user) |
|
| 1222 | uapi.save(test_user2) |
|
| 1223 | transaction.commit() |
|
| 1224 | user_id = int(admin.user_id) |
|
| 1225 | ||
| 1226 | self.testapp.authorization = ( |
|
| 1227 | 'Basic', |
|
| 1228 | ( |
|
| 1229 | '[email protected]', |
|
| 1230 | '[email protected]' |
|
| 1231 | ) |
|
| 1232 | ) |
|
| 1233 | params = { |
|
| 1234 | 'acp': 'test', |
|
| 1235 | } |
|
| 1236 | res = self.testapp.get( |
|
| 1237 | '/api/v2/users/me/known_members'.format(user_id=user_id), |
|
| 1238 | status=200, |
|
| 1239 | params=params, |
|
| 1240 | ) |
|
| 1241 | res = res.json_body |
|
| 1242 | assert len(res) == 2 |
|
| 1243 | assert res[0]['user_id'] == test_user.user_id |
|
| 1244 | assert res[0]['public_name'] == test_user.display_name |
|
| 1245 | assert res[0]['avatar_url'] is None |
|
| 1246 | ||
| 1247 | assert res[1]['user_id'] == test_user2.user_id |
|
| 1248 | assert res[1]['public_name'] == test_user2.display_name |
|
| 1249 | assert res[1]['avatar_url'] is None |
|
| 1250 | ||
| 1251 | def test_api__get_user__err_403__admin__too_small_acp(self): |
|
| 1252 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
| 1253 | admin = dbsession.query(models.User) \ |
|
| 1254 | .filter(models.User.email == '[email protected]') \ |
|
| 1255 | .one() |
|
| 1256 | uapi = UserApi( |
|
| 1257 | current_user=admin, |
|
| 1258 | session=dbsession, |
|
| 1259 | config=self.app_config, |
|
| 1260 | ) |
|
| 1261 | gapi = GroupApi( |
|
| 1262 | current_user=admin, |
|
| 1263 | session=dbsession, |
|
| 1264 | config=self.app_config, |
|
| 1265 | ) |
|
| 1266 | groups = [gapi.get_one_with_name('users')] |
|
| 1267 | test_user = uapi.create_user( |
|
| 1268 | email='[email protected]', |
|
| 1269 | password='pass', |
|
| 1270 | name='bob', |
|
| 1271 | groups=groups, |
|
| 1272 | timezone='Europe/Paris', |
|
| 1273 | lang='fr', |
|
| 1274 | do_save=True, |
|
| 1275 | do_notify=False, |
|
| 1276 | ) |
|
| 1277 | test_user2 = uapi.create_user( |
|
| 1278 | email='[email protected]', |
|
| 1279 | password='pass', |
|
| 1280 | name='bob2', |
|
| 1281 | groups=groups, |
|
| 1282 | timezone='Europe/Paris', |
|
| 1283 | lang='fr', |
|
| 1284 | do_save=True, |
|
| 1285 | do_notify=False, |
|
| 1286 | ) |
|
| 1287 | uapi.save(test_user) |
|
| 1288 | transaction.commit() |
|
| 1289 | user_id = int(admin.user_id) |
|
| 1290 | ||
| 1291 | self.testapp.authorization = ( |
|
| 1292 | 'Basic', |
|
| 1293 | ( |
|
| 1294 | '[email protected]', |
|
| 1295 | '[email protected]' |
|
| 1296 | ) |
|
| 1297 | ) |
|
| 1298 | params = { |
|
| 1299 | 'acp': 't', |
|
| 1300 | } |
|
| 1301 | res = self.testapp.get( |
|
| 1302 | '/api/v2/users/me/known_members'.format(user_id=user_id), |
|
| 1303 | status=400, |
|
| 1304 | params=params |
|
| 1305 | ) |
|
| 1306 | assert isinstance(res.json, dict) |
|
| 1307 | assert 'code' in res.json.keys() |
|
| 1308 | assert res.json_body['code'] == error.GENERIC_SCHEMA_VALIDATION_ERROR # nopep8 |
|
| 1309 | ||
| 1310 | def test_api__get_user__ok_200__normal_user_by_email(self): |
|
| 1311 | dbsession = get_tm_session(self.session_factory, transaction.manager) |
|
| 1312 | admin = dbsession.query(models.User) \ |
|
| 1313 | .filter(models.User.email == '[email protected]') \ |
|
| 1314 | .one() |
|
| 1315 | uapi = UserApi( |
|
| 1316 | current_user=admin, |
|
| 1317 | session=dbsession, |
|
| 1318 | config=self.app_config, |
|
| 1319 | ) |
|
| 1320 | gapi = GroupApi( |
|
| 1321 | current_user=admin, |
|
| 1322 | session=dbsession, |
|
| 1323 | config=self.app_config, |
|
| 1324 | ) |
|
| 1325 | groups = [gapi.get_one_with_name('users')] |
|
| 1326 | test_user = uapi.create_user( |
|
| 1327 | email='[email protected]', |
|
| 1328 | password='pass', |
|
| 1329 | name='bob', |
|
| 1330 | groups=groups, |
|
| 1331 | timezone='Europe/Paris', |
|
| 1332 | lang='fr', |
|
| 1333 | do_save=True, |
|
| 1334 | do_notify=False, |
|
| 1335 | ) |
|
| 1336 | test_user2 = uapi.create_user( |
|
| 1337 | email='[email protected]', |
|
| 1338 | password='pass', |
|
| 1339 | name='bob2', |
|
| 1340 | groups=groups, |
|
| 1341 | timezone='Europe/Paris', |
|
| 1342 | lang='fr', |
|
| 1343 | do_save=True, |
|
| 1344 | do_notify=False, |
|
| 1345 | ) |
|
| 1346 | test_user3 = uapi.create_user( |
|
| 1347 | email='[email protected]', |
|
| 1348 | password='pass', |
|
| 1349 | name='bob3', |
|
| 1350 | groups=groups, |
|
| 1351 | timezone='Europe/Paris', |
|
| 1352 | lang='fr', |
|
| 1353 | do_save=True, |
|
| 1354 | do_notify=False, |
|
| 1355 | ) |
|
| 1356 | uapi.save(test_user) |
|
| 1357 | uapi.save(test_user2) |
|
| 1358 | uapi.save(test_user3) |
|
| 1359 | workspace_api = WorkspaceApi( |
|
| 1360 | current_user=admin, |
|
| 1361 | session=dbsession, |
|
| 1362 | config=self.app_config |
|
| 1363 | ||
| 1364 | ) |
|
| 1365 | workspace = WorkspaceApi( |
|
| 1366 | current_user=admin, |
|
| 1367 | session=dbsession, |
|
| 1368 | config=self.app_config, |
|
| 1369 | ).create_workspace( |
|
| 1370 | 'test workspace', |
|
| 1371 | save_now=True |
|
| 1372 | ) |
|
| 1373 | role_api = RoleApi( |
|
| 1374 | current_user=admin, |
|
| 1375 | session=dbsession, |
|
| 1376 | config=self.app_config, |
|
| 1377 | ) |
|
| 1378 | role_api.create_one(test_user, workspace, UserRoleInWorkspace.READER, False) |
|
| 1379 | role_api.create_one(test_user2, workspace, UserRoleInWorkspace.READER, False) |
|
| 1380 | transaction.commit() |
|
| 1381 | user_id = int(test_user.user_id) |
|
| 1382 | ||
| 1383 | self.testapp.authorization = ( |
|
| 1384 | 'Basic', |
|
| 1385 | ( |
|
| 1386 | '[email protected]', |
|
| 1387 | 'pass' |
|
| 1388 | ) |
|
| 1389 | ) |
|
| 1390 | params = { |
|
| 1391 | 'acp': 'test', |
|
| 1392 | } |
|
| 1393 | res = self.testapp.get( |
|
| 1394 | '/api/v2/users/me/known_members'.format(user_id=user_id), |
|
| 1395 | status=200, |
|
| 1396 | params=params |
|
| 1397 | ) |
|
| 1398 | res = res.json_body |
|
| 1399 | assert len(res) == 2 |
|
| 1400 | assert res[0]['user_id'] == test_user.user_id |
|
| 1401 | assert res[0]['public_name'] == test_user.display_name |
|
| 1402 | assert res[0]['avatar_url'] is None |
|
| 1403 | ||
| 1404 | assert res[1]['user_id'] == test_user2.user_id |
|
| 1405 | assert res[1]['public_name'] == test_user2.display_name |
|
| 1406 | assert res[1]['avatar_url'] is None |
|
| 1407 | ||
| 1408 | ||
| 1409 | class TestSetEmailEndpoint(FunctionalTest): |
|