| @@ 3012-3171 (lines=160) @@ | ||
| 3009 | assert content3.label == 'index' | |
| 3010 | assert content2_nb_rev == len(content3.revisions) | |
| 3011 | ||
| 3012 | def test_archive_unarchive(self): | |
| 3013 | uapi = UserApi( | |
| 3014 | session=self.session, | |
| 3015 | config=self.app_config, | |
| 3016 | current_user=None, | |
| 3017 | ) | |
| 3018 | group_api = GroupApi( | |
| 3019 | current_user=None, | |
| 3020 | session=self.session, | |
| 3021 | config=self.app_config, | |
| 3022 | ) | |
| 3023 | groups = [group_api.get_one(Group.TIM_USER), | |
| 3024 | group_api.get_one(Group.TIM_MANAGER), | |
| 3025 | group_api.get_one(Group.TIM_ADMIN)] | |
| 3026 | ||
| 3027 | user1 = uapi.create_minimal_user( | |
| 3028 | email='this.is@user', | |
| 3029 | groups=groups, | |
| 3030 | save_now=True | |
| 3031 | ) | |
| 3032 | u1id = user1.user_id | |
| 3033 | ||
| 3034 | workspace_api = WorkspaceApi( | |
| 3035 | current_user=user1, | |
| 3036 | session=self.session, | |
| 3037 | config=self.app_config, | |
| 3038 | ) | |
| 3039 | workspace = workspace_api.create_workspace( | |
| 3040 | 'test workspace', | |
| 3041 | save_now=True | |
| 3042 | ) | |
| 3043 | wid = workspace.workspace_id | |
| 3044 | ||
| 3045 |         user2 = uapi.create_minimal_user('[email protected]') | |
| 3046 | uapi.save(user2) | |
| 3047 | ||
| 3048 | RoleApi( | |
| 3049 | current_user=user1, | |
| 3050 | session=self.session, | |
| 3051 | config=self.app_config, | |
| 3052 | ).create_one( | |
| 3053 | user2, | |
| 3054 | workspace, | |
| 3055 | UserRoleInWorkspace.CONTENT_MANAGER, | |
| 3056 | with_notif=True, | |
| 3057 | flush=True | |
| 3058 | ) | |
| 3059 | ||
| 3060 | # show archived is used at the top end of the test | |
| 3061 | api = ContentApi( | |
| 3062 | current_user=user1, | |
| 3063 | session=self.session, | |
| 3064 | show_archived=True, | |
| 3065 | config=self.app_config, | |
| 3066 | ) | |
| 3067 | p = api.create( | |
| 3068 | content_type_slug=content_type_list.File.slug, | |
| 3069 | workspace=workspace, | |
| 3070 | parent=None, | |
| 3071 | label='this_is_a_page', | |
| 3072 | do_save=True | |
| 3073 | ) | |
| 3074 | ||
| 3075 | u1id = user1.user_id | |
| 3076 | u2id = user2.user_id | |
| 3077 | pcid = p.content_id | |
| 3078 | poid = p.owner_id | |
| 3079 | ||
| 3080 | transaction.commit() | |
| 3081 | ||
| 3082 | #### | |
| 3083 | ||
| 3084 | # refresh after commit | |
| 3085 | user1 = UserApi( | |
| 3086 | current_user=None, | |
| 3087 | config=self.app_config, | |
| 3088 | session=self.session | |
| 3089 | ).get_one(u1id) | |
| 3090 | workspace = WorkspaceApi( | |
| 3091 | current_user=user1, | |
| 3092 | session=self.session, | |
| 3093 | config=self.app_config, | |
| 3094 | ).get_one(wid) | |
| 3095 | ||
| 3096 | content = api.get_one(pcid, content_type_list.Any_SLUG, workspace) | |
| 3097 | eq_(u1id, content.owner_id) | |
| 3098 | eq_(poid, content.owner_id) | |
| 3099 | ||
| 3100 | u2api = UserApi( | |
| 3101 | session=self.session, | |
| 3102 | config=self.app_config, | |
| 3103 | current_user=None, | |
| 3104 | ) | |
| 3105 | u2 = u2api.get_one(u2id) | |
| 3106 | api2 = ContentApi( | |
| 3107 | current_user=u2, | |
| 3108 | session=self.session, | |
| 3109 | config=self.app_config, | |
| 3110 | show_archived=True, | |
| 3111 | ) | |
| 3112 | content2 = api2.get_one(pcid, content_type_list.Any_SLUG, workspace) | |
| 3113 | with new_revision( | |
| 3114 | session=self.session, | |
| 3115 | tm=transaction.manager, | |
| 3116 | content=content2, | |
| 3117 | ): | |
| 3118 | api2.archive(content2) | |
| 3119 | api2.save(content2) | |
| 3120 | transaction.commit() | |
| 3121 | ||
| 3122 | # refresh after commit | |
| 3123 | user1 = UserApi( | |
| 3124 | current_user=None, | |
| 3125 | session=self.session, | |
| 3126 | config=self.app_config, | |
| 3127 | ).get_one(u1id) | |
| 3128 | workspace = WorkspaceApi( | |
| 3129 | current_user=user1, | |
| 3130 | session=self.session, | |
| 3131 | config=self.app_config, | |
| 3132 | ).get_one(wid) | |
| 3133 | u2 = UserApi( | |
| 3134 | current_user=None, | |
| 3135 | session=self.session, | |
| 3136 | config=self.app_config, | |
| 3137 | ).get_one(u2id) | |
| 3138 | api = ContentApi( | |
| 3139 | current_user=user1, | |
| 3140 | session=self.session, | |
| 3141 | config=self.app_config, | |
| 3142 | show_archived=True, | |
| 3143 | ) | |
| 3144 | api2 = ContentApi( | |
| 3145 | current_user=u2, | |
| 3146 | session=self.session, | |
| 3147 | config=self.app_config, | |
| 3148 | show_archived=True, | |
| 3149 | ) | |
| 3150 | ||
| 3151 | updated = api2.get_one(pcid, content_type_list.Any_SLUG, workspace) | |
| 3152 | eq_(u2id, updated.owner_id, | |
| 3153 |             'the owner id should be {} (found {})'.format(u2id, | |
| 3154 | updated.owner_id)) | |
| 3155 | eq_(True, updated.is_archived) | |
| 3156 | eq_(ActionDescription.ARCHIVING, updated.revision_type) | |
| 3157 | ||
| 3158 | #### | |
| 3159 | ||
| 3160 | updated2 = api.get_one(pcid, content_type_list.Any_SLUG, workspace) | |
| 3161 | with new_revision( | |
| 3162 | session=self.session, | |
| 3163 | tm=transaction.manager, | |
| 3164 | content=updated, | |
| 3165 | ||
| 3166 | ): | |
| 3167 | api.unarchive(updated) | |
| 3168 | api.save(updated2) | |
| 3169 | eq_(False, updated2.is_archived) | |
| 3170 | eq_(ActionDescription.UNARCHIVING, updated2.revision_type) | |
| 3171 | eq_(u1id, updated2.owner_id) | |
| 3172 | ||
| 3173 | def test_delete_undelete(self): | |
| 3174 | uapi = UserApi( | |
| @@ 3173-3330 (lines=158) @@ | ||
| 3170 | eq_(ActionDescription.UNARCHIVING, updated2.revision_type) | |
| 3171 | eq_(u1id, updated2.owner_id) | |
| 3172 | ||
| 3173 | def test_delete_undelete(self): | |
| 3174 | uapi = UserApi( | |
| 3175 | session=self.session, | |
| 3176 | config=self.app_config, | |
| 3177 | current_user=None, | |
| 3178 | ) | |
| 3179 | group_api = GroupApi( | |
| 3180 | current_user=None, | |
| 3181 | session=self.session, | |
| 3182 | config=self.app_config, | |
| 3183 | ) | |
| 3184 | groups = [group_api.get_one(Group.TIM_USER), | |
| 3185 | group_api.get_one(Group.TIM_MANAGER), | |
| 3186 | group_api.get_one(Group.TIM_ADMIN)] | |
| 3187 | ||
| 3188 | user1 = uapi.create_minimal_user( | |
| 3189 | email='this.is@user', | |
| 3190 | groups=groups, | |
| 3191 | save_now=True | |
| 3192 | ) | |
| 3193 | u1id = user1.user_id | |
| 3194 | ||
| 3195 | workspace_api = WorkspaceApi( | |
| 3196 | current_user=user1, | |
| 3197 | session=self.session, | |
| 3198 | config=self.app_config, | |
| 3199 | ) | |
| 3200 | workspace = workspace_api.create_workspace( | |
| 3201 | 'test workspace', | |
| 3202 | save_now=True | |
| 3203 | ) | |
| 3204 | wid = workspace.workspace_id | |
| 3205 | ||
| 3206 |         user2 = uapi.create_minimal_user('[email protected]') | |
| 3207 | uapi.save(user2) | |
| 3208 | ||
| 3209 | RoleApi( | |
| 3210 | current_user=user1, | |
| 3211 | session=self.session, | |
| 3212 | config=self.app_config, | |
| 3213 | ).create_one( | |
| 3214 | user2, | |
| 3215 | workspace, | |
| 3216 | UserRoleInWorkspace.CONTENT_MANAGER, | |
| 3217 | with_notif=True, | |
| 3218 | flush=True | |
| 3219 | ) | |
| 3220 | ||
| 3221 | # show archived is used at the top end of the test | |
| 3222 | api = ContentApi( | |
| 3223 | current_user=user1, | |
| 3224 | session=self.session, | |
| 3225 | config=self.app_config, | |
| 3226 | show_deleted=True, | |
| 3227 | ) | |
| 3228 | p = api.create( | |
| 3229 | content_type_slug=content_type_list.File.slug, | |
| 3230 | workspace=workspace, | |
| 3231 | parent=None, | |
| 3232 | label='this_is_a_page', | |
| 3233 | do_save=True | |
| 3234 | ) | |
| 3235 | ||
| 3236 | u1id = user1.user_id | |
| 3237 | u2id = user2.user_id | |
| 3238 | pcid = p.content_id | |
| 3239 | poid = p.owner_id | |
| 3240 | ||
| 3241 | transaction.commit() | |
| 3242 | ||
| 3243 | #### | |
| 3244 | user1 = UserApi( | |
| 3245 | current_user=None, | |
| 3246 | session=self.session, | |
| 3247 | config=self.app_config, | |
| 3248 | ).get_one(u1id) | |
| 3249 | workspace = WorkspaceApi( | |
| 3250 | current_user=user1, | |
| 3251 | session=self.session, | |
| 3252 | config=self.app_config, | |
| 3253 | ).get_one(wid) | |
| 3254 | ||
| 3255 | content = api.get_one(pcid, content_type_list.Any_SLUG, workspace) | |
| 3256 | eq_(u1id, content.owner_id) | |
| 3257 | eq_(poid, content.owner_id) | |
| 3258 | ||
| 3259 | u2 = UserApi( | |
| 3260 | current_user=None, | |
| 3261 | session=self.session, | |
| 3262 | config=self.app_config, | |
| 3263 | ).get_one(u2id) | |
| 3264 | api2 = ContentApi( | |
| 3265 | current_user=u2, | |
| 3266 | session=self.session, | |
| 3267 | config=self.app_config, | |
| 3268 | show_deleted=True, | |
| 3269 | ) | |
| 3270 | content2 = api2.get_one(pcid, content_type_list.Any_SLUG, workspace) | |
| 3271 | with new_revision( | |
| 3272 | session=self.session, | |
| 3273 | tm=transaction.manager, | |
| 3274 | content=content2, | |
| 3275 | ): | |
| 3276 | api2.delete(content2) | |
| 3277 | api2.save(content2) | |
| 3278 | transaction.commit() | |
| 3279 | ||
| 3280 | #### | |
| 3281 | ||
| 3282 | user1 = UserApi( | |
| 3283 | current_user=None, | |
| 3284 | session=self.session, | |
| 3285 | config=self.app_config, | |
| 3286 | ).get_one(u1id) | |
| 3287 | workspace = WorkspaceApi( | |
| 3288 | current_user=user1, | |
| 3289 | session=self.session, | |
| 3290 | config=self.app_config, | |
| 3291 | ).get_one(wid) | |
| 3292 | # show archived is used at the top end of the test | |
| 3293 | api = ContentApi( | |
| 3294 | current_user=user1, | |
| 3295 | session=self.session, | |
| 3296 | config=self.app_config, | |
| 3297 | show_deleted=True, | |
| 3298 | ) | |
| 3299 | u2 = UserApi( | |
| 3300 | current_user=None, | |
| 3301 | session=self.session, | |
| 3302 | config=self.app_config, | |
| 3303 | ).get_one(u2id) | |
| 3304 | api2 = ContentApi( | |
| 3305 | current_user=u2, | |
| 3306 | session=self.session, | |
| 3307 | config=self.app_config, | |
| 3308 | show_deleted=True | |
| 3309 | ) | |
| 3310 | ||
| 3311 | updated = api2.get_one(pcid, content_type_list.Any_SLUG, workspace) | |
| 3312 | eq_(u2id, updated.owner_id, | |
| 3313 |             'the owner id should be {} (found {})'.format(u2id, | |
| 3314 | updated.owner_id)) | |
| 3315 | eq_(True, updated.is_deleted) | |
| 3316 | eq_(ActionDescription.DELETION, updated.revision_type) | |
| 3317 | ||
| 3318 | #### | |
| 3319 | ||
| 3320 | updated2 = api.get_one(pcid, content_type_list.Any_SLUG, workspace) | |
| 3321 | with new_revision( | |
| 3322 | tm=transaction.manager, | |
| 3323 | session=self.session, | |
| 3324 | content=updated2, | |
| 3325 | ): | |
| 3326 | api.undelete(updated2) | |
| 3327 | api.save(updated2) | |
| 3328 | eq_(False, updated2.is_deleted) | |
| 3329 | eq_(ActionDescription.UNDELETION, updated2.revision_type) | |
| 3330 | eq_(u1id, updated2.owner_id) | |
| 3331 | ||
| 3332 | def test_unit__get_last_active__ok__nominal_case(self): | |
| 3333 | uapi = UserApi( | |