|
a/Allura/allura/tests/functional/test_admin.py |
|
b/Allura/allura/tests/functional/test_admin.py |
|
... |
|
... |
233 |
#r = self.app.get('/p/test/home/')
|
233 |
#r = self.app.get('/p/test/home/')
|
234 |
#assert 'aaa' not in r
|
234 |
#assert 'aaa' not in r
|
235 |
|
235 |
|
236 |
def test_project_delete_undelete(self):
|
236 |
def test_project_delete_undelete(self):
|
237 |
# create a subproject
|
237 |
# create a subproject
|
238 |
with audits('create subproject sub1'):
|
238 |
with audits('create subproject sub-del-undel'):
|
239 |
self.app.post('/admin/update_mounts', params={
|
239 |
self.app.post('/admin/update_mounts', params={
|
240 |
'new.install':'install',
|
240 |
'new.install':'install',
|
241 |
'new.ep_name':'',
|
241 |
'new.ep_name':'',
|
242 |
'new.ordinal':'1',
|
242 |
'new.ordinal':'1',
|
243 |
'new.mount_point':'sub1',
|
243 |
'new.mount_point':'sub-del-undel',
|
244 |
'new.mount_label':'sub1'})
|
244 |
'new.mount_label':'sub-del-undel'})
|
245 |
r = self.app.get('/p/test/admin/overview')
|
245 |
r = self.app.get('/p/test/admin/overview')
|
246 |
assert 'This project has been deleted and is not visible to non-admin users' not in r
|
246 |
assert 'This project has been deleted and is not visible to non-admin users' not in r
|
247 |
assert r.html.find('input',{'name':'removal','value':''}).has_key('checked')
|
247 |
assert r.html.find('input',{'name':'removal','value':''}).has_key('checked')
|
248 |
assert not r.html.find('input',{'name':'removal','value':'deleted'}).has_key('checked')
|
248 |
assert not r.html.find('input',{'name':'removal','value':'deleted'}).has_key('checked')
|
249 |
with audits('delete project'):
|
249 |
with audits('delete project'):
|
|
... |
|
... |
256 |
r = self.app.get('/p/test/admin/overview')
|
256 |
r = self.app.get('/p/test/admin/overview')
|
257 |
assert 'This project has been deleted and is not visible to non-admin users' in r
|
257 |
assert 'This project has been deleted and is not visible to non-admin users' in r
|
258 |
assert not r.html.find('input',{'name':'removal','value':''}).has_key('checked')
|
258 |
assert not r.html.find('input',{'name':'removal','value':''}).has_key('checked')
|
259 |
assert r.html.find('input',{'name':'removal','value':'deleted'}).has_key('checked')
|
259 |
assert r.html.find('input',{'name':'removal','value':'deleted'}).has_key('checked')
|
260 |
# make sure subprojects get deleted too
|
260 |
# make sure subprojects get deleted too
|
261 |
r = self.app.get('/p/test/sub1/admin/overview')
|
261 |
r = self.app.get('/p/test/sub-del-undel/admin/overview')
|
262 |
assert 'This project has been deleted and is not visible to non-admin users' in r
|
262 |
assert 'This project has been deleted and is not visible to non-admin users' in r
|
263 |
with audits('undelete project'):
|
263 |
with audits('undelete project'):
|
264 |
self.app.post('/admin/update', params=dict(
|
264 |
self.app.post('/admin/update', params=dict(
|
265 |
name='Test Project',
|
265 |
name='Test Project',
|
266 |
shortname='test',
|
266 |
shortname='test',
|
|
... |
|
... |
277 |
from allura.ext.admin.admin_main import config
|
277 |
from allura.ext.admin.admin_main import config
|
278 |
old_allow_project_delete = config.get('allow_project_delete', ())
|
278 |
old_allow_project_delete = config.get('allow_project_delete', ())
|
279 |
config['allow_project_delete'] = False
|
279 |
config['allow_project_delete'] = False
|
280 |
try:
|
280 |
try:
|
281 |
# create a subproject
|
281 |
# create a subproject
|
282 |
with audits('create subproject sub1'):
|
282 |
with audits('create subproject sub-no-del'):
|
283 |
self.app.post('/admin/update_mounts', params={
|
283 |
self.app.post('/admin/update_mounts', params={
|
284 |
'new.install':'install',
|
284 |
'new.install':'install',
|
285 |
'new.ep_name':'',
|
285 |
'new.ep_name':'',
|
286 |
'new.ordinal':'1',
|
286 |
'new.ordinal':'1',
|
287 |
'new.mount_point':'sub1',
|
287 |
'new.mount_point':'sub-no-del',
|
288 |
'new.mount_label':'sub1'})
|
288 |
'new.mount_label':'sub-no-del'})
|
289 |
# root project doesn't have delete option
|
289 |
# root project doesn't have delete option
|
290 |
r = self.app.get('/p/test/admin/overview')
|
290 |
r = self.app.get('/p/test/admin/overview')
|
291 |
assert not r.html.find('input',{'name':'removal','value':'deleted'})
|
291 |
assert not r.html.find('input',{'name':'removal','value':'deleted'})
|
292 |
# subprojects can still be deleted
|
292 |
# subprojects can still be deleted
|
293 |
r = self.app.get('/p/test/sub1/admin/overview')
|
293 |
r = self.app.get('/p/test/sub-no-del/admin/overview')
|
294 |
assert r.html.find('input',{'name':'removal','value':'deleted'})
|
294 |
assert r.html.find('input',{'name':'removal','value':'deleted'})
|
295 |
# attempt to delete root project won't do anything
|
295 |
# attempt to delete root project won't do anything
|
296 |
self.app.post('/admin/update', params=dict(
|
296 |
self.app.post('/admin/update', params=dict(
|
297 |
name='Test Project',
|
297 |
name='Test Project',
|
298 |
shortname='test',
|
298 |
shortname='test',
|
|
... |
|
... |
303 |
assert 'This project has been deleted and is not visible to non-admin users' not in r
|
303 |
assert 'This project has been deleted and is not visible to non-admin users' not in r
|
304 |
# make sure subproject delete works
|
304 |
# make sure subproject delete works
|
305 |
with audits(
|
305 |
with audits(
|
306 |
'change project removal status to deleted',
|
306 |
'change project removal status to deleted',
|
307 |
'delete project'):
|
307 |
'delete project'):
|
308 |
self.app.post('/p/test/sub1/admin/update', params=dict(
|
308 |
self.app.post('/p/test/sub-no-del/admin/update', params=dict(
|
309 |
name='sub1',
|
309 |
name='sub1',
|
310 |
shortname='sub1',
|
310 |
shortname='sub1',
|
311 |
removal='deleted',
|
311 |
removal='deleted',
|
312 |
short_description='A Test Project',
|
312 |
short_description='A Test Project',
|
313 |
delete='on'))
|
313 |
delete='on'))
|
314 |
r = self.app.get('/p/test/sub1/admin/overview')
|
314 |
r = self.app.get('/p/test/sub-no-del/admin/overview')
|
315 |
assert 'This project has been deleted and is not visible to non-admin users' in r
|
315 |
assert 'This project has been deleted and is not visible to non-admin users' in r
|
316 |
assert r.html.find('input',{'name':'removal','value':'deleted'}).has_key('checked')
|
316 |
assert r.html.find('input',{'name':'removal','value':'deleted'}).has_key('checked')
|
317 |
finally:
|
317 |
finally:
|
318 |
if old_allow_project_delete == ():
|
318 |
if old_allow_project_delete == ():
|
319 |
del config['allow_project_delete']
|
319 |
del config['allow_project_delete']
|