view tests/test_fetch_symlinks.py @ 1466:16242cec256f

svncommands: unlink revmap file before rebuildmeta Rebuildmeta should success regardless of what the content of revmap is. The recent refactor makes it possible that a corrupted revmap file can prevent "rebuildmeta" from running successfully. This patch fixes the issue by deleting the revmap file before doing actual rebuildmeta so that the revmap object can be created successfully.
author Jun Wu <quark@fb.com>
date Tue, 07 Jun 2016 02:56:55 +0100
parents 8b6fb32b001e
children
line wrap: on
line source

import test_util

import unittest

class TestFetchSymlinks(test_util.TestBase):
    stupid_mode_tests = True

    def test_symlinks(self):
        repo = self._load_fixture_and_fetch('symlinks.svndump')
        # 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)

class TestMergeSpecial(test_util.TestBase):
    stupid_mode_tests = True

    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')