# 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 ', '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()