view tests/test_helpers.py @ 962:8648ccfb8325

editor: process missing files with regular files Missing files were stored directly in RevisionMeta and resolved after the revision was replayed. It means the missing files set was no pruned by delete_entry() actions or by the filemap, and some of them were fetched for no reason. Say you convert: A branch/foo/bar (from trunk/foo/bar:123) with a filemap excluding "foo/bar". Since the directory was excluded in trunk the files cannot be found and were marked as missing even though they were discarded afterwards.
author Patrick Mezard <patrick@mezard.eu>
date Sat, 20 Oct 2012 22:22:02 +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),
        ])