@@ 2227-2347 (lines=121) @@ | ||
2224 | assert content3.label == 'this_is_a_page' |
|
2225 | assert content2_nb_rev == len(content3.revisions) |
|
2226 | ||
2227 | def test_unit__update__err__label_dont_change(self): |
|
2228 | uapi = UserApi( |
|
2229 | session=self.session, |
|
2230 | config=self.app_config, |
|
2231 | current_user=None, |
|
2232 | ) |
|
2233 | group_api = GroupApi( |
|
2234 | current_user=None, |
|
2235 | session=self.session, |
|
2236 | config=self.app_config, |
|
2237 | ) |
|
2238 | groups = [group_api.get_one(Group.TIM_USER), |
|
2239 | group_api.get_one(Group.TIM_MANAGER), |
|
2240 | group_api.get_one(Group.TIM_ADMIN)] |
|
2241 | ||
2242 | user1 = uapi.create_minimal_user( |
|
2243 | email='this.is@user', |
|
2244 | groups=groups, |
|
2245 | save_now=True |
|
2246 | ) |
|
2247 | ||
2248 | workspace_api = WorkspaceApi( |
|
2249 | current_user=user1, |
|
2250 | session=self.session, |
|
2251 | config=self.app_config, |
|
2252 | ) |
|
2253 | workspace = workspace_api.create_workspace( |
|
2254 | 'test workspace', |
|
2255 | save_now=True |
|
2256 | ) |
|
2257 | ||
2258 | wid = workspace.workspace_id |
|
2259 | ||
2260 | user2 = uapi.create_minimal_user('[email protected]') |
|
2261 | uapi.save(user2) |
|
2262 | ||
2263 | RoleApi( |
|
2264 | current_user=user1, |
|
2265 | session=self.session, |
|
2266 | config=self.app_config, |
|
2267 | ).create_one( |
|
2268 | user2, |
|
2269 | workspace, |
|
2270 | UserRoleInWorkspace.CONTENT_MANAGER, |
|
2271 | with_notif=False, |
|
2272 | flush=True |
|
2273 | ) |
|
2274 | ||
2275 | # Test starts here |
|
2276 | ||
2277 | api = ContentApi( |
|
2278 | current_user=user1, |
|
2279 | session=self.session, |
|
2280 | config=self.app_config, |
|
2281 | ) |
|
2282 | ||
2283 | p = api.create( |
|
2284 | content_type_slug=content_type_list.Page.slug, |
|
2285 | workspace=workspace, |
|
2286 | parent=None, |
|
2287 | label='this_is_a_page', |
|
2288 | do_save=True |
|
2289 | ) |
|
2290 | p2 = api.create( |
|
2291 | content_type_slug=content_type_list.Page.slug, |
|
2292 | workspace=workspace, |
|
2293 | parent=None, |
|
2294 | label='this_is_a_page2', |
|
2295 | do_save=True |
|
2296 | ) |
|
2297 | u1id = user1.user_id |
|
2298 | u2id = user2.user_id |
|
2299 | pcid = p.content_id |
|
2300 | poid = p.owner_id |
|
2301 | ||
2302 | transaction.commit() |
|
2303 | ||
2304 | # Refresh instances after commit |
|
2305 | user1 = uapi.get_one(u1id) |
|
2306 | workspace = WorkspaceApi( |
|
2307 | current_user=user1, |
|
2308 | session=self.session, |
|
2309 | config=self.app_config, |
|
2310 | ).get_one(wid) |
|
2311 | api = ContentApi( |
|
2312 | current_user=user1, |
|
2313 | session=self.session, |
|
2314 | config=self.app_config, |
|
2315 | ) |
|
2316 | ||
2317 | content = api.get_one(pcid, content_type_list.Any_SLUG, workspace) |
|
2318 | eq_(u1id, content.owner_id) |
|
2319 | eq_(poid, content.owner_id) |
|
2320 | ||
2321 | u2 = UserApi( |
|
2322 | session=self.session, |
|
2323 | config=self.app_config, |
|
2324 | current_user=None, |
|
2325 | ).get_one(u2id) |
|
2326 | api2 = ContentApi( |
|
2327 | current_user=u2, |
|
2328 | session=self.session, |
|
2329 | config=self.app_config, |
|
2330 | ) |
|
2331 | content2 = api2.get_one(pcid, content_type_list.Any_SLUG, workspace) |
|
2332 | content2_nb_rev = len(content2.revisions) |
|
2333 | with pytest.raises(SameValueError): |
|
2334 | with new_revision( |
|
2335 | session=self.session, |
|
2336 | tm=transaction.manager, |
|
2337 | content=content2, |
|
2338 | ): |
|
2339 | api2.update_content( |
|
2340 | content2, |
|
2341 | 'this_is_a_page', |
|
2342 | '' |
|
2343 | ) |
|
2344 | api2.save(content2) |
|
2345 | content3 = api2.get_one(pcid, content_type_list.Any_SLUG, workspace) |
|
2346 | assert content3.label == 'this_is_a_page' |
|
2347 | assert content2_nb_rev == len(content3.revisions) |
|
2348 | ||
2349 | ||
2350 | def test_update_no_change(self): |
|
@@ 2105-2225 (lines=121) @@ | ||
2102 | assert content3.label == 'this_is_a_page' |
|
2103 | assert content2_nb_rev == len(content3.revisions) |
|
2104 | ||
2105 | def test_unit__update__err__label_already_used(self): |
|
2106 | uapi = UserApi( |
|
2107 | session=self.session, |
|
2108 | config=self.app_config, |
|
2109 | current_user=None, |
|
2110 | ) |
|
2111 | group_api = GroupApi( |
|
2112 | current_user=None, |
|
2113 | session=self.session, |
|
2114 | config=self.app_config, |
|
2115 | ) |
|
2116 | groups = [group_api.get_one(Group.TIM_USER), |
|
2117 | group_api.get_one(Group.TIM_MANAGER), |
|
2118 | group_api.get_one(Group.TIM_ADMIN)] |
|
2119 | ||
2120 | user1 = uapi.create_minimal_user( |
|
2121 | email='this.is@user', |
|
2122 | groups=groups, |
|
2123 | save_now=True |
|
2124 | ) |
|
2125 | ||
2126 | workspace_api = WorkspaceApi( |
|
2127 | current_user=user1, |
|
2128 | session=self.session, |
|
2129 | config=self.app_config, |
|
2130 | ) |
|
2131 | workspace = workspace_api.create_workspace( |
|
2132 | 'test workspace', |
|
2133 | save_now=True |
|
2134 | ) |
|
2135 | ||
2136 | wid = workspace.workspace_id |
|
2137 | ||
2138 | user2 = uapi.create_minimal_user('[email protected]') |
|
2139 | uapi.save(user2) |
|
2140 | ||
2141 | RoleApi( |
|
2142 | current_user=user1, |
|
2143 | session=self.session, |
|
2144 | config=self.app_config, |
|
2145 | ).create_one( |
|
2146 | user2, |
|
2147 | workspace, |
|
2148 | UserRoleInWorkspace.CONTENT_MANAGER, |
|
2149 | with_notif=False, |
|
2150 | flush=True |
|
2151 | ) |
|
2152 | ||
2153 | # Test starts here |
|
2154 | ||
2155 | api = ContentApi( |
|
2156 | current_user=user1, |
|
2157 | session=self.session, |
|
2158 | config=self.app_config, |
|
2159 | ) |
|
2160 | ||
2161 | p = api.create( |
|
2162 | content_type_slug=content_type_list.Page.slug, |
|
2163 | workspace=workspace, |
|
2164 | parent=None, |
|
2165 | label='this_is_a_page', |
|
2166 | do_save=True |
|
2167 | ) |
|
2168 | p2 = api.create( |
|
2169 | content_type_slug=content_type_list.Page.slug, |
|
2170 | workspace=workspace, |
|
2171 | parent=None, |
|
2172 | label='this_is_a_page2', |
|
2173 | do_save=True |
|
2174 | ) |
|
2175 | u1id = user1.user_id |
|
2176 | u2id = user2.user_id |
|
2177 | pcid = p.content_id |
|
2178 | poid = p.owner_id |
|
2179 | ||
2180 | transaction.commit() |
|
2181 | ||
2182 | # Refresh instances after commit |
|
2183 | user1 = uapi.get_one(u1id) |
|
2184 | workspace = WorkspaceApi( |
|
2185 | current_user=user1, |
|
2186 | session=self.session, |
|
2187 | config=self.app_config, |
|
2188 | ).get_one(wid) |
|
2189 | api = ContentApi( |
|
2190 | current_user=user1, |
|
2191 | session=self.session, |
|
2192 | config=self.app_config, |
|
2193 | ) |
|
2194 | ||
2195 | content = api.get_one(pcid, content_type_list.Any_SLUG, workspace) |
|
2196 | eq_(u1id, content.owner_id) |
|
2197 | eq_(poid, content.owner_id) |
|
2198 | ||
2199 | u2 = UserApi( |
|
2200 | session=self.session, |
|
2201 | config=self.app_config, |
|
2202 | current_user=None, |
|
2203 | ).get_one(u2id) |
|
2204 | api2 = ContentApi( |
|
2205 | current_user=u2, |
|
2206 | session=self.session, |
|
2207 | config=self.app_config, |
|
2208 | ) |
|
2209 | content2 = api2.get_one(pcid, content_type_list.Any_SLUG, workspace) |
|
2210 | content2_nb_rev = len(content2.revisions) |
|
2211 | with pytest.raises(ContentFilenameAlreadyUsedInFolder): |
|
2212 | with new_revision( |
|
2213 | session=self.session, |
|
2214 | tm=transaction.manager, |
|
2215 | content=content2, |
|
2216 | ): |
|
2217 | api2.update_content( |
|
2218 | content2, |
|
2219 | 'this_is_a_page2', |
|
2220 | 'new content' |
|
2221 | ) |
|
2222 | api2.save(content2) |
|
2223 | content3 = api2.get_one(pcid, content_type_list.Any_SLUG, workspace) |
|
2224 | assert content3.label == 'this_is_a_page' |
|
2225 | assert content2_nb_rev == len(content3.revisions) |
|
2226 | ||
2227 | def test_unit__update__err__label_dont_change(self): |
|
2228 | uapi = UserApi( |
|
@@ 2800-2918 (lines=119) @@ | ||
2797 | assert content3.label == 'this_is_a_page' |
|
2798 | assert content2_nb_rev == len(content3.revisions) |
|
2799 | ||
2800 | def test_update_file_data__err__content_deleted(self): |
|
2801 | uapi = UserApi( |
|
2802 | session=self.session, |
|
2803 | config=self.app_config, |
|
2804 | current_user=None, |
|
2805 | ) |
|
2806 | group_api = GroupApi( |
|
2807 | current_user=None, |
|
2808 | session=self.session, |
|
2809 | config=self.app_config, |
|
2810 | ) |
|
2811 | groups = [group_api.get_one(Group.TIM_USER), |
|
2812 | group_api.get_one(Group.TIM_MANAGER), |
|
2813 | group_api.get_one(Group.TIM_ADMIN)] |
|
2814 | ||
2815 | user1 = uapi.create_minimal_user( |
|
2816 | email='this.is@user', |
|
2817 | groups=groups, |
|
2818 | save_now=True |
|
2819 | ) |
|
2820 | ||
2821 | workspace_api = WorkspaceApi( |
|
2822 | current_user=user1, |
|
2823 | session=self.session, |
|
2824 | config=self.app_config, |
|
2825 | ) |
|
2826 | workspace = workspace_api.create_workspace( |
|
2827 | 'test workspace', |
|
2828 | save_now=True |
|
2829 | ) |
|
2830 | wid = workspace.workspace_id |
|
2831 | ||
2832 | user2 = uapi.create_minimal_user('[email protected]') |
|
2833 | uapi.save(user2) |
|
2834 | ||
2835 | RoleApi( |
|
2836 | current_user=user1, |
|
2837 | session=self.session, |
|
2838 | config=self.app_config, |
|
2839 | ).create_one( |
|
2840 | user2, |
|
2841 | workspace, |
|
2842 | UserRoleInWorkspace.CONTENT_MANAGER, |
|
2843 | with_notif=True, |
|
2844 | flush=True |
|
2845 | ) |
|
2846 | ||
2847 | # Test starts here |
|
2848 | api = ContentApi( |
|
2849 | current_user=user1, |
|
2850 | session=self.session, |
|
2851 | config=self.app_config, |
|
2852 | show_deleted=True, |
|
2853 | ) |
|
2854 | p = api.create( |
|
2855 | content_type_slug=content_type_list.File.slug, |
|
2856 | workspace=workspace, |
|
2857 | parent=None, |
|
2858 | label='this_is_a_page', |
|
2859 | do_save=False |
|
2860 | ) |
|
2861 | p.is_deleted = True |
|
2862 | api.save(p) |
|
2863 | ||
2864 | u1id = user1.user_id |
|
2865 | u2id = user2.user_id |
|
2866 | pcid = p.content_id |
|
2867 | poid = p.owner_id |
|
2868 | ||
2869 | api.save(p) |
|
2870 | transaction.commit() |
|
2871 | ||
2872 | # Refresh instances after commit |
|
2873 | user1 = uapi.get_one(u1id) |
|
2874 | workspace_api2 = WorkspaceApi( |
|
2875 | current_user=user1, |
|
2876 | session=self.session, |
|
2877 | config=self.app_config, |
|
2878 | ) |
|
2879 | workspace = workspace_api2.get_one(wid) |
|
2880 | api = ContentApi( |
|
2881 | current_user=user1, |
|
2882 | session=self.session, |
|
2883 | config=self.app_config, |
|
2884 | show_deleted=True, |
|
2885 | ) |
|
2886 | ||
2887 | content = api.get_one(pcid, content_type_list.Any_SLUG, workspace) |
|
2888 | eq_(u1id, content.owner_id) |
|
2889 | eq_(poid, content.owner_id) |
|
2890 | ||
2891 | u2 = UserApi( |
|
2892 | current_user=None, |
|
2893 | session=self.session, |
|
2894 | config=self.app_config, |
|
2895 | ).get_one(u2id) |
|
2896 | api2 = ContentApi( |
|
2897 | current_user=u2, |
|
2898 | session=self.session, |
|
2899 | config=self.app_config, |
|
2900 | show_deleted=True, |
|
2901 | ) |
|
2902 | content2 = api2.get_one(pcid, content_type_list.Any_SLUG, workspace) |
|
2903 | content2_nb_rev = len(content2.revisions) |
|
2904 | with pytest.raises(ContentInNotEditableState): |
|
2905 | with new_revision( |
|
2906 | session=self.session, |
|
2907 | tm=transaction.manager, |
|
2908 | content=content2, |
|
2909 | ): |
|
2910 | api2.update_file_data( |
|
2911 | content2, |
|
2912 | 'index.html', |
|
2913 | 'text/html', |
|
2914 | b'<html>hello world</html>' |
|
2915 | ) |
|
2916 | content3 = api2.get_one(pcid, content_type_list.Any_SLUG, workspace) |
|
2917 | assert content3.label == 'this_is_a_page' |
|
2918 | assert content2_nb_rev == len(content3.revisions) |
|
2919 | ||
2920 | @pytest.mark.xfail(reason='Broken feature dues to pyramid behaviour') |
|
2921 | def test_update_no_change(self): |
|
@@ 2680-2798 (lines=119) @@ | ||
2677 | assert content3.label == 'this_is_a_page' |
|
2678 | assert content2_nb_rev == len(content3.revisions) |
|
2679 | ||
2680 | def test_update_file_data__err__content_archived(self): |
|
2681 | uapi = UserApi( |
|
2682 | session=self.session, |
|
2683 | config=self.app_config, |
|
2684 | current_user=None, |
|
2685 | ) |
|
2686 | group_api = GroupApi( |
|
2687 | current_user=None, |
|
2688 | session=self.session, |
|
2689 | config=self.app_config, |
|
2690 | ) |
|
2691 | groups = [group_api.get_one(Group.TIM_USER), |
|
2692 | group_api.get_one(Group.TIM_MANAGER), |
|
2693 | group_api.get_one(Group.TIM_ADMIN)] |
|
2694 | ||
2695 | user1 = uapi.create_minimal_user( |
|
2696 | email='this.is@user', |
|
2697 | groups=groups, |
|
2698 | save_now=True |
|
2699 | ) |
|
2700 | ||
2701 | workspace_api = WorkspaceApi( |
|
2702 | current_user=user1, |
|
2703 | session=self.session, |
|
2704 | config=self.app_config, |
|
2705 | ) |
|
2706 | workspace = workspace_api.create_workspace( |
|
2707 | 'test workspace', |
|
2708 | save_now=True |
|
2709 | ) |
|
2710 | wid = workspace.workspace_id |
|
2711 | ||
2712 | user2 = uapi.create_minimal_user('[email protected]') |
|
2713 | uapi.save(user2) |
|
2714 | ||
2715 | RoleApi( |
|
2716 | current_user=user1, |
|
2717 | session=self.session, |
|
2718 | config=self.app_config, |
|
2719 | ).create_one( |
|
2720 | user2, |
|
2721 | workspace, |
|
2722 | UserRoleInWorkspace.CONTENT_MANAGER, |
|
2723 | with_notif=True, |
|
2724 | flush=True |
|
2725 | ) |
|
2726 | ||
2727 | # Test starts here |
|
2728 | api = ContentApi( |
|
2729 | current_user=user1, |
|
2730 | session=self.session, |
|
2731 | config=self.app_config, |
|
2732 | show_archived=True, |
|
2733 | ) |
|
2734 | p = api.create( |
|
2735 | content_type_slug=content_type_list.File.slug, |
|
2736 | workspace=workspace, |
|
2737 | parent=None, |
|
2738 | label='this_is_a_page', |
|
2739 | do_save=False |
|
2740 | ) |
|
2741 | p.is_archived = True |
|
2742 | api.save(p) |
|
2743 | ||
2744 | u1id = user1.user_id |
|
2745 | u2id = user2.user_id |
|
2746 | pcid = p.content_id |
|
2747 | poid = p.owner_id |
|
2748 | ||
2749 | api.save(p) |
|
2750 | transaction.commit() |
|
2751 | ||
2752 | # Refresh instances after commit |
|
2753 | user1 = uapi.get_one(u1id) |
|
2754 | workspace_api2 = WorkspaceApi( |
|
2755 | current_user=user1, |
|
2756 | session=self.session, |
|
2757 | config=self.app_config, |
|
2758 | ) |
|
2759 | workspace = workspace_api2.get_one(wid) |
|
2760 | api = ContentApi( |
|
2761 | current_user=user1, |
|
2762 | session=self.session, |
|
2763 | config=self.app_config, |
|
2764 | show_archived=True, |
|
2765 | ) |
|
2766 | ||
2767 | content = api.get_one(pcid, content_type_list.Any_SLUG, workspace) |
|
2768 | eq_(u1id, content.owner_id) |
|
2769 | eq_(poid, content.owner_id) |
|
2770 | ||
2771 | u2 = UserApi( |
|
2772 | current_user=None, |
|
2773 | session=self.session, |
|
2774 | config=self.app_config, |
|
2775 | ).get_one(u2id) |
|
2776 | api2 = ContentApi( |
|
2777 | current_user=u2, |
|
2778 | session=self.session, |
|
2779 | config=self.app_config, |
|
2780 | show_archived=True, |
|
2781 | ) |
|
2782 | content2 = api2.get_one(pcid, content_type_list.Any_SLUG, workspace) |
|
2783 | content2_nb_rev = len(content2.revisions) |
|
2784 | with pytest.raises(ContentInNotEditableState): |
|
2785 | with new_revision( |
|
2786 | session=self.session, |
|
2787 | tm=transaction.manager, |
|
2788 | content=content2, |
|
2789 | ): |
|
2790 | api2.update_file_data( |
|
2791 | content2, |
|
2792 | 'index.html', |
|
2793 | 'text/html', |
|
2794 | b'<html>hello world</html>' |
|
2795 | ) |
|
2796 | content3 = api2.get_one(pcid, content_type_list.Any_SLUG, workspace) |
|
2797 | assert content3.label == 'this_is_a_page' |
|
2798 | assert content2_nb_rev == len(content3.revisions) |
|
2799 | ||
2800 | def test_update_file_data__err__content_deleted(self): |
|
2801 | uapi = UserApi( |