def test_is_compatible_and_registered(self): # InterWeaveRepo is compatible when either side # is a format 5/6/7 branch from bzrlib.repofmt import knitrepo formats = [ RepositoryFormat5(), RepositoryFormat6(), RepositoryFormat7() ] incompatible_formats = [ RepositoryFormat4(), knitrepo.RepositoryFormatKnit1(), ] repo_a = self.make_repository('a') repo_b = self.make_repository('b') is_compatible = InterWeaveRepo.is_compatible for source in incompatible_formats: # force incompatible left then right repo_a._format = source repo_b._format = formats[0] self.assertFalse(is_compatible(repo_a, repo_b)) self.assertFalse(is_compatible(repo_b, repo_a)) for source in formats: repo_a._format = source for target in formats: repo_b._format = target self.assertTrue(is_compatible(repo_a, repo_b)) self.assertEqual(InterWeaveRepo, InterRepository.get(repo_a, repo_b).__class__)