Rev 2951: Switch test_check_reconcile.py into its own subdir, which in http://bzr.arbash-meinel.com/branches/bzr/0.93-dev/test_autoloader

John Arbash Meinel john at arbash-meinel.com
Tue Nov 6 18:23:01 GMT 2007


At http://bzr.arbash-meinel.com/branches/bzr/0.93-dev/test_autoloader

------------------------------------------------------------
revno: 2951
revision-id:john at arbash-meinel.com-20071106182250-wo1r53cm684pxezy
parent: john at arbash-meinel.com-20071104200653-g0yhddwczxj1nmmf
committer: John Arbash Meinel <john at arbash-meinel.com>
branch nick: test_autoloader
timestamp: Tue 2007-11-06 12:22:50 -0600
message:
  Switch test_check_reconcile.py into its own subdir, which
  has a repo_implementations times broken_scenarios set of scenarios.
  All test are still being loaded.
added:
  bzrlib/tests/repository_implementations/__init__.py __init__.py-20071106181807-kpo66u524sewupho-1
  bzrlib/tests/repository_implementations/broken_scenarios/ bzrlibtestsrepositor-20071106181024-vkv9m7xzrpe8pujf-1
renamed:
  bzrlib/tests/repository_implementations/__init__.py => bzrlib/tests/repository_implementations/broken_scenarios/__init__.py __init__.py-20060131092037-9564957a7d4a841b
  bzrlib/tests/repository_implementations/test_check_reconcile.py => bzrlib/tests/repository_implementations/broken_scenarios/test_check_reconcile.py test_broken.py-20070928125406-62236394w0jpbpd6-2
modified:
  bzrlib/tests/repository_implementations/broken_scenarios/__init__.py __init__.py-20060131092037-9564957a7d4a841b
