##// END OF EJS Templates
move old shortlog as lightweight changelog into option, it's still useful to have since it's less resources to generate data for it.
move old shortlog as lightweight changelog into option, it's still useful to have since it's less resources to generate data for it.

File last commit:

r3035:fb170952 beta
r3290:e4025b36 beta
Show More
test_diff_parsers.py
86 lines | 2.8 KiB | text/x-python | PythonLexer
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