Files
@ 742d1b8ca263
Branch filter:
Location: kallithea/rhodecode/tests/vcs/test_filenodes_unicode_path.py - annotation
742d1b8ca263
1.2 KiB
text/x-python
use str() on os.walk passing unicode can lead to UnicodeDecode errors when iterating
402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 402a96fcfa22 | # encoding: utf8
from __future__ import with_statement
import datetime
from rhodecode.lib.vcs.nodes import FileNode
from rhodecode.lib.vcs.utils.compat import unittest
from test_inmemchangesets import BackendBaseTestCase
from conf import SCM_TESTS
class FileNodeUnicodePathTestsMixin(object):
fname = 'ąśðąęłąć.txt'
ufname = (fname).decode('utf-8')
def get_commits(self):
self.nodes = [
FileNode(self.fname, content='Foobar'),
]
commits = [
{
'message': 'Initial commit',
'author': 'Joe Doe <joe.doe@example.com>',
'date': datetime.datetime(2010, 1, 1, 20),
'added': self.nodes,
},
]
return commits
def test_filenode_path(self):
node = self.tip.get_node(self.fname)
unode = self.tip.get_node(self.ufname)
self.assertEqual(node, unode)
for alias in SCM_TESTS:
attrs = {
'backend_alias': alias,
}
cls_name = ''.join(('%s file node unicode path test' % alias).title()
.split())
bases = (FileNodeUnicodePathTestsMixin, BackendBaseTestCase)
globals()[cls_name] = type(cls_name, bases, attrs)
if __name__ == '__main__':
unittest.main()
|