view tests/test_helpers.py @ 946:289f2c7752a8

push: reset encoding before the final update Before a9f315eae67c, all the rebase sequence including the update was executed with the encoding reset to the native one. After the change, the final update was left out and ran with UTF-8, which fails for some badly shaped repository. Reset the correct encoding context.
author Patrick Mezard <patrick@mezard.eu>
date Fri, 12 Oct 2012 21:30:24 +0200
parents bfbfc9be3faa
children d741f536f23a
line wrap: on
line source

import os, sys, unittest

_rootdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, _rootdir)

from hgsubversion import editor

class TestHelpers(unittest.TestCase):
    def test_filestore(self):
        fs = editor.FileStore(2)
        fs.setfile('a', 'a')
        fs.setfile('b', 'b')
        self.assertEqual('a', fs._data.get('a'))
        self.assertEqual('b', fs._data.get('b'))

        fs.delfile('b')
        self.assertRaises(IOError, lambda: fs.getfile('b'))
        fs.setfile('bb', 'bb')
        self.assertTrue('bb' in fs._files)
        self.assertTrue('bb' not in fs._data)
        self.assertEqual('bb', fs.getfile('bb'))

        fs.delfile('bb')
        self.assertTrue('bb' not in fs._files)
        self.assertEqual([], os.listdir(fs._tempdir))
        self.assertRaises(IOError, lambda: fs.getfile('bb'))

        fs.setfile('bb', 'bb')
        self.assertEqual(1, len(os.listdir(fs._tempdir)))
        fs.popfile('bb')
        self.assertEqual([], os.listdir(fs._tempdir))
        self.assertRaises(editor.EditingError, lambda: fs.getfile('bb'))

def suite():
    return unittest.TestSuite([
        unittest.TestLoader().loadTestsFromTestCase(TestHelpers),
        ])