Skip to content

Commit 0ff3a98

Browse files
author
Frederick Ross
committed
Rework test_user.py
Specified that the roles fields of a user should return a list of entities instead of a list of names. This is a breaking change.
1 parent 9d63d7d commit 0ff3a98

File tree

1 file changed

+58
-47
lines changed

1 file changed

+58
-47
lines changed

tests/test_user.py

Lines changed: 58 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -15,62 +15,73 @@
1515
# under the License.
1616

1717
import testlib
18+
import logging
1819

1920
import splunklib.client as client
2021

2122
class TestCase(testlib.TestCase):
2223
def check_user(self, user):
2324
self.check_entity(user)
24-
self.assertTrue('email' in user)
25-
self.assertTrue('password' in user)
26-
self.assertTrue('realname' in user)
27-
self.assertTrue('roles' in user)
25+
user['email']
26+
user['password']
27+
user['realname']
28+
user['roles']
29+
30+
def setUp(self):
31+
testlib.TestCase.setUp(self)
32+
self.username = testlib.tmpname()
33+
self.user = self.service.users.create(
34+
self.username,
35+
password='changeme',
36+
roles=['power', 'user'])
37+
38+
def tearDown(self):
39+
testlib.TestCase.tearDown(self)
40+
for user in self.service.users:
41+
if user.name.startswith('delete-me'):
42+
self.service.users.delete(user.name)
2843

2944
def test_read(self):
30-
service = client.connect(**self.opts.kwargs)
31-
32-
def test_crud(self):
33-
service = client.connect(**self.opts.kwargs)
34-
35-
users = service.users
36-
roles = service.roles
37-
38-
# Verify that we can read the users collection
39-
for user in users:
40-
for role in user.content.roles:
41-
self.assertTrue(roles.contains(role))
42-
43-
if users.contains("sdk-user"): users.delete("sdk-user")
44-
self.assertFalse(users.contains("sdk-user"))
45-
46-
user = users.create("sdk-user", password="changeme", roles="power")
47-
self.assertTrue('sdk-user' in users)
48-
49-
# Verify that we can update the user
50-
self.assertTrue(user['email'] is None)
51-
user.update(email="[email protected]")
52-
user.refresh()
53-
self.assertTrue(user['email'] == "[email protected]")
54-
55-
# Verify that we can delete the user
56-
users.delete("sdk-user")
57-
self.assertFalse(users.contains("sdk-user"))
58-
45+
for user in self.service.users:
46+
self.check_user(user)
47+
for role in user.roles:
48+
self.assertTrue(isinstance(role, client.Entity))
49+
self.assertTrue(role.name in self.service.roles)
50+
51+
def test_create(self):
52+
self.assertTrue(self.username in self.service.users)
53+
self.assertEqual(self.username, self.user.name)
54+
55+
def test_delete(self):
56+
self.service.users.delete(self.username)
57+
self.assertFalse(self.username in self.service.users)
58+
with self.assertRaises(client.EntityDeletedException):
59+
self.user.refresh()
60+
61+
def test_update(self):
62+
self.assertTrue(self.user['email'] is None)
63+
self.user.update(email="[email protected]")
64+
self.user.refresh()
65+
self.assertTrue(self.user['email'] == "[email protected]")
66+
67+
def test_in_is_case_insensitive(self):
5968
# Splunk lowercases user names, verify the casing works as expected
60-
self.assertFalse(users.contains("sdk-user"))
61-
self.assertFalse(users.contains("SDK-User"))
62-
63-
user = users.create("SDK-User", password="changeme", roles="power")
64-
self.assertTrue(user.name == "sdk-user")
65-
self.assertTrue(users.contains("SDK-User"))
66-
self.assertTrue(users.contains("sdk-user"))
67-
68-
user = users['SDK-User']
69-
self.assertTrue(user.name == "sdk-user")
70-
71-
users.delete("SDK-User")
72-
self.assertFalse(users.contains("SDK-User"))
73-
self.assertFalse(users.contains("sdk-user"))
69+
users = self.service.users
70+
self.assertTrue(self.username in users)
71+
self.assertTrue(self.username.upper() in users)
72+
73+
def test_username_in_create_is_case_insensitive(self):
74+
name = testlib.tmpname().lower()
75+
users = self.service.users
76+
user = users.create(name.upper(), password="changeme", roles="power")
77+
self.assertTrue(user.name == name)
78+
self.assertTrue(name in users)
79+
80+
def test_delete_is_case_insensitive(self):
81+
users = self.service.users
82+
users.delete(self.username.upper())
83+
self.assertFalse(self.username in users)
84+
self.assertFalse(self.username.upper() in users)
7485

7586
if __name__ == "__main__":
7687
testlib.main()

0 commit comments

Comments
 (0)