@@ -264,6 +264,58 @@ def query():
264264 self .assertRaisesRegex (HTTPError , "value must be smaller that value2" , query )
265265
266266
267+ class TestPrivileges (testlib .SDKTestCase ):
268+ macro_name = "SDKTestMacro"
269+ username = "SDKTestMacroUser" .lower ()
270+ password = "SDKTestMacroUserPassword!"
271+
272+ def setUp (self ):
273+ testlib .SDKTestCase .setUp (self )
274+ self .cleanUsers ()
275+
276+ self .service .users .create (
277+ username = self .username , password = self .password , roles = ["user" ]
278+ )
279+
280+ self .service .logout ()
281+ kwargs = self .opts .kwargs .copy ()
282+ kwargs ["username" ] = self .username
283+ kwargs ["password" ] = self .password
284+ self .service = client .connect (** kwargs )
285+
286+ self .cleanMacros ()
287+
288+ def tearDown (self ):
289+ testlib .SDKTestCase .setUp (self )
290+ self .cleanMacros ()
291+ self .service = client .connect (** self .opts .kwargs )
292+ self .cleanUsers ()
293+
294+ def cleanUsers (self ):
295+ for user in self .service .users :
296+ if user .name == self .username :
297+ self .service .users .delete (self .username )
298+
299+ def cleanMacros (self ):
300+ for macro in self .service .macros :
301+ if macro .name == self .macro_name :
302+ self .service .macros .delete (self .macro_name )
303+
304+ def test_create_macro_no_admin (self ):
305+ self .service .macros .create (self .macro_name , 'eval test="123"' )
306+
307+ stream = self .service .jobs .oneshot (
308+ f"| makeresults count=1 | `{ self .macro_name } `" ,
309+ output_mode = "json" ,
310+ )
311+
312+ result = results .JSONResultsReader (stream )
313+ out = list (result )
314+
315+ self .assertTrue (len (out ) == 1 )
316+ self .assertEqual (out [0 ]["test" ], "123" )
317+
318+
267319if __name__ == "__main__" :
268320 try :
269321 import unittest2 as unittest
0 commit comments