Skip to content

Commit 62acb25

Browse files
committed
Add privileges macros test
1 parent b7a2217 commit 62acb25

File tree

1 file changed

+54
-0
lines changed

1 file changed

+54
-0
lines changed

tests/integration/test_macro.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,60 @@ def query():
264264
self.assertRaisesRegex(HTTPError, "value must be smaller that value2", query)
265265

266266

267+
# This test makes sure that the endpoint we use for macros (configs/conf-macros)
268+
# does not require admin privileges and can be used by normal users.
269+
class TestPrivileges(testlib.SDKTestCase):
270+
macro_name = "SDKTestMacro"
271+
username = "SDKTestMacroUser".lower()
272+
password = "SDKTestMacroUserPassword!"
273+
274+
def setUp(self):
275+
testlib.SDKTestCase.setUp(self)
276+
self.cleanUsers()
277+
278+
self.service.users.create(
279+
username=self.username, password=self.password, roles=["user"]
280+
)
281+
282+
self.service.logout()
283+
kwargs = self.opts.kwargs.copy()
284+
kwargs["username"] = self.username
285+
kwargs["password"] = self.password
286+
self.service = client.connect(**kwargs)
287+
288+
self.cleanMacros()
289+
290+
def tearDown(self):
291+
testlib.SDKTestCase.tearDown(self)
292+
self.cleanMacros()
293+
self.service = client.connect(**self.opts.kwargs)
294+
self.cleanUsers()
295+
296+
def cleanUsers(self):
297+
for user in self.service.users:
298+
if user.name == self.username:
299+
self.service.users.delete(self.username)
300+
301+
def cleanMacros(self):
302+
for macro in self.service.macros:
303+
if macro.name == self.macro_name:
304+
self.service.macros.delete(self.macro_name)
305+
306+
def test_create_macro_no_admin(self):
307+
self.service.macros.create(self.macro_name, 'eval test="123"')
308+
309+
stream = self.service.jobs.oneshot(
310+
f"| makeresults count=1 | `{self.macro_name}`",
311+
output_mode="json",
312+
)
313+
314+
result = results.JSONResultsReader(stream)
315+
out = list(result)
316+
317+
self.assertTrue(len(out) == 1)
318+
self.assertEqual(out[0]["test"], "123")
319+
320+
267321
if __name__ == "__main__":
268322
try:
269323
import unittest2 as unittest

0 commit comments

Comments
 (0)