@@ -153,6 +153,58 @@ def test_acl_fails_without_owner(self):
153153 )
154154
155155
156+ class TestPrivileges (testlib .SDKTestCase ):
157+ macro_name = "SDKTestMacro"
158+ username = "SDKTestMacroUser" .lower ()
159+ password = "SDKTestMacroUserPassword!"
160+
161+ def setUp (self ):
162+ testlib .SDKTestCase .setUp (self )
163+ self .cleanUsers ()
164+
165+ self .service .users .create (
166+ username = self .username , password = self .password , roles = ["user" ]
167+ )
168+
169+ self .service .logout ()
170+ kwargs = self .opts .kwargs .copy ()
171+ kwargs ["username" ] = self .username
172+ kwargs ["password" ] = self .password
173+ self .service = client .connect (** kwargs )
174+
175+ self .cleanMacros ()
176+
177+ def tearDown (self ):
178+ testlib .SDKTestCase .setUp (self )
179+ self .cleanMacros ()
180+ self .service = client .connect (** self .opts .kwargs )
181+ self .cleanUsers ()
182+
183+ def cleanUsers (self ):
184+ for user in self .service .users :
185+ if user .name == self .username :
186+ self .service .users .delete (self .username )
187+
188+ def cleanMacros (self ):
189+ for macro in self .service .macros :
190+ if macro .name == self .macro_name :
191+ self .service .macros .delete (self .macro_name )
192+
193+ def test_create_macro_no_admin (self ):
194+ self .service .macros .create (self .macro_name , 'eval test="123"' )
195+
196+ stream = self .service .jobs .oneshot (
197+ f"| makeresults count=1 | `{ self .macro_name } `" ,
198+ output_mode = "json" ,
199+ )
200+
201+ result = results .JSONResultsReader (stream )
202+ out = list (result )
203+
204+ self .assertTrue (len (out ) == 1 )
205+ self .assertEqual (out [0 ]["test" ], "123" )
206+
207+
156208if __name__ == "__main__" :
157209 try :
158210 import unittest2 as unittest
0 commit comments