Mercurial > hgsubversion
view tests/test_fetch_truncated.py @ 1134:a9b6e38d6dc9
util: add visitor pattern for scrubbing json
These functions are for future patches that will add safer serialization via
json. '_convert' is a visitor pattern that will be used for lists,
dictionaries, and strings for helping convert None to the empty string since
json forbids 'null' as a key for a dictionary.
None -> '' is a safe mapping because this is for the 'branch_info' variable
which already maps the empty string to None.
Note, also, that json is chosen instead of, say, csv because json has a concept
of 'null' and will better handle utf8 strings (which subversion supports).
Important: this changes the requirement of hgsubversion to python 2.6+.
author | Sean Farley <sean.michael.farley@gmail.com> |
---|---|
date | Mon, 17 Feb 2014 11:10:38 -0600 |
parents | 825fd4c0396c |
children |
line wrap: on
line source
import test_util import unittest from mercurial import commands from mercurial import hg class TestFetchTruncatedHistory(test_util.TestBase): stupid_mode_tests = True def test_truncated_history(self): # Test repository does not follow the usual layout repo_path = self.load_svndump('truncatedhistory.svndump') svn_url = test_util.fileurl(repo_path + '/project2') commands.clone(self.ui(), svn_url, self.wc_path, noupdate=True) repo = hg.repository(self.ui(), self.wc_path) # We are converting /project2/trunk coming from: # # Changed paths: # D /project1 # A /project2/trunk (from /project1:2) # # Here a full fetch should be performed since we are starting # the conversion on an already filled branch. tip = repo['tip'] files = tip.manifest().keys() files.sort() self.assertEqual(files, ['a', 'b']) self.assertEqual(repo['tip']['a'].data(), 'a\n')