view tests/test_fetch_symlinks.py @ 1301:9e46dfddd3a9

svnmeta: turn layout into a cached property It turns out we don't need the fancy checks that were in the layout property before so we use our new fancy property generator to cache this property.
author Sean Farley <sean.michael.farley@gmail.com>
date Mon, 24 Mar 2014 11:20:54 -0500
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')