view tests/test_fetch_symlinks.py @ 999:3f45bd7b60cf

bundle: add 'portable' parameter to prevent error (issue383) hgsubversion does not fully implement the -r/--rev flag for `hg bundle` so would crash when passed this parameter since the wrapped findcommonoutgoing did not match the parameter list hg expects. With this patch the portable parameter is added to this function, but remains unused so that `hg bundle -r` will properly generate a bundle, but up to tip (in essence ignoring -r parameter).
author Michael Connor <mconnor@fb.com>
date Wed, 20 Mar 2013 17:22:29 -0700
parents bd12a4da0f35
children d741f536f23a
line wrap: on
line source

import test_util

import unittest

class TestFetchSymlinks(test_util.TestBase):
    def test_symlinks(self, stupid=False):
        repo = self._load_fixture_and_fetch('symlinks.svndump', stupid=stupid)
        # Check symlinks throughout history
        links = {
            0: {
                'linka': 'a',
                'linka2': 'a',
                'd/linka': 'a',
                },
            1: {
                'linkaa': 'a',
                'linka2': 'a',
                'd2/linka': 'a',
                },
            2: {
                'linkaa': 'b',
                'linka2': 'a',
                'd2/linka': 'b',
                },
            3: {
                },
            4: {
                'linka3': 'a',
                },
            5: {
                'linka3': 'a',
                },
            6: {
                'linka3': 'a',
                'linka4': 'link to this',
                },
            }

        for rev in repo:
            ctx = repo[rev]
            for f in ctx.manifest():
                l = 'l' in ctx[f].flags()
                lref = f in links[rev]
                self.assertEqual(lref, l, '%r != %r for %s@%r' % (lref, l, f, rev))
                if f in links[rev]:
                    self.assertEqual(links[rev][f], ctx[f].data())
            for f in links[rev]:
                self.assertTrue(f in ctx)

    def test_symlinks_stupid(self):
        self.test_symlinks(True)

class TestMergeSpecial(test_util.TestBase):
    def test_special(self):
        repo = self._load_fixture_and_fetch('addspecial.svndump',
                                            subdir='trunk')
        ctx = repo['tip']
        self.assertEqual(ctx['fnord'].flags(), 'l')
        self.assertEqual(ctx['exe'].flags(), 'x')

def suite():
    all_tests = [
        unittest.TestLoader().loadTestsFromTestCase(TestFetchSymlinks),
        unittest.TestLoader().loadTestsFromTestCase(TestMergeSpecial),
        ]
    return unittest.TestSuite(all_tests)