Mercurial > hgsubversion
view tests/comprehensive/test_custom_layout.py @ 1150:510fa46caf9c
uuid: use util.dump and util.load for writing and reading
We need to change both svnmeta and svncommands at the same time since they are
heavily tied together.
The reason for this change is to remove the duplicate code for reading and
writing uuid present in svncommands.py. We will now use the standard util.dump
and util.load for writing and reading.
This presents a slight change in file format. Previously, the uuid file had the
format:
d073be05-634f-4543-b044-5fe20cf6d1d6[no newline]
and after this change, it is:
"d073be05-634f-4543-b044-5fe20cf6d1d6"[newline optional]
Due to the way json reads a string, the old format is still valid for use and
will be read correctly.
author | Sean Farley <sean.michael.farley@gmail.com> |
---|---|
date | Fri, 14 Mar 2014 19:44:35 -0500 |
parents | ff4e102932ed |
children | c6b01fd34694 |
line wrap: on
line source
import os import sys import unittest from mercurial import hg from mercurial import ui # wrapped in a try/except because of weirdness in how # run.py works as compared to nose. try: import test_util except ImportError: sys.path.insert(0, os.path.dirname(os.path.dirname(__file__))) import test_util from hgsubversion import wrappers def _do_case(self, name, stupid): subdir = test_util.subdir.get(name, '') config = { 'hgsubversion.stupid': stupid and '1' or '0', } repo, repo_path = self.load_and_fetch(name, subdir=subdir, layout='auto', config=config) assert test_util.repolen(self.repo) > 0, \ 'Repo had no changes, maybe you need to add a subdir entry in test_util?' wc2_path = self.wc_path + '_custom' checkout_path = repo_path if subdir: checkout_path += '/' + subdir u = ui.ui() if stupid: u.setconfig('hgsubversion', 'stupid', '1') u.setconfig('hgsubversion', 'layout', 'custom') for branch, path in test_util.custom.get(name, {}).iteritems(): u.setconfig('hgsubversionbranch', branch, path) test_util.hgclone(u, test_util.fileurl(checkout_path), wc2_path, update=False) self.repo2 = hg.repository(ui.ui(), wc2_path) self.assertEqual(self.repo.heads(), self.repo2.heads()) def buildmethod(case, name, stupid): m = lambda self: self._do_case(case, stupid) m.__name__ = name replay = stupid and 'stupid' or 'regular' m.__doc__ = 'Test custom produces same as standard on %s. (%s)' % (case, replay) return m attrs = {'_do_case': _do_case, } for case in test_util.custom: name = 'test_' + case[:-len('.svndump')].replace('-', '_') attrs[name] = buildmethod(case, name, stupid=False) name += '_stupid' attrs[name] = buildmethod(case, name, stupid=True) CustomPullTests = type('CustomPullTests', (test_util.TestBase,), attrs)