| @@ 1990-2108 (lines=119) @@ | ||
| 1987 | eq_('new content', updated.description) |
|
| 1988 | eq_(ActionDescription.EDITION, updated.revision_type) |
|
| 1989 | ||
| 1990 | def test_unit__update__err__label_already_used(self): |
|
| 1991 | uapi = UserApi( |
|
| 1992 | session=self.session, |
|
| 1993 | config=self.app_config, |
|
| 1994 | current_user=None, |
|
| 1995 | ) |
|
| 1996 | group_api = GroupApi( |
|
| 1997 | current_user=None, |
|
| 1998 | session=self.session, |
|
| 1999 | config=self.app_config, |
|
| 2000 | ) |
|
| 2001 | groups = [group_api.get_one(Group.TIM_USER), |
|
| 2002 | group_api.get_one(Group.TIM_MANAGER), |
|
| 2003 | group_api.get_one(Group.TIM_ADMIN)] |
|
| 2004 | ||
| 2005 | user1 = uapi.create_minimal_user( |
|
| 2006 | email='this.is@user', |
|
| 2007 | groups=groups, |
|
| 2008 | save_now=True |
|
| 2009 | ) |
|
| 2010 | ||
| 2011 | workspace_api = WorkspaceApi( |
|
| 2012 | current_user=user1, |
|
| 2013 | session=self.session, |
|
| 2014 | config=self.app_config, |
|
| 2015 | ) |
|
| 2016 | workspace = workspace_api.create_workspace( |
|
| 2017 | 'test workspace', |
|
| 2018 | save_now=True |
|
| 2019 | ) |
|
| 2020 | ||
| 2021 | wid = workspace.workspace_id |
|
| 2022 | ||
| 2023 | user2 = uapi.create_minimal_user('[email protected]') |
|
| 2024 | uapi.save(user2) |
|
| 2025 | ||
| 2026 | RoleApi( |
|
| 2027 | current_user=user1, |
|
| 2028 | session=self.session, |
|
| 2029 | config=self.app_config, |
|
| 2030 | ).create_one( |
|
| 2031 | user2, |
|
| 2032 | workspace, |
|
| 2033 | UserRoleInWorkspace.CONTENT_MANAGER, |
|
| 2034 | with_notif=False, |
|
| 2035 | flush=True |
|
| 2036 | ) |
|
| 2037 | ||
| 2038 | # Test starts here |
|
| 2039 | ||
| 2040 | api = ContentApi( |
|
| 2041 | current_user=user1, |
|
| 2042 | session=self.session, |
|
| 2043 | config=self.app_config, |
|
| 2044 | ) |
|
| 2045 | ||
| 2046 | p = api.create( |
|
| 2047 | content_type_slug=CONTENT_TYPES.Page.slug, |
|
| 2048 | workspace=workspace, |
|
| 2049 | parent=None, |
|
| 2050 | label='this_is_a_page', |
|
| 2051 | do_save=True |
|
| 2052 | ) |
|
| 2053 | p2 = api.create( |
|
| 2054 | content_type_slug=CONTENT_TYPES.Page.slug, |
|
| 2055 | workspace=workspace, |
|
| 2056 | parent=None, |
|
| 2057 | label='this_is_a_page2', |
|
| 2058 | do_save=True |
|
| 2059 | ) |
|
| 2060 | u1id = user1.user_id |
|
| 2061 | u2id = user2.user_id |
|
| 2062 | pcid = p.content_id |
|
| 2063 | poid = p.owner_id |
|
| 2064 | ||
| 2065 | transaction.commit() |
|
| 2066 | ||
| 2067 | # Refresh instances after commit |
|
| 2068 | user1 = uapi.get_one(u1id) |
|
| 2069 | workspace = WorkspaceApi( |
|
| 2070 | current_user=user1, |
|
| 2071 | session=self.session, |
|
| 2072 | config=self.app_config, |
|
| 2073 | ).get_one(wid) |
|
| 2074 | api = ContentApi( |
|
| 2075 | current_user=user1, |
|
| 2076 | session=self.session, |
|
| 2077 | config=self.app_config, |
|
| 2078 | ) |
|
| 2079 | ||
| 2080 | content = api.get_one(pcid, CONTENT_TYPES.Any_SLUG, workspace) |
|
| 2081 | eq_(u1id, content.owner_id) |
|
| 2082 | eq_(poid, content.owner_id) |
|
| 2083 | ||
| 2084 | u2 = UserApi( |
|
| 2085 | session=self.session, |
|
| 2086 | config=self.app_config, |
|
| 2087 | current_user=None, |
|
| 2088 | ).get_one(u2id) |
|
| 2089 | api2 = ContentApi( |
|
| 2090 | current_user=u2, |
|
| 2091 | session=self.session, |
|
| 2092 | config=self.app_config, |
|
| 2093 | ) |
|
| 2094 | content2 = api2.get_one(pcid, CONTENT_TYPES.Any_SLUG, workspace) |
|
| 2095 | with pytest.raises(ContentLabelAlreadyUsedHere): |
|
| 2096 | with new_revision( |
|
| 2097 | session=self.session, |
|
| 2098 | tm=transaction.manager, |
|
| 2099 | content=content2, |
|
| 2100 | ): |
|
| 2101 | api2.update_content( |
|
| 2102 | content2, |
|
| 2103 | 'this_is_a_page2', |
|
| 2104 | 'new content' |
|
| 2105 | ) |
|
| 2106 | api2.save(content2) |
|
| 2107 | content3 = api2.get_one(pcid, CONTENT_TYPES.Any_SLUG, workspace) |
|
| 2108 | assert content3.label == 'this_is_a_page' |
|
| 2109 | ||
| 2110 | def test_unit__update__err__label_dont_change(self): |
|
| 2111 | uapi = UserApi( |
|
| @@ 2110-2227 (lines=118) @@ | ||
| 2107 | content3 = api2.get_one(pcid, CONTENT_TYPES.Any_SLUG, workspace) |
|
| 2108 | assert content3.label == 'this_is_a_page' |
|
| 2109 | ||
| 2110 | def test_unit__update__err__label_dont_change(self): |
|
| 2111 | uapi = UserApi( |
|
| 2112 | session=self.session, |
|
| 2113 | config=self.app_config, |
|
| 2114 | current_user=None, |
|
| 2115 | ) |
|
| 2116 | group_api = GroupApi( |
|
| 2117 | current_user=None, |
|
| 2118 | session=self.session, |
|
| 2119 | config=self.app_config, |
|
| 2120 | ) |
|
| 2121 | groups = [group_api.get_one(Group.TIM_USER), |
|
| 2122 | group_api.get_one(Group.TIM_MANAGER), |
|
| 2123 | group_api.get_one(Group.TIM_ADMIN)] |
|
| 2124 | ||
| 2125 | user1 = uapi.create_minimal_user( |
|
| 2126 | email='this.is@user', |
|
| 2127 | groups=groups, |
|
| 2128 | save_now=True |
|
| 2129 | ) |
|
| 2130 | ||
| 2131 | workspace_api = WorkspaceApi( |
|
| 2132 | current_user=user1, |
|
| 2133 | session=self.session, |
|
| 2134 | config=self.app_config, |
|
| 2135 | ) |
|
| 2136 | workspace = workspace_api.create_workspace( |
|
| 2137 | 'test workspace', |
|
| 2138 | save_now=True |
|
| 2139 | ) |
|
| 2140 | ||
| 2141 | wid = workspace.workspace_id |
|
| 2142 | ||
| 2143 | user2 = uapi.create_minimal_user('[email protected]') |
|
| 2144 | uapi.save(user2) |
|
| 2145 | ||
| 2146 | RoleApi( |
|
| 2147 | current_user=user1, |
|
| 2148 | session=self.session, |
|
| 2149 | config=self.app_config, |
|
| 2150 | ).create_one( |
|
| 2151 | user2, |
|
| 2152 | workspace, |
|
| 2153 | UserRoleInWorkspace.CONTENT_MANAGER, |
|
| 2154 | with_notif=False, |
|
| 2155 | flush=True |
|
| 2156 | ) |
|
| 2157 | ||
| 2158 | # Test starts here |
|
| 2159 | ||
| 2160 | api = ContentApi( |
|
| 2161 | current_user=user1, |
|
| 2162 | session=self.session, |
|
| 2163 | config=self.app_config, |
|
| 2164 | ) |
|
| 2165 | ||
| 2166 | p = api.create( |
|
| 2167 | content_type_slug=CONTENT_TYPES.Page.slug, |
|
| 2168 | workspace=workspace, |
|
| 2169 | parent=None, |
|
| 2170 | label='this_is_a_page', |
|
| 2171 | do_save=True |
|
| 2172 | ) |
|
| 2173 | p2 = api.create( |
|
| 2174 | content_type_slug=CONTENT_TYPES.Page.slug, |
|
| 2175 | workspace=workspace, |
|
| 2176 | parent=None, |
|
| 2177 | label='this_is_a_page2', |
|
| 2178 | do_save=True |
|
| 2179 | ) |
|
| 2180 | u1id = user1.user_id |
|
| 2181 | u2id = user2.user_id |
|
| 2182 | pcid = p.content_id |
|
| 2183 | poid = p.owner_id |
|
| 2184 | ||
| 2185 | transaction.commit() |
|
| 2186 | ||
| 2187 | # Refresh instances after commit |
|
| 2188 | user1 = uapi.get_one(u1id) |
|
| 2189 | workspace = WorkspaceApi( |
|
| 2190 | current_user=user1, |
|
| 2191 | session=self.session, |
|
| 2192 | config=self.app_config, |
|
| 2193 | ).get_one(wid) |
|
| 2194 | api = ContentApi( |
|
| 2195 | current_user=user1, |
|
| 2196 | session=self.session, |
|
| 2197 | config=self.app_config, |
|
| 2198 | ) |
|
| 2199 | ||
| 2200 | content = api.get_one(pcid, CONTENT_TYPES.Any_SLUG, workspace) |
|
| 2201 | eq_(u1id, content.owner_id) |
|
| 2202 | eq_(poid, content.owner_id) |
|
| 2203 | ||
| 2204 | u2 = UserApi( |
|
| 2205 | session=self.session, |
|
| 2206 | config=self.app_config, |
|
| 2207 | current_user=None, |
|
| 2208 | ).get_one(u2id) |
|
| 2209 | api2 = ContentApi( |
|
| 2210 | current_user=u2, |
|
| 2211 | session=self.session, |
|
| 2212 | config=self.app_config, |
|
| 2213 | ) |
|
| 2214 | content2 = api2.get_one(pcid, CONTENT_TYPES.Any_SLUG, workspace) |
|
| 2215 | with new_revision( |
|
| 2216 | session=self.session, |
|
| 2217 | tm=transaction.manager, |
|
| 2218 | content=content2, |
|
| 2219 | ): |
|
| 2220 | api2.update_content( |
|
| 2221 | content2, |
|
| 2222 | 'this_is_a_page', |
|
| 2223 | 'new content' |
|
| 2224 | ) |
|
| 2225 | api2.save(content2) |
|
| 2226 | content3 = api2.get_one(pcid, CONTENT_TYPES.Any_SLUG, workspace) |
|
| 2227 | assert content3.label == 'this_is_a_page' |
|
| 2228 | ||
| 2229 | def test_update_no_change(self): |
|
| 2230 | uapi = UserApi( |
|