~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/per_foreign_vcs/test_repository.py

  • Committer: Jelmer Vernooij
  • Date: 2009-11-12 22:57:55 UTC
  • mto: This revision was merged to the branch mainline in revision 4833.
  • Revision ID: jelmer@samba.org-20091112225755-rpuefjvnpippdeuk
Add some more basic tests for the repository API.

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
 
21
21
from bzrlib.tests import (
22
22
    TestCase,
 
23
    TestCaseWithTransport,
23
24
    )
24
25
 
25
26
 
36
37
    def test_format_description(self):
37
38
        self.assertIsInstance(self.repository_format.get_format_description(),
38
39
            str)
 
40
 
 
41
 
 
42
class ForeignRepositoryFactory(object):
 
43
    """Factory of repository for ForeignRepositoryTests."""
 
44
 
 
45
    def make_repository(self, transport):
 
46
        """Create a new, valid, repository. May or may not contain 
 
47
        data."""
 
48
        raise NotImplementedError(self.make_repository)
 
49
 
 
50
 
 
51
class ForeignRepositoryTests(TestCaseWithTransport):
 
52
    """Basic tests for foreign repository implementations.
 
53
 
 
54
    These tests mainly make sure that the implementation covers the required
 
55
    bits of the API and returns semi-reasonable values, that are 
 
56
    at least of the expected types and in the expected ranges.
 
57
    """
 
58
    repository_factory = None # Set to an instance of ForeignRepositoryFactory by the scenario
 
59
 
 
60
    def make_repository(self):
 
61
        return self.repository_factory.make_repository(self.get_transport())
 
62
 
 
63
    def test_make_working_trees(self):
 
64
        """Test that Repository.make_working_trees() returns a boolean."""
 
65
        repo = self.make_repository()
 
66
        self.assertIsInstance(repo.make_working_trees(), bool)
 
67
 
 
68
    def test_get_physical_lock_status(self):
 
69
        """Test that a new repository is not locked by default."""
 
70
        repo = self.make_repository()
 
71
        self.assertFalse(repo.get_physical_lock_status())
 
72
 
 
73
    def test_is_shared(self):
 
74
        """Test that is_shared() returns a bool."""
 
75
        repo = self.make_repository()
 
76
        self.assertIsInstance(repo.is_shared(), bool)
 
77
 
 
78
    def test_gather_stats(self):
 
79
        """Test that gather_stats() will at least return a dictionary 
 
80
        with the required keys."""
 
81
        repo = self.make_repository()
 
82
        stats = repo.gather_stats()
 
83
        self.assertIsInstance(stats, dict)
 
84
        self.assertTrue(stats.has_key("revisions"))