view tests/test_fetch_exec.py @ 746:174f03c288d4

svnmeta: abort when no UUID given and none is stored on disk. Previously, not passing a UUID when instantiating an SVNMeta instance would cause it to succeed even if no UUID was previously known. First when the UUID was actually read would an exception be raised. This slight refactoring of _set_uuid() makes it so an exception is raised immediately. While at it, the exception message is changed to be slightly more accurate and helpful.
author Dan Villiom Podlaski Christiansen <danchr@gmail.com>
date Thu, 11 Nov 2010 21:32:22 +0100
parents d2ef7220a079
children 312b37bc5e20
line wrap: on
line source

import test_util

import unittest

from mercurial import node

class TestFetchExec(test_util.TestBase):
    def _load_fixture_and_fetch(self, fixture_name, stupid):
        return test_util.load_fixture_and_fetch(fixture_name, self.repo_path,
                                                self.wc_path, stupid=stupid)

    def assertexec(self, ctx, files, isexec=True):
        for f in files:
            self.assertEqual(isexec, 'x' in ctx[f].flags())

    def test_exec(self, stupid=False):
        repo = self._load_fixture_and_fetch('executebit.svndump', stupid)
        self.assertexec(repo[0], ['text1', 'binary1', 'empty1'], True)
        self.assertexec(repo[0], ['text2', 'binary2', 'empty2'], False)
        self.assertexec(repo[1], ['text1', 'binary1', 'empty1'], False)
        self.assertexec(repo[1], ['text2', 'binary2', 'empty2'], True)

    def test_exec_stupid(self):
        self.test_exec(True)

    def test_empty_prop_val_executable(self, stupid=False):
        repo = self._load_fixture_and_fetch('executable_file_empty_prop.svndump', stupid)
        self.assertEqual(node.hex(repo['tip'].node()),
                         '08e6b380bf291b361a418203a1cb9427213cd1fd')
        self.assertEqual(repo['tip']['foo'].flags(), 'x')

    def test_empty_prop_val_executable_stupid(self):
        self.test_empty_prop_val_executable(True)

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