~jtv/storm/advise-prejoins

« back to all changes in this revision

Viewing changes to tests/fetch_statistics.py

  • Committer: Jeroen Vermeulen
  • Date: 2010-12-15 19:44:51 UTC
  • Revision ID: jeroen.vermeulen@canonical.com-20101215194451-7jtggt3ztp6zf5d0
Track derived fetches across stores.

Show diffs side-by-side

added added

removed removed

Lines of Context:
24
24
 
25
25
    def test_record_derived_fetch_records_new_fetch(self):
26
26
        stats = FetchStatistics()
27
 
        stats.record_derived_fetch("origin", "reference")
28
 
        self.assertEqual({("origin", "reference"): 1}, stats.derived_fetches)
 
27
        fetch = ("origin", "reference", "store")
 
28
        stats.record_derived_fetch(*fetch)
 
29
        self.assertEqual({fetch: 1}, stats.derived_fetches)
29
30
 
30
31
    def test_record_derived_fetch_records_repeated_fetch(self):
31
32
        stats = FetchStatistics()
32
 
        stats.derived_fetches = {("origin", "reference"): 1}
33
 
        stats.record_derived_fetch("origin", "reference")
34
 
        self.assertEqual({("origin", "reference"): 2}, stats.derived_fetches)
 
33
        fetch = ("origin", "reference", "store")
 
34
        stats.derived_fetches = {fetch: 1}
 
35
        stats.record_derived_fetch(*fetch)
 
36
        self.assertEqual({fetch: 2}, stats.derived_fetches)
35
37
 
36
38
    def test_merge_empty_does_nothing(self):
37
39
        stats = FetchStatistics()
38
40
        stats.original_fetches = {"origin": 1}
39
 
        stats.derived_fetches = {("origin", "reference"): 1}
 
41
        derived_fetch = ("origin", "reference", "store")
 
42
        stats.derived_fetches = {derived_fetch: 1}
40
43
        empty = FetchStatistics()
41
44
        stats.merge(empty)
42
45
        self.assertEqual({"origin": 1}, stats.original_fetches)
43
 
        self.assertEqual({("origin", "reference"): 1}, stats.derived_fetches)
 
46
        self.assertEqual({derived_fetch: 1}, stats.derived_fetches)
44
47
 
45
48
    def test_merge_adds_counts(self):
46
49
        stats = FetchStatistics()
47
50
        other_stats = FetchStatistics()
48
51
        other_stats.original_fetches = {"other_origin": 1}
49
 
        other_stats.derived_fetches = {("other_origin", "reference"): 1}
 
52
        derived_fetch = ("other_origin", "reference", "store")
 
53
        other_stats.derived_fetches = {derived_fetch: 1}
50
54
        stats.merge(other_stats)
51
55
        self.assertEqual(other_stats.original_fetches, stats.original_fetches)
52
56
        self.assertEqual(other_stats.derived_fetches, stats.derived_fetches)
54
58
    def test_merge_leaves_existing_counts_in_place(self):
55
59
        stats = FetchStatistics()
56
60
        stats.original_fetches = {"origin": 1}
57
 
        stats.derived_fetches = {("origin", "reference"): 1}
 
61
        derived_fetch = ("origin", "reference", "store")
 
62
        stats.derived_fetches = {derived_fetch: 1}
58
63
        other_stats = FetchStatistics()
59
64
        other_stats.original_fetches = {"other_origin": 1}
60
 
        other_stats.derived_fetches = {("other_origin", "reference"): 1}
 
65
        other_derived_fetch = ("other_origin", "reference", "store")
 
66
        other_stats.derived_fetches = {other_derived_fetch: 1}
61
67
        stats.merge(other_stats)
62
68
 
63
69
        cumulative_original_fetches = {
65
71
            "other_origin": 1,
66
72
        }
67
73
        cumulative_derived_fetches = {
68
 
            ("origin", "reference"): 1,
69
 
            ("other_origin", "reference"): 1,
 
74
            derived_fetch: 1,
 
75
            other_derived_fetch: 1,
70
76
        }
71
77
        self.assertEqual(cumulative_original_fetches, stats.original_fetches)
72
78
        self.assertEqual(cumulative_derived_fetches, stats.derived_fetches)
74
80
    def test_merge_sums_counts(self):
75
81
        stats = FetchStatistics()
76
82
        stats.original_fetches = {"origin": 1}
77
 
        stats.derived_fetches = {("origin", "reference"): 1}
 
83
        derived_fetch = ("origin", "reference", "store")
 
84
        stats.derived_fetches = {derived_fetch: 1}
78
85
        other_stats = FetchStatistics()
79
86
        other_stats.original_fetches = {"origin": 1}
80
 
        other_stats.derived_fetches = {("origin", "reference"): 1}
 
87
        other_stats.derived_fetches = {derived_fetch: 1}
81
88
        stats.merge(other_stats)
82
89
 
83
90
        self.assertEqual({"origin": 2}, stats.original_fetches)
84
 
        self.assertEqual({("origin", "reference"): 2}, stats.derived_fetches)
 
91
        self.assertEqual({derived_fetch: 2}, stats.derived_fetches)