~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_api.py

  • Committer: Robert Collins
  • Date: 2007-06-26 08:52:20 UTC
  • mto: This revision was merged to the branch mainline in revision 2554.
  • Revision ID: robertc@robertcollins.net-20070626085220-iovhwfjflk8vffbh
Add require_api API.

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
 
24
24
import bzrlib
25
25
import bzrlib.api
 
26
from bzrlib.errors import IncompatibleAPI
26
27
from bzrlib.tests import TestCase
27
28
 
28
29
class APITests(TestCase):
69
70
        an_object = TrivialObject()
70
71
        self.assertEqual(bzrlib.version_info[0:3],
71
72
            bzrlib.api.get_current_api_version(an_object))
 
73
 
 
74
    def test_require_api_wanted_is_minimum_is_ok(self):
 
75
        an_object = TrivialObject()
 
76
        an_object.api_minimum_version = (1, 2, 3)
 
77
        an_object.api_current_version = (4, 5, 6)
 
78
        bzrlib.api.require_api(an_object, (1, 2, 3))
 
79
 
 
80
    def test_require_api_wanted_is_current_is_ok(self):
 
81
        an_object = TrivialObject()
 
82
        an_object.api_minimum_version = (1, 2, 3)
 
83
        an_object.api_current_version = (4, 5, 6)
 
84
        bzrlib.api.require_api(an_object, (4, 5, 6))
 
85
 
 
86
    def test_require_api_wanted_is_above_minimum_is_ok(self):
 
87
        an_object = TrivialObject()
 
88
        an_object.api_minimum_version = (1, 2, 3)
 
89
        an_object.api_current_version = (4, 5, 6)
 
90
        bzrlib.api.require_api(an_object, (1, 2, 4))
 
91
 
 
92
    def test_require_api_wanted_is_below_current_is_ok(self):
 
93
        an_object = TrivialObject()
 
94
        an_object.api_minimum_version = (1, 2, 3)
 
95
        an_object.api_current_version = (4, 5, 6)
 
96
        bzrlib.api.require_api(an_object, (4, 5, 5))
 
97
 
 
98
    def test_require_api_wanted_is_below_minimum_raises(self):
 
99
        an_object = TrivialObject()
 
100
        an_object.api_minimum_version = (1, 2, 3)
 
101
        an_object.api_current_version = (4, 5, 6)
 
102
        err = self.assertRaises(IncompatibleAPI,
 
103
            bzrlib.api.require_api, an_object, (1, 2, 2))
 
104
        self.assertEqual(err.api, an_object)
 
105
        self.assertEqual(err.wanted, (1, 2, 2))
 
106
        self.assertEqual(err.minimum, (1, 2, 3))
 
107
        self.assertEqual(err.current, (4, 5, 6))
 
108
 
 
109
    def test_require_api_wanted_is_above_current_raises(self):
 
110
        an_object = TrivialObject()
 
111
        an_object.api_minimum_version = (1, 2, 3)
 
112
        an_object.api_current_version = (4, 5, 6)
 
113
        err = self.assertRaises(IncompatibleAPI,
 
114
            bzrlib.api.require_api, an_object, (4, 5, 7))
 
115
        self.assertEqual(err.api, an_object)
 
116
        self.assertEqual(err.wanted, (4, 5, 7))
 
117
        self.assertEqual(err.minimum, (1, 2, 3))
 
118
        self.assertEqual(err.current, (4, 5, 6))