~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/repository_implementations/test_statistics.py

First cut at pluralised VersionedFiles. Some rather massive API incompatabilities, primarily because of the difficulty of coherence among competing stores.

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
 
22
22
class TestGatherStats(TestCaseWithRepository):
23
23
 
24
 
    def check_stats_has_size(self, stats):
25
 
        """Check that stats has a reasonable size entry."""
26
 
        # actual disk size varies from implementation to implementation,
27
 
        # but they should all provide it on their native transport.
28
 
        self.assertTrue('size' in stats)
29
 
        # and it should be a number
30
 
        self.assertIsInstance(stats['size'], (int, long))
31
 
        # and now remove it to make other assertions work without variation.
32
 
        del stats['size']
33
 
 
34
24
    def test_gather_stats(self):
35
25
        """First smoke test covering the refactoring into the Repository api."""
36
26
        tree = self.make_branch_and_memory_tree('.')
48
38
        # now, in the same repository, asking for stats with/without the 
49
39
        # committers flag generates the same date information.
50
40
        stats = tree.branch.repository.gather_stats(rev2, committers=False)
51
 
        self.check_stats_has_size(stats)
52
41
        self.assertEqual({
53
42
            'firstrev': (1170491381.0, 0),
54
43
            'latestrev': (1171491381.0, 0),
56
45
            },
57
46
            stats)
58
47
        stats = tree.branch.repository.gather_stats(rev2, committers=True)
59
 
        self.check_stats_has_size(stats)
60
48
        self.assertEqual({
61
49
            'committers': 2,
62
50
            'firstrev': (1170491381.0, 0),
65
53
            },
66
54
            stats)
67
55
 
68
 
    def test_gather_stats_norevid_gets_size(self):
69
 
        """Without a revid, repository size is still gathered."""
70
 
        tree = self.make_branch_and_memory_tree('.')
71
 
        tree.lock_write()
72
 
        tree.add('')
73
 
        # put something in the repository, because zero-size is borink.
74
 
        rev1 = tree.commit('first post')
75
 
        tree.unlock()
76
 
        # now ask for global repository stats.
77
 
        stats = tree.branch.repository.gather_stats()
78
 
        self.check_stats_has_size(stats)
79
 
        self.assertEqual({
80
 
            'revisions': 1
81
 
            },
82
 
            stats)
83
 
 
84
56
    def test_gather_stats_empty_repo(self):
85
 
        """An empty repository still has size and revisions."""
 
57
        """An empty repository still has revisions."""
86
58
        tree = self.make_branch_and_memory_tree('.')
87
59
        # now ask for global repository stats.
88
60
        stats = tree.branch.repository.gather_stats()
89
 
        self.check_stats_has_size(stats)
90
61
        self.assertEqual({
91
62
            'revisions': 0
92
63
            },