-------------- next part --------------
=== added file 'bzrlib/tests/repository_implementations/__init__.py'
--- a/bzrlib/tests/repository_implementations/__init__.py	1970-01-01 00:00:00 +0000
+++ b/bzrlib/tests/repository_implementations/__init__.py	2007-11-06 18:22:50 +0000
@@ -0,0 +1,126 @@
+# Copyright (C) 2006, 2007 Canonical Ltd
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+
+"""Repository implementation tests for bzr.
+
+These test the conformance of all the repository variations to the expected API.
+Specific tests for individual formats are in the tests/test_repository.py file 
+rather than in tests/branch_implementations/*.py.
+"""
+
+from bzrlib import (
+    repository,
+    )
+from bzrlib.repofmt import (
+    weaverepo,
+    )
+from bzrlib.remote import RemoteBzrDirFormat, RemoteRepositoryFormat
+from bzrlib.smart.server import (
+    SmartTCPServer_for_testing,
+    ReadonlySmartTCPServer_for_testing,
+    )
+from bzrlib.tests import (
+                          default_transport,
+                          load_tests_with_scenarios,
+                          TestScenarioApplier,
+                          )
+from bzrlib.tests.bzrdir_implementations.test_bzrdir import TestCaseWithBzrDir
+from bzrlib.transport.memory import MemoryServer
+
+
+class RepositoryTestProviderAdapter(TestScenarioApplier):
+    """A tool to generate a suite testing multiple repository formats at once.
+
+    This is done by copying the test once for each transport and injecting
+    the transport_server, transport_readonly_server, and bzrdir_format and
+    repository_format classes into each copy. Each copy is also given a new id()
+    to make it easy to identify.
+    """
+
+    def __init__(self, transport_server, transport_readonly_server, formats,
+                 vfs_transport_factory=None):
+        TestScenarioApplier.__init__(self)
+        self._transport_server = transport_server
+        self._transport_readonly_server = transport_readonly_server
+        self._vfs_transport_factory = vfs_transport_factory
+        self.scenarios = self.formats_to_scenarios(formats)
+    
+    def formats_to_scenarios(self, formats):
+        """Transform the input formats to a list of scenarios.
+
+        :param formats: A list of (repository_format, bzrdir_format).
+        """
+        result = []
+        for repository_format, bzrdir_format in formats:
+            scenario = (repository_format.__class__.__name__,
+                {"transport_server":self._transport_server,
+                 "transport_readonly_server":self._transport_readonly_server,
+                 "bzrdir_format":bzrdir_format,
+                 "repository_format":repository_format,
+                 })
+            # Only override the test's vfs_transport_factory if one was
+            # specified, otherwise just leave the default in place.
+            if self._vfs_transport_factory:
+                scenario[1]['vfs_transport_factory'] = self._vfs_transport_factory
+            result.append(scenario)
+        return result
+
+
+class TestCaseWithRepository(TestCaseWithBzrDir):
+
+    def make_repository(self, relpath, format=None):
+        if format is None:
+            # Create a repository of the type we are trying to test.
+            made_control = self.make_bzrdir(relpath)
+            repo = self.repository_format.initialize(made_control)
+            if getattr(self, "repository_to_test_repository", None):
+                repo = self.repository_to_test_repository(repo)
+            return repo
+        else:
+            return super(TestCaseWithRepository, self).make_repository(
+                relpath, format=format)
+
+
+def get_repository_format_scenarios():
+    registry = repository.format_registry
+    all_formats = [registry.get(k) for k in registry.keys()]
+    all_formats.extend(weaverepo._legacy_formats)
+    disk_format_adapter = RepositoryTestProviderAdapter(
+        default_transport,
+        # None here will cause a readonly decorator to be created
+        # by the TestCaseWithTransport.get_readonly_transport method.
+        None,
+        [(format, format._matchingbzrdir) for format in all_formats])
+
+    remote_repo_adapter = RepositoryTestProviderAdapter(
+        SmartTCPServer_for_testing,
+        ReadonlySmartTCPServer_for_testing,
+        [(RemoteRepositoryFormat(), RemoteBzrDirFormat())],
+        MemoryServer
+        )
+
+    # format_scenarios is all the implementations of Repository; i.e. all disk
+    # formats plus RemoteRepository.
+    format_scenarios = (disk_format_adapter.scenarios +
+                        remote_repo_adapter.scenarios)
+    return format_scenarios
+
+
+def test_suite():
+    format_scenarios = get_repository_format_scenarios()
+
+    return load_tests_with_scenarios(__file__, __name__, format_scenarios)

=== added directory 'bzrlib/tests/repository_implementations/broken_scenarios'
=== renamed file 'bzrlib/tests/repository_implementations/__init__.py' => 'bzrlib/tests/repository_implementations/broken_scenarios/__init__.py'
--- a/bzrlib/tests/repository_implementations/__init__.py	2007-11-04 19:35:25 +0000
+++ b/bzrlib/tests/repository_implementations/broken_scenarios/__init__.py	2007-11-06 18:22:50 +0000
@@ -24,81 +24,13 @@
 rather than in tests/branch_implementations/*.py.
 """
 
-from bzrlib import (
-    repository,
-    )
-from bzrlib.repofmt import (
-    weaverepo,
-    )
-from bzrlib.remote import RemoteBzrDirFormat, RemoteRepositoryFormat
-from bzrlib.smart.server import (
-    SmartTCPServer_for_testing,
-    ReadonlySmartTCPServer_for_testing,
-    )
 from bzrlib.tests import (
-                          adapt_modules,
-                          default_transport,
-                          load_and_adapt_modules,
+                          load_tests_with_scenarios,
                           multiply_scenarios,
-                          multiply_tests_from_modules,
-                          TestScenarioApplier,
-                          TestLoader,
                           )
-from bzrlib.tests.bzrdir_implementations.test_bzrdir import TestCaseWithBzrDir
-from bzrlib.transport.memory import MemoryServer
-
-
-class RepositoryTestProviderAdapter(TestScenarioApplier):
-    """A tool to generate a suite testing multiple repository formats at once.
-
-    This is done by copying the test once for each transport and injecting
-    the transport_server, transport_readonly_server, and bzrdir_format and
-    repository_format classes into each copy. Each copy is also given a new id()
-    to make it easy to identify.
-    """
-
-    def __init__(self, transport_server, transport_readonly_server, formats,
-                 vfs_transport_factory=None):
-        TestScenarioApplier.__init__(self)
-        self._transport_server = transport_server
-        self._transport_readonly_server = transport_readonly_server
-        self._vfs_transport_factory = vfs_transport_factory
-        self.scenarios = self.formats_to_scenarios(formats)
-    
-    def formats_to_scenarios(self, formats):
-        """Transform the input formats to a list of scenarios.
-
-        :param formats: A list of (repository_format, bzrdir_format).
-        """
-        result = []
-        for repository_format, bzrdir_format in formats:
-            scenario = (repository_format.__class__.__name__,
-                {"transport_server":self._transport_server,
-                 "transport_readonly_server":self._transport_readonly_server,
-                 "bzrdir_format":bzrdir_format,
-                 "repository_format":repository_format,
-                 })
-            # Only override the test's vfs_transport_factory if one was
-            # specified, otherwise just leave the default in place.
-            if self._vfs_transport_factory:
-                scenario[1]['vfs_transport_factory'] = self._vfs_transport_factory
-            result.append(scenario)
-        return result
-
-
-class TestCaseWithRepository(TestCaseWithBzrDir):
-
-    def make_repository(self, relpath, format=None):
-        if format is None:
-            # Create a repository of the type we are trying to test.
-            made_control = self.make_bzrdir(relpath)
-            repo = self.repository_format.initialize(made_control)
-            if getattr(self, "repository_to_test_repository", None):
-                repo = self.repository_to_test_repository(repo)
-            return repo
-        else:
-            return super(TestCaseWithRepository, self).make_repository(
-                relpath, format=format)
+from bzrlib.tests.repository_implementations import (
+    get_repository_format_scenarios,
+    )
 
 
 class BrokenRepoScenario(object):
@@ -613,131 +545,16 @@
     IncorrectlyOrderedParentsScenario,
     UnreferencedFileParentsFromNoOpMergeScenario,
     ]
-    
+
 
 def test_suite():
-    registry = repository.format_registry
-    all_formats = [registry.get(k) for k in registry.keys()]
-    all_formats.extend(weaverepo._legacy_formats)
-    disk_format_adapter = RepositoryTestProviderAdapter(
-        default_transport,
-        # None here will cause a readonly decorator to be created
-        # by the TestCaseWithTransport.get_readonly_transport method.
-        None,
-        [(format, format._matchingbzrdir) for format in all_formats])
-
-    remote_repo_adapter = RepositoryTestProviderAdapter(
-        SmartTCPServer_for_testing,
-        ReadonlySmartTCPServer_for_testing,
-        [(RemoteRepositoryFormat(), RemoteBzrDirFormat())],
-        MemoryServer
-        )
-
     # format_scenarios is all the implementations of Repository; i.e. all disk
     # formats plus RemoteRepository.
-    format_scenarios = (disk_format_adapter.scenarios +
-                        remote_repo_adapter.scenarios)
-
-    prefix = 'bzrlib.tests.repository_implementations.'
-    test_repository_modules = [
-        'test_break_lock',
-        'test_check',
-        # test_check_reconcile is intentionally omitted, see below.
-        'test_commit_builder',
-        'test_fetch',
-        'test_fileid_involved',
-        'test_has_same_location',
-        'test_is_write_locked',
-        'test_iter_reverse_revision_history',
-        'test_pack',
-        'test_reconcile',
-        'test_repository',
-        'test_revision',
-        'test_statistics',
-        'test_write_group',
-        ]
-    module_name_list = [prefix + module_name
-                        for module_name in test_repository_modules]
-
-    # Parameterise repository_implementations test modules by format.
-    result = multiply_tests_from_modules(module_name_list, format_scenarios)
-
-    # test_check_reconcile needs to be parameterised by format *and* by broken
-    # repository scenario.
+    format_scenarios = get_repository_format_scenarios()
+
     broken_scenarios = [(s.__name__, {'scenario_class': s})
                         for s in all_broken_scenario_classes]
     broken_scenarios_for_all_formats = multiply_scenarios(
         format_scenarios, broken_scenarios)
-    broken_scenario_applier = TestScenarioApplier()
-    broken_scenario_applier.scenarios = broken_scenarios_for_all_formats
-    loader = TestLoader()
-    adapt_modules(
-        [prefix + 'test_check_reconcile'],
-        broken_scenario_applier, loader, result)
-
-    return result
-#def test_suite():
-#    registry = repository.format_registry
-#    all_formats = [registry.get(k) for k in registry.keys()]
-#    all_formats.extend(weaverepo._legacy_formats)
-#    disk_format_adapter = RepositoryTestProviderAdapter(
-#        default_transport,
-#        # None here will cause a readonly decorator to be created
-#        # by the TestCaseWithTransport.get_readonly_transport method.
-#        None,
-#        [(format, format._matchingbzrdir) for format in all_formats])
-#    result = load_and_adapt_modules(adapter, __file__, __name__)
-#
-#    remote_repo_adapter = RepositoryTestProviderAdapter(
-#        SmartTCPServer_for_testing,
-#        ReadonlySmartTCPServer_for_testing,
-#        [(RemoteRepositoryFormat(), RemoteBzrDirFormat())],
-#        MemoryServer
-#        )
-#<<<<<<< TREE
-#
-#    # format_scenarios is all the implementations of Repository; i.e. all disk
-#    # formats plus RemoteRepository.
-#    format_scenarios = (disk_format_adapter.scenarios +
-#                        remote_repo_adapter.scenarios)
-#
-#    prefix = 'bzrlib.tests.repository_implementations.'
-#    test_repository_modules = [
-#        'test_break_lock',
-#        'test_check',
-#        # test_check_reconcile is intentionally omitted, see below.
-#        'test_commit_builder',
-#        'test_fetch',
-#        'test_fileid_involved',
-#        'test_has_same_location',
-#        'test_is_write_locked',
-#        'test_iter_reverse_revision_history',
-#        'test_pack',
-#        'test_reconcile',
-#        'test_repository',
-#        'test_revision',
-#        'test_statistics',
-#        'test_write_group',
-#        ]
-#    # module_name_list = [prefix + module_name
-#    #                     for module_name in test_repository_modules]
-#
-#    # # Parameterise repository_implementations test modules by format.
-#    # result = multiply_tests_from_modules(module_name_list, format_scenarios)
-#
-#    # # test_check_reconcile needs to be parameterised by format *and* by broken
-#    # # repository scenario.
-#    # broken_scenarios = [(s.__name__, {'scenario_class': s})
-#    #                     for s in all_broken_scenario_classes]
-#    # broken_scenarios_for_all_formats = multiply_scenarios(
-#    #     format_scenarios, broken_scenarios)
-#    # broken_scenario_applier = TestScenarioApplier()
-#    # broken_scenario_applier.scenarios = broken_scenarios_for_all_formats
-#    # loader = TestLoader()
-#    # adapt_modules(
-#    #     [prefix + 'test_check_reconcile'],
-#    #     broken_scenario_applier, loader, result)
-#
-#    # result.addTests(load_and_adapt_modules(adapt_to_smart_server,
-#    #                                        __file__, __name__))
-#    return result
+    return load_tests_with_scenarios(__file__, __name__,
+                                     broken_scenarios_for_all_formats)

=== renamed file 'bzrlib/tests/repository_implementations/test_check_reconcile.py' => 'bzrlib/tests/repository_implementations/broken_scenarios/test_check_reconcile.py'


More information about the bazaar-commits mailing list