Skip to content

Commit

Permalink
add unit tests for managers
Browse files Browse the repository at this point in the history
  • Loading branch information
Gauvain Pocentek committed Jan 16, 2016
1 parent 7e54a39 commit 6baea2f
Showing 1 changed file with 23 additions and 3 deletions.
26 changes: 23 additions & 3 deletions gitlab/tests/test_manager.py
Expand Up @@ -29,7 +29,9 @@


class FakeChildObject(GitlabObject):
_url = "/fake"
_url = "/fake/%(parent_id)s/fakechild"
requiredCreateAttrs = ['name']
requiredUrlAttrs = ['parent_id']


class FakeChildManager(BaseManager):
Expand All @@ -38,7 +40,8 @@ class FakeChildManager(BaseManager):

class FakeObject(GitlabObject):
_url = "/fake"
managers = [('children', FakeChildManager, [('child_id', 'id')])]
requiredCreateAttrs = ['name']
managers = [('children', FakeChildManager, [('parent_id', 'id')])]


class FakeObjectManager(BaseManager):
Expand All @@ -51,6 +54,23 @@ def setUp(self):
email="testuser@test.com",
password="testpassword", ssl_verify=True)

def test_set_parent_args(self):
@urlmatch(scheme="http", netloc="localhost", path="/api/v3/fake",
method="POST")
def resp_create(url, request):
headers = {'content-type': 'application/json'}
content = '{"id": 1, "name": "name"}'.encode("utf-8")
return response(201, content, headers, None, 5, request)

mgr = FakeChildManager(self.gitlab)
args = mgr._set_parent_args(name="name")
self.assertEqual(args, {"name": "name"})

with HTTMock(resp_create):
o = FakeObjectManager(self.gitlab).create({"name": "name"})
args = o.children._set_parent_args(name="name")
self.assertEqual(args, {"name": "name", "parent_id": 1})

def test_constructor(self):
self.assertRaises(AttributeError, BaseManager, self.gitlab)

Expand Down Expand Up @@ -128,7 +148,7 @@ def resp_get(url, request):
def test_create(self):
mgr = FakeObjectManager(self.gitlab)
FakeObject.canCreate = False
self.assertRaises(NotImplementedError, mgr.create, {'foo': 'bar'})
self.assertRaises(NotImplementedError, mgr.create, {'name': 'name'})

@urlmatch(scheme="http", netloc="localhost", path="/api/v3/fake",
method="post")
Expand Down

0 comments on commit 6baea2f

Please sign in to comment.