46
46
an_object = TrivialObject()
47
47
an_object.api_minimum_version = (0, 1, 2)
48
48
self.assertEqual((0, 1, 2),
49
brzlib.api.get_minimum_api_version(an_object))
49
breezy.api.get_minimum_api_version(an_object))
51
51
def test_get_minimum_api_version_fallsback_to_bzr_minimum_version(self):
52
52
an_object = TrivialObject()
53
self.assertEqual(brzlib.api_minimum_version,
54
brzlib.api.get_minimum_api_version(an_object))
53
self.assertEqual(breezy.api_minimum_version,
54
breezy.api.get_minimum_api_version(an_object))
56
56
def test_get_current_api_version_reads_api_current_version(self):
57
57
an_object = TrivialObject()
58
58
an_object.api_current_version = (3, 2, 1)
59
59
an_object.version_info = (1, 2, 3, "final", 0)
60
60
self.assertEqual((3, 2, 1),
61
brzlib.api.get_current_api_version(an_object))
61
breezy.api.get_current_api_version(an_object))
63
63
def test_get_current_api_version_fallsback_to_version_info(self):
64
64
an_object = TrivialObject()
65
65
an_object.version_info = (1, 2, 3, "final", 0)
66
66
self.assertEqual((1, 2, 3),
67
brzlib.api.get_current_api_version(an_object))
67
breezy.api.get_current_api_version(an_object))
69
def test_get_current_api_version_fallsback_to_brzlib_version_info(self):
69
def test_get_current_api_version_fallsback_to_breezy_version_info(self):
70
70
an_object = TrivialObject()
71
self.assertEqual(brzlib.version_info[0:3],
72
brzlib.api.get_current_api_version(an_object))
71
self.assertEqual(breezy.version_info[0:3],
72
breezy.api.get_current_api_version(an_object))
74
74
def test_require_any_api_wanted_one(self):
75
75
an_object = TrivialObject()
76
76
an_object.api_minimum_version = (1, 2, 3)
77
77
an_object.api_current_version = (4, 5, 6)
78
brzlib.api.require_any_api(an_object, [(1, 2, 3)])
78
breezy.api.require_any_api(an_object, [(1, 2, 3)])
80
80
def test_require_any_api_wanted_first_compatible(self):
81
81
an_object = TrivialObject()
82
82
an_object.api_minimum_version = (1, 2, 3)
83
83
an_object.api_current_version = (4, 5, 6)
84
brzlib.api.require_any_api(an_object, [(1, 2, 3), (5, 6, 7)])
84
breezy.api.require_any_api(an_object, [(1, 2, 3), (5, 6, 7)])
86
86
def test_require_any_api_wanted_second_compatible(self):
87
87
an_object = TrivialObject()
88
88
an_object.api_minimum_version = (1, 2, 3)
89
89
an_object.api_current_version = (4, 5, 6)
90
brzlib.api.require_any_api(an_object, [(5, 6, 7), (1, 2, 3)])
90
breezy.api.require_any_api(an_object, [(5, 6, 7), (1, 2, 3)])
92
92
def test_require_any_api_wanted_none_compatible(self):
93
93
an_object = TrivialObject()
94
94
an_object.api_minimum_version = (1, 2, 3)
95
95
an_object.api_current_version = (4, 5, 6)
96
self.assertRaises(IncompatibleAPI, brzlib.api.require_any_api,
96
self.assertRaises(IncompatibleAPI, breezy.api.require_any_api,
97
97
an_object, [(1, 2, 2), (5, 6, 7)])
99
99
def test_require_api_wanted_is_minimum_is_ok(self):
100
100
an_object = TrivialObject()
101
101
an_object.api_minimum_version = (1, 2, 3)
102
102
an_object.api_current_version = (4, 5, 6)
103
brzlib.api.require_api(an_object, (1, 2, 3))
103
breezy.api.require_api(an_object, (1, 2, 3))
105
105
def test_require_api_wanted_is_current_is_ok(self):
106
106
an_object = TrivialObject()
107
107
an_object.api_minimum_version = (1, 2, 3)
108
108
an_object.api_current_version = (4, 5, 6)
109
brzlib.api.require_api(an_object, (4, 5, 6))
109
breezy.api.require_api(an_object, (4, 5, 6))
111
111
def test_require_api_wanted_is_above_minimum_is_ok(self):
112
112
an_object = TrivialObject()
113
113
an_object.api_minimum_version = (1, 2, 3)
114
114
an_object.api_current_version = (4, 5, 6)
115
brzlib.api.require_api(an_object, (1, 2, 4))
115
breezy.api.require_api(an_object, (1, 2, 4))
117
117
def test_require_api_wanted_is_below_current_is_ok(self):
118
118
an_object = TrivialObject()
119
119
an_object.api_minimum_version = (1, 2, 3)
120
120
an_object.api_current_version = (4, 5, 6)
121
brzlib.api.require_api(an_object, (4, 5, 5))
121
breezy.api.require_api(an_object, (4, 5, 5))
123
123
def test_require_api_wanted_is_below_minimum_raises(self):
124
124
an_object = TrivialObject()
125
125
an_object.api_minimum_version = (1, 2, 3)
126
126
an_object.api_current_version = (4, 5, 6)
127
127
err = self.assertRaises(IncompatibleAPI,
128
brzlib.api.require_api, an_object, (1, 2, 2))
128
breezy.api.require_api, an_object, (1, 2, 2))
129
129
self.assertEqual(err.api, an_object)
130
130
self.assertEqual(err.wanted, (1, 2, 2))
131
131
self.assertEqual(err.minimum, (1, 2, 3))