diff options
Diffstat (limited to 'gitlab/tests/test_mixins.py')
-rw-r--r-- | gitlab/tests/test_mixins.py | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/gitlab/tests/test_mixins.py b/gitlab/tests/test_mixins.py index c51322a..e78c757 100644 --- a/gitlab/tests/test_mixins.py +++ b/gitlab/tests/test_mixins.py @@ -434,3 +434,89 @@ class TestMixinMethods(unittest.TestCase): self.assertIsInstance(obj, FakeObject) self.assertEqual(obj.key, 'foo') self.assertEqual(obj.value, 'bar') + + +class TestExceptions(unittest.TestCase): + def setUp(self): + self.gl = Gitlab("http://localhost", private_token="private_token", + api_version=4) + + def test_get_mixin(self): + class M(GetMixin, FakeManager): + pass + + m = M(self.gl) + self.assertRaises(GitlabGetError, m.get, 1) + + def test_get_without_id_mixin(self): + class M(GetWithoutIdMixin, FakeManager): + pass + + m = M(self.gl) + self.assertRaises(GitlabGetError, m.get) + + def test_list_mixin(self): + class M(ListMixin, FakeManager): + pass + + m = M(self.gl) + self.assertRaises(GitlabListError, m.list) + + def test_get_from_list_mixin(self): + class M(GetFromListMixin, FakeManager): + pass + + m = M(self.gl) + self.assertRaises(GitlabListError, m.list) + self.assertRaises(GitlabGetError, m.get, 1) + + def test_create_mixin(self): + class M(CreateMixin, FakeManager): + pass + + m = M(self.gl) + self.assertRaises(GitlabCreateError, m.create, {}) + + def test_update_mixin(self): + class M(UpdateMixin, FakeManager): + pass + + m = M(self.gl) + self.assertRaises(GitlabUpdateError, m.update, 1, {}) + + def test_set_mixin(self): + class M(SetMixin, FakeManager): + pass + + m = M(self.gl) + self.assertRaises(GitlabSetError, m.set, 'foo', 'bar') + + def test_delete_mixin(self): + class M(DeleteMixin, FakeManager): + pass + + m = M(self.gl) + self.assertRaises(GitlabDeleteError, m.delete, 1) + + def test_object_mixin(self): + class M(UpdateMixin, DeleteMixin, FakeManager): + pass + + class O(SaveMixin, ObjectDeleteMixin, AccessRequestMixin, + SubscribableMixin, TodoMixin, TimeTrackingMixin, RESTObject): + pass + + mgr = M(self.gl) + obj = O(mgr, {'id': 42, 'foo': 'bar'}) + obj.foo = 'baz' + self.assertRaises(GitlabUpdateError, obj.save) + self.assertRaises(GitlabDeleteError, obj.delete) + self.assertRaises(GitlabUpdateError, obj.approve) + self.assertRaises(GitlabSubscribeError, obj.subscribe) + self.assertRaises(GitlabUnsubscribeError, obj.unsubscribe) + self.assertRaises(GitlabTodoError, obj.todo) + self.assertRaises(GitlabTimeTrackingError, obj.time_stats) + self.assertRaises(GitlabTimeTrackingError, obj.time_estimate, '1d') + self.assertRaises(GitlabTimeTrackingError, obj.reset_time_estimate) + self.assertRaises(GitlabTimeTrackingError, obj.add_spent_time, '1d') + self.assertRaises(GitlabTimeTrackingError, obj.reset_spent_time) |