view tests/test_fetch_truncated.py @ 658:d101b39f6c51

test_startrev: add a few assertions about clone lengths A few tweaks are added to the test to ensure that all tests pass these assertions: Some fixtures fail them by resulting in empty clones. Explicitly blacklisting such fixtures allows as to ensure that the other fixtures continue to work as expected. Other fixtures contain no files in trunk at HEAD, so we test them with other subdirectories instead.
author Dan Villiom Podlaski Christiansen <danchr@gmail.com>
date Wed, 11 Aug 2010 19:57:34 +0200
parents d2ef7220a079
children 312b37bc5e20
line wrap: on
line source

import test_util

import unittest

from mercurial import commands
from mercurial import hg

class TestFetchTruncatedHistory(test_util.TestBase):
    def test_truncated_history(self, stupid=False):
        # Test repository does not follow the usual layout
        test_util.load_svndump_fixture(self.repo_path, 'truncatedhistory.svndump')
        svn_url = test_util.fileurl(self.repo_path + '/project2')
        commands.clone(self.ui(stupid), svn_url, self.wc_path, noupdate=True)
        repo = hg.repository(self.ui(stupid), self.wc_path)

        # We are converting /project2/trunk coming from:
        #
        # Changed paths:
        #     D /project1
        #     A /project2/trunk (from /project1:2)
        #
        # Here a full fetch should be performed since we are starting
        # the conversion on an already filled branch.
        tip = repo['tip']
        files = tip.manifest().keys()
        files.sort()
        self.assertEqual(files, ['a', 'b'])
        self.assertEqual(repo['tip']['a'].data(), 'a\n')

    def test_truncated_history_stupid(self):
        self.test_truncated_history(True)

def suite():
    all = [unittest.TestLoader().loadTestsFromTestCase(TestFetchTruncatedHistory),
          ]
    return unittest.TestSuite(all)