Changeset 36
- Timestamp:
- 2008年07月31日 01时41分30秒 (4 years ago)
- Location:
- trunk/pysvnmanager
- Files:
-
- 1 added
- 9 modified
-
controllers/logs.py (modified) (2 diffs)
-
i18n/en/LC_MESSAGES/pysvnmanager.po (modified) (4 diffs)
-
i18n/pysvnmanager.pot (modified) (4 diffs)
-
i18n/zh/LC_MESSAGES/pysvnmanager.po (modified) (4 diffs)
-
model/rcsbackup.py (modified) (1 diff)
-
templates/logs/view.mako (added)
-
tests/functional/test_authz.py (modified) (6 diffs)
-
tests/functional/test_check.py (modified) (4 diffs)
-
tests/functional/test_role.py (modified) (6 diffs)
-
tests/test_rcs_backup.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/pysvnmanager/controllers/logs.py
r35 r36 69 69 'who' : logs[i].get('author',''), 70 70 'when': logs[i].get('date',''), 71 'why' : logs[i].get('log',''),71 'why' : h.link_to(logs[i].get('log',''), h.url(action='view', id=logs[i].get('revision',''))), 72 72 } 73 73 … … 134 134 buff += "<pre>%s</pre>" % self.rcslog.differ(left, right) 135 135 return buff 136 137 138 def view(self, id): 139 assert id and isinstance(id, basestring) 140 c.contents = unicode(self.rcslog.cat(id), 'utf-8') 141 c.log = self.rcslog.get_logs(id, id)[0] 142 return render('/logs/view.mako') 143 144 def rollback(self, id): 145 msg = _("Rollback to revision: %s" % id) 146 try: 147 assert id and isinstance(id, basestring) 148 self.rcslog.restore(id) 149 self.rcslog.backup(comment=msg, user=self.login_as) 150 except Exception, e: 151 return e 152 else: 153 return msg -
trunk/pysvnmanager/i18n/en/LC_MESSAGES/pysvnmanager.po
r35 r36 10 10 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 11 11 "POT-Creation-Date: 2008-07-03 22:14+0800\n" 12 "PO-Revision-Date: 2008-07-31 0 0:22+0800\n"12 "PO-Revision-Date: 2008-07-31 01:18+0800\n" 13 13 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" 14 14 "Language-Team: en <LL@li.org>\n" … … 123 123 #: pysvnmanager/controllers/logs.py:130 124 124 msgid "Compares between" 125 msgstr "" 126 127 #: pysvnmanager/controllers/logs.py:145 128 #, python-format 129 msgid "Rollback to revision: %s" 125 130 msgstr "" 126 131 … … 470 475 #: pysvnmanager/templates/logs/index.mako:5 471 476 #: pysvnmanager/templates/logs/index.mako:60 477 #: pysvnmanager/templates/logs/view.mako:5 472 478 msgid "Administration logs" 473 479 msgstr "" … … 475 481 #: pysvnmanager/templates/logs/index.mako:66 476 482 msgid "Compare revisions" 483 msgstr "" 484 485 #: pysvnmanager/templates/logs/view.mako:16 486 msgid "View history, revision" 487 msgstr "" 488 489 #: pysvnmanager/templates/logs/view.mako:23 490 msgid "Rollback to this revision" 477 491 msgstr "" 478 492 -
trunk/pysvnmanager/i18n/pysvnmanager.pot
r35 r36 9 9 "Project-Id-Version: pySvnManager 0.1.2\n" 10 10 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 11 "POT-Creation-Date: 2008-07-31 0 0:22+0800\n"11 "POT-Creation-Date: 2008-07-31 01:18+0800\n" 12 12 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 13 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" … … 116 116 #: pysvnmanager/controllers/logs.py:130 117 117 msgid "Compares between" 118 msgstr "" 119 120 #: pysvnmanager/controllers/logs.py:145 121 #, python-format 122 msgid "Rollback to revision: %s" 118 123 msgstr "" 119 124 … … 462 467 #: pysvnmanager/templates/logs/index.mako:5 463 468 #: pysvnmanager/templates/logs/index.mako:60 469 #: pysvnmanager/templates/logs/view.mako:5 464 470 msgid "Administration logs" 465 471 msgstr "" … … 467 473 #: pysvnmanager/templates/logs/index.mako:66 468 474 msgid "Compare revisions" 475 msgstr "" 476 477 #: pysvnmanager/templates/logs/view.mako:16 478 msgid "View history, revision" 479 msgstr "" 480 481 #: pysvnmanager/templates/logs/view.mako:23 482 msgid "Rollback to this revision" 469 483 msgstr "" 470 484 -
trunk/pysvnmanager/i18n/zh/LC_MESSAGES/pysvnmanager.po
r35 r36 12 12 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 13 13 "POT-Creation-Date: 2008-07-03 22:14+0800\n" 14 "PO-Revision-Date: 2008-07-31 0 0:24+0800\n"14 "PO-Revision-Date: 2008-07-31 01:20+0800\n" 15 15 "Last-Translator: Jiang Xin <worldhello.net@gmail.com>\n" 16 16 "Language-Team: <zh@li.org>\n" … … 128 128 msgstr "版本间比较" 129 129 130 #: pysvnmanager/controllers/logs.py:145 131 #, python-format 132 msgid "Rollback to revision: %s" 133 msgstr "回滚至版本: %s" 134 130 135 #: pysvnmanager/controllers/role.py:103 131 136 #, python-format … … 493 498 #: pysvnmanager/templates/logs/index.mako:5 494 499 #: pysvnmanager/templates/logs/index.mako:60 500 #: pysvnmanager/templates/logs/view.mako:5 495 501 msgid "Administration logs" 496 502 msgstr "修改记录" … … 499 505 msgid "Compare revisions" 500 506 msgstr "版本比较" 507 508 #: pysvnmanager/templates/logs/view.mako:16 509 msgid "View history, revision" 510 msgstr "查看历史, 版本" 511 512 #: pysvnmanager/templates/logs/view.mako:23 513 msgid "Rollback to this revision" 514 msgstr "回滚至此版本" 501 515 502 516 #: pysvnmanager/templates/role/index.mako:5 -
trunk/pysvnmanager/model/rcsbackup.py
r34 r36 305 305 def differ(self, rev1="", rev2=""): 306 306 return differ(self.__file, rev1, rev2) 307 307 308 def restore(self, revision): 309 return restore(self.__file, revision) 310 311 def backup(self, comment='', user=''): 312 return backup(self.__file, comment, user) -
trunk/pysvnmanager/tests/functional/test_authz.py
r22 r36 14 14 self.login('nobody') 15 15 res = self.app.get(url_for(controller='authz')) 16 assert res.status == 20017 assert 'Permission denied.' in res.body, res.body16 assert res.status == 302 17 self.assertEqual(res.header('location'), '/security/failed', res.header('location')) 18 18 19 19 # Login as repos admin … … 40 40 self.login('nobody') 41 41 res = self.app.get(url_for(controller='authz', action='init_repos_list')) 42 assert res.status == 200, res.status43 self.assert_('Permission denied.' in res.body, res.body)42 assert res.status == 302, res.status 43 assert res.header('location')== '/security/failed', res.header('location') 44 44 45 45 # Login as superuser … … 66 66 self.login('nobody') 67 67 res = self.app.get(url_for(controller='authz', action='repos_changed')) 68 assert res.status == 200, res.status69 self.assert_('Permission denied.' in res.body, res.body)68 assert res.status == 302, res.status 69 assert res.header('location')== '/security/failed', res.header('location') 70 70 71 71 # Login as superuser … … 107 107 self.login('nobody') 108 108 res = self.app.get(url_for(controller='authz', action='path_changed')) 109 assert res.status == 200, res.status110 self.assert_('Permission denied.' in res.body, res.body)109 assert res.status == 302, res.status 110 assert res.header('location')== '/security/failed', res.header('location') 111 111 112 112 self.login('root') … … 153 153 self.login('nobody') 154 154 res = self.app.get(url_for(controller='authz', action='save_authz')) 155 assert res.status == 200, res.status156 self.assert_('Permission denied.' in res.body, res.body)155 assert res.status == 302, res.status 156 assert res.header('location')== '/security/failed', res.header('location') 157 157 158 158 # Login as superuser … … 316 316 res = self.app.get(url_for(controller='authz', action='delete_authz')) 317 317 assert res.status == 302 318 self.assertEqual(res.header('location'), '/security')318 assert res.header('location')== '/security', res.header('location') 319 319 320 320 # authz test 321 321 self.login('nobody') 322 322 res = self.app.get(url_for(controller='authz', action='delete_authz')) 323 assert res.status == 200, res.status324 self.assert_('Permission denied.' in res.body, res.body)323 assert res.status == 302, res.status 324 assert res.header('location')== '/security/failed', res.header('location') 325 325 326 326 authz = self.load_authz() -
trunk/pysvnmanager/tests/functional/test_check.py
r22 r36 15 15 self.login('nobody') 16 16 res = self.app.get(url_for(controller='check')) 17 assert res.status == 20018 assert 'Permission denied.' in res.body, res.body17 assert res.status == 302, res.status 18 assert res.header('location')== '/security/failed', res.header('location') 19 19 20 20 # Login as repos admin … … 45 45 self.login('nobody') 46 46 res = self.app.get(url_for(controller='check', action='access_map')) 47 assert res.status == 200, res.status48 self.assert_('Permission denied.' in res.body, res.body)47 assert res.status == 302, res.status 48 assert res.header('location')== '/security/failed', res.header('location') 49 49 50 50 # Login as superuser … … 206 206 } 207 207 res = self.app.get(url_for(controller='check', action='access_map'), params) 208 assert res.status == 200 209 assert 'Permission denied.' in res.body, res.body208 assert res.status == 200, res.status 209 assert res.body== 'Permission denied.', res.header('location') 210 210 211 211 def test_authz_path(self): … … 213 213 res = self.app.get(url_for(controller='check', action='get_auth_path')) 214 214 assert res.status == 302 215 self.assertEqual(res.header('location'), '/security')215 assert res.header('location')== '/security', res.header('location') 216 216 217 217 # authz test 218 218 self.login('nobody') 219 219 res = self.app.get(url_for(controller='check', action='get_auth_path')) 220 assert res.status == 200, res.status221 self.assert_('Permission denied.' in res.body, res.body)220 assert res.status == 302, res.status 221 assert res.header('location')== '/security/failed', res.header('location') 222 222 223 223 self.login('root') -
trunk/pysvnmanager/tests/functional/test_role.py
r24 r36 15 15 self.login('nobody') 16 16 res = self.app.get(url_for(controller='role')) 17 assert res.status == 20018 assert 'Permission denied.' in res.body, res.body17 assert res.status == 302, res.status 18 assert res.header('location')== '/security/failed', res.header('location') 19 19 20 20 # Permission denied for repos admin(not root admin) 21 21 self.login('admin2') 22 22 res = self.app.get(url_for(controller='role')) 23 assert res.status == 20024 assert "Permission denied." in res.body, res.body23 assert res.status == 302, res.status 24 assert res.header('location')== '/security/failed', res.header('location') 25 25 26 26 # Login as superuser … … 39 39 self.login('nobody') 40 40 res = self.app.get(url_for(controller='role', action='get_role_info')) 41 assert res.status == 200, res.status42 self.assert_('Permission denied.' in res.body, res.body)41 assert res.status == 302, res.status 42 assert res.header('location')== '/security/failed', res.header('location') 43 43 44 44 # Login as superuser … … 114 114 self.login('nobody') 115 115 res = self.app.get(url_for(controller='role', action='save_group')) 116 assert res.status == 200, res.status117 self.assert_('Permission denied.' in res.body, res.body)116 assert res.status == 302, res.status 117 assert res.header('location')== '/security/failed', res.header('location') 118 118 119 119 # Change group members, autodrop=no … … 198 198 self.login('nobody') 199 199 res = self.app.get(url_for(controller='role', action='delete_group')) 200 assert res.status == 200, res.status201 self.assert_('Permission denied.' in res.body, res.body)200 assert res.status == 302, res.status 201 assert res.header('location')== '/security/failed', res.header('location') 202 202 203 203 # Delete group failed, ref by other group. … … 260 260 self.login('nobody') 261 261 res = self.app.get(url_for(controller='role', action='save_alias')) 262 assert res.status == 200, res.status263 self.assert_('Permission denied.' in res.body, res.body)262 assert res.status == 302, res.status 263 assert res.header('location')== '/security/failed', res.header('location') 264 264 265 265 # Change alias successfully … … 337 337 self.login('nobody') 338 338 res = self.app.get(url_for(controller='role', action='delete_alias')) 339 assert res.status == 200, res.status340 self.assert_('Permission denied.' in res.body, res.body)339 assert res.status == 302, res.status 340 assert res.header('location')== '/security/failed', res.header('location') 341 341 342 342 # Delete alias successfully -
trunk/pysvnmanager/tests/test_rcs_backup.py
r30 r36 176 176 assert rcslog.total_page == 2, rcslog.total_page 177 177 rcslog.log_per_page=0 178 assert rcslog.log_per_page ==10, rcslog.log_per_page178 assert rcslog.log_per_page>1, rcslog.log_per_page 179 179 rcslog.log_per_page=5 180 180 assert rcslog.log_per_page==5, rcslog.log_per_page … … 189 189 logs = rcslog.get_page_logs(2) 190 190 assert [x['revision'] for x in logs] == \ 191 ['1. 4', '1.5', '1.6', '1.7', '1.8', '1.14'], \191 ['1.5', '1.6', '1.7', '1.8', '1.9', '1.14'], \ 192 192 [x['revision'] for x in logs] 193 193 … … 196 196 assert logs == logs2 197 197 assert [x['revision'] for x in logs] == \ 198 ['1.1', '1.2', '1.3', '1. 14'], \198 ['1.1', '1.2', '1.3', '1.4', '1.5', '1.14'], \ 199 199 [x['revision'] for x in logs] 200 200
![(please configure the [header_logo] section in trac.ini)](/trac/pysvnmanager/chrome/common/trac_banner.png)