comparison rhodecode/tests/vcs/test_changesets.py @ 3912:91f440a11b94 beta

fixes issues #849 IMC failed for non-ascii files - added set of regression tests into vcs lib
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 29 May 2013 00:20:27 +0200
parents 42981614c624
children ffd45b185016
comparison
equal deleted inserted replaced
3911:7cca0d07c12b 3912:91f440a11b94
1 # encoding: utf8
1 from __future__ import with_statement 2 from __future__ import with_statement
2 3
3 import time 4 import time
4 import datetime 5 import datetime
5 from rhodecode.lib import vcs 6 from rhodecode.lib import vcs
300 'message': u'Initial', 301 'message': u'Initial',
301 'author': u'Joe Doe <joe.doe@example.com>', 302 'author': u'Joe Doe <joe.doe@example.com>',
302 'date': datetime.datetime(2010, 1, 1, 20), 303 'date': datetime.datetime(2010, 1, 1, 20),
303 'added': [ 304 'added': [
304 FileNode('foo/bar', content='foo'), 305 FileNode('foo/bar', content='foo'),
306 FileNode('foo/bał', content='foo'),
305 FileNode('foobar', content='foo'), 307 FileNode('foobar', content='foo'),
306 FileNode('qwe', content='foo'), 308 FileNode('qwe', content='foo'),
307 ], 309 ],
308 }, 310 },
309 { 311 {
321 323
322 def test_initial_commit(self): 324 def test_initial_commit(self):
323 changeset = self.repo.get_changeset(0) 325 changeset = self.repo.get_changeset(0)
324 self.assertItemsEqual(changeset.added, [ 326 self.assertItemsEqual(changeset.added, [
325 changeset.get_node('foo/bar'), 327 changeset.get_node('foo/bar'),
328 changeset.get_node('foo/bał'),
326 changeset.get_node('foobar'), 329 changeset.get_node('foobar'),
327 changeset.get_node('qwe'), 330 changeset.get_node('qwe'),
328 ]) 331 ])
329 self.assertItemsEqual(changeset.changed, []) 332 self.assertItemsEqual(changeset.changed, [])
330 self.assertItemsEqual(changeset.removed, []) 333 self.assertItemsEqual(changeset.removed, [])
342 ]) 345 ])
343 self.assertTrue(isinstance(changeset.removed, RemovedFileNodesGenerator)) 346 self.assertTrue(isinstance(changeset.removed, RemovedFileNodesGenerator))
344 self.assertEqual(len(changeset.removed), 1) 347 self.assertEqual(len(changeset.removed), 1)
345 self.assertEqual(list(changeset.removed)[0].path, 'qwe') 348 self.assertEqual(list(changeset.removed)[0].path, 'qwe')
346 349
350 def test_get_filemode(self):
351 changeset = self.repo.get_changeset()
352 self.assertEqual(33188, changeset.get_file_mode('foo/bar'))
353
354 def test_get_filemode_non_ascii(self):
355 changeset = self.repo.get_changeset()
356 self.assertEqual(33188, changeset.get_file_mode('foo/bał'))
357 self.assertEqual(33188, changeset.get_file_mode(u'foo/bał'))
347 358
348 # For each backend create test case class 359 # For each backend create test case class
349 for alias in SCM_TESTS: 360 for alias in SCM_TESTS:
350 attrs = { 361 attrs = {
351 'backend_alias': alias, 362 'backend_alias': alias,