Skip to content

Commit 967ea88

Browse files
author
Gauvain Pocentek
committed
some unit tests!
1 parent 561f349 commit 967ea88

File tree

2 files changed

+132
-0
lines changed

2 files changed

+132
-0
lines changed

tests/README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
== Tests
2+
3+
Running the tests requires to have a GitLab 4.2 server available, with a
4+
default installation (only one admin user created, no projects, no groups...).
5+
6+
You need to reset the database on the test server every time the tests are run:
7+
8+
`````
9+
sudo su - gitlab
10+
cd gitlab
11+
bundle exec rake gitlab:setup RAILS_ENV=production
12+
`````
13+
14+
Run tests with:
15+
`````
16+
python main.py
17+
`````

tests/main.py

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
#!/usr/bin/python
2+
# -*- coding: utf-8 -*-
3+
4+
import sys
5+
sys.path.append("../")
6+
import unittest
7+
8+
from gitlab import *
9+
10+
url = "http://192.168.123.2:8080"
11+
email = "admin@local.host"
12+
password = "5iveL!fe"
13+
14+
class AuthenticationTest(unittest.TestCase):
15+
def test_connect(self):
16+
gl = Gitlab("http://fakeurl", email=email, password=password)
17+
with self.assertRaises(GitlabConnectionError):
18+
gl.auth()
19+
20+
def test_credential(self):
21+
gl = Gitlab(url)
22+
with self.assertRaises(GitlabAuthenticationError):
23+
gl.auth()
24+
25+
gl.setCredentials(email, password)
26+
gl.auth()
27+
self.assertIsInstance(gl.user, CurrentUser)
28+
29+
def test_token(self):
30+
gl = Gitlab(url, "fakeToken")
31+
with self.assertRaises(GitlabAuthenticationError):
32+
gl.auth()
33+
34+
gl = Gitlab(url, email=email, password=password)
35+
gl.auth()
36+
token = gl.user.private_token
37+
38+
gl = Gitlab(url, token)
39+
gl.auth()
40+
self.assertIsInstance(gl.user, CurrentUser)
41+
42+
43+
class GitlabTest(unittest.TestCase):
44+
def setUp(self):
45+
self.gl = Gitlab(url, email=email, password=password)
46+
self.gl.auth()
47+
48+
def test_gitlab_projects(self):
49+
p_list = self.gl.Project()
50+
self.assertEqual(len(p_list), 0)
51+
52+
p = self.gl.Project({'name': 'TestProject1'})
53+
p.save()
54+
self.assertEqual(p.name, 'TestProject1')
55+
p_list = self.gl.Project()
56+
self.assertEqual(len(p_list), 1)
57+
self.assertEqual(p_list[0].name, p.name)
58+
59+
i = p_list[0].id
60+
61+
p = self.gl.Project(i)
62+
self.assertEqual(p.name, 'TestProject1')
63+
64+
def test_gitlab_groups(self):
65+
g_list = self.gl.Group()
66+
self.assertEqual(len(g_list), 0)
67+
68+
g = self.gl.Group({'name': 'TestGroup1', 'path': 'testgroup1'})
69+
g.save()
70+
self.assertEqual(g.name, 'TestGroup1')
71+
g_list = self.gl.Group()
72+
self.assertEqual(len(g_list), 1)
73+
self.assertEqual(g_list[0].name, g.name)
74+
75+
i = g_list[0].id
76+
77+
g = self.gl.Group(i)
78+
self.assertEqual(g.name, 'TestGroup1')
79+
80+
def test_gitlab_users(self):
81+
u_list = self.gl.User()
82+
self.assertEqual(len(u_list), 1)
83+
84+
u = self.gl.User({'email': 'testuser1@local.host',
85+
'name': 'TestUser1',
86+
'username': 'testuser1',
87+
'password': 'ThePassword'})
88+
u.save()
89+
self.assertEqual(u.skype, None)
90+
u_list = self.gl.User()
91+
self.assertEqual(len(u_list), 2)
92+
self.assertEqual(u_list[1].name, u.name)
93+
94+
i = u_list[1].id
95+
96+
u = self.gl.User(i)
97+
self.assertEqual(u.name, 'TestUser1')
98+
99+
u.skype = 'skypeaccount'
100+
u.save()
101+
102+
u = self.gl.User(i)
103+
self.assertEqual(u.skype, 'skypeaccount')
104+
105+
u.delete()
106+
u_list = self.gl.User()
107+
self.assertEqual(len(u_list), 1)
108+
109+
def test_gitlab_issues(self):
110+
i_list = self.gl.Issue()
111+
self.assertEqual(len(i_list), 0)
112+
113+
114+
if __name__ == '__main__':
115+
unittest.main()

0 commit comments

Comments
 (0)