Mercurial > kallithea
view rhodecode/tests/models/test_diff_parsers.py @ 3733:af049a957506 beta
fixed default permissions population during upgrades
- it often happen that introducing new permission
caused default permission to reset it's state to installation
default.
new version makes sure that only missing permissions are
created while leaving old defaults
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Wed, 10 Apr 2013 02:55:21 +0200 |
parents | fb1709520112 |
children | ce4b7023a492 |
line wrap: on
line source
from __future__ import with_statement import os import unittest from rhodecode.tests import * from rhodecode.lib.diffs import DiffProcessor, NEW_FILENODE, DEL_FILENODE, \ MOD_FILENODE, RENAMED_FILENODE, CHMOD_FILENODE dn = os.path.dirname FIXTURES = os.path.join(dn(dn(os.path.abspath(__file__))), 'fixtures') DIFF_FIXTURES = { 'hg_diff_add_single_binary_file.diff': [ (u'US Warszawa.jpg', 'A', ['b', NEW_FILENODE]), ], 'hg_diff_mod_single_binary_file.diff': [ (u'US Warszawa.jpg', 'M', ['b', MOD_FILENODE]), ], 'hg_diff_del_single_binary_file.diff': [ (u'US Warszawa.jpg', 'D', ['b', DEL_FILENODE]), ], 'hg_diff_binary_and_normal.diff': [ (u'img/baseline-10px.png', 'A', ['b', NEW_FILENODE]), (u'js/jquery/hashgrid.js', 'A', [340, 0]), (u'index.html', 'M', [3, 2]), (u'less/docs.less', 'M', [34, 0]), (u'less/scaffolding.less', 'M', [1, 3]), (u'readme.markdown', 'M', [1, 10]), (u'img/baseline-20px.png', 'D', ['b', DEL_FILENODE]), (u'js/global.js', 'D', [0, 75]) ], 'hg_diff_chmod.diff': [ (u'file', 'M', ['b', CHMOD_FILENODE]), ], 'hg_diff_rename_file.diff': [ (u'file_renamed', 'M', ['b', RENAMED_FILENODE]), ], 'git_diff_chmod.diff': [ (u'work-horus.xls', 'M', ['b', CHMOD_FILENODE]), ], 'git_diff_rename_file.diff': [ (u'file.xls', 'M', ['b', RENAMED_FILENODE]), ], 'git_diff_mod_single_binary_file.diff': [ ('US Warszawa.jpg', 'M', ['b', MOD_FILENODE]) ], 'git_diff_binary_and_normal.diff': [ (u'img/baseline-10px.png', 'A', ['b', NEW_FILENODE]), (u'js/jquery/hashgrid.js', 'A', [340, 0]), (u'index.html', 'M', [3, 2]), (u'less/docs.less', 'M', [34, 0]), (u'less/scaffolding.less', 'M', [1, 3]), (u'readme.markdown', 'M', [1, 10]), (u'img/baseline-20px.png', 'D', ['b', DEL_FILENODE]), (u'js/global.js', 'D', [0, 75]) ], 'diff_with_diff_data.diff': [ (u'vcs/backends/base.py', 'M', [18, 2]), (u'vcs/backends/git/repository.py', 'M', [46, 15]), (u'vcs/backends/hg.py', 'M', [22, 3]), (u'vcs/tests/test_git.py', 'M', [5, 5]), (u'vcs/tests/test_repository.py', 'M', [174, 2]) ], # 'large_diff.diff': [ # # ], } def _diff_checker(fixture): with open(os.path.join(FIXTURES, fixture)) as f: diff = f.read() diff_proc = DiffProcessor(diff) diff_proc_d = diff_proc.prepare() data = [(x['filename'], x['operation'], x['stats']) for x in diff_proc_d] expected_data = DIFF_FIXTURES[fixture] assert expected_data == data def test_parse_diff(): for fixture in DIFF_FIXTURES: yield _diff_checker, fixture