@@ -83,6 +83,85 @@ def install_init(self, type="classic",
8383 self .assertEqual (ret , 0 )
8484
8585
86+ def testGet (self ):
87+ ''' Note the tests will fail if you run this under pdb.
88+ the context managers capture the pdb prompts and this screws
89+ up the stdout strings with (pdb) prefixed to the line.
90+ '''
91+ import sys
92+
93+ self .install_init ()
94+ self .admin = AdminTool ()
95+
96+ with captured_output () as (out , err ):
97+ sys .argv = ['main' , '-i' , '_test_admin' , 'create' , 'issue' ,
98+ 'title="foo bar"' , 'assignedto=admin' ]
99+ ret = self .admin .main ()
100+
101+ out = out .getvalue ().strip ()
102+ print (out )
103+ self .assertEqual (out , '1' )
104+
105+ self .admin = AdminTool ()
106+ with captured_output () as (out , err ):
107+ sys .argv = ['main' , '-i' , '_test_admin' , 'create' , 'issue' ,
108+ 'title="bar foo bar"' , 'assignedto=anonymous' ,
109+ 'superseder=1' ]
110+ ret = self .admin .main ()
111+
112+ self .assertEqual (ret , 0 )
113+ out = out .getvalue ().strip ()
114+ print (out )
115+ self .assertEqual (out , '2' )
116+
117+ self .admin = AdminTool ()
118+ with captured_output () as (out , err ):
119+ sys .argv = ['main' , '-i' , '_test_admin' , 'get' , 'assignedto' ,
120+ 'issue2' ]
121+ ret = self .admin .main ()
122+
123+ self .assertEqual (ret , 0 )
124+ out = out .getvalue ().strip ()
125+ err = err .getvalue ().strip ()
126+ self .assertEqual (out , '2' )
127+ self .assertEqual (len (err ), 0 )
128+
129+ self .admin = AdminTool ()
130+ with captured_output () as (out , err ):
131+ sys .argv = ['main' , '-i' , '_test_admin' , 'get' , 'superseder' ,
132+ 'issue2' ]
133+ ret = self .admin .main ()
134+
135+ self .assertEqual (ret , 0 )
136+ out = out .getvalue ().strip ()
137+ err = err .getvalue ().strip ()
138+ self .assertEqual (out , "['1']" )
139+ self .assertEqual (len (err ), 0 )
140+
141+ self .admin = AdminTool ()
142+ with captured_output () as (out , err ):
143+ sys .argv = ['main' , '-i' , '_test_admin' , 'get' , 'title' , 'issue1' ]
144+ ret = self .admin .main ()
145+
146+ self .assertEqual (ret , 0 )
147+ out = out .getvalue ().strip ()
148+ err = err .getvalue ().strip ()
149+ self .assertEqual (out , '"foo bar"' ) ## why is capture inserting "??
150+ self .assertEqual (len (err ), 0 )
151+
152+ self .admin = AdminTool ()
153+ with captured_output () as (out , err ):
154+ sys .argv = ['main' , '-i' , '_test_admin' , 'get' , 'tile' , 'issue1' ]
155+ ret = self .admin .main ()
156+
157+ expected_err = 'Error: no such issue property "tile"'
158+
159+ self .assertEqual (ret , 1 )
160+ out = out .getvalue ().strip ()
161+ err = err .getvalue ().strip ()
162+ self .assertEqual (out .index (expected_err ), 0 )
163+ self .assertEqual (len (err ), 0 )
164+
86165 def testInit (self ):
87166 import sys
88167 self .admin = AdminTool ()
@@ -310,6 +389,58 @@ def testFilter(self):
310389 print (out )
311390 self .assertEqual (sorted (eval (out )), ['1' , '2' ])
312391
392+ def testSet (self ):
393+ ''' Note the tests will fail if you run this under pdb.
394+ the context managers capture the pdb prompts and this screws
395+ up the stdout strings with (pdb) prefixed to the line.
396+ '''
397+ import sys
398+
399+ self .install_init ()
400+ self .admin = AdminTool ()
401+
402+ with captured_output () as (out , err ):
403+ sys .argv = ['main' , '-i' , '_test_admin' , 'create' , 'issue' ,
404+ 'title="foo bar"' , 'assignedto=admin' ]
405+ ret = self .admin .main ()
406+
407+ out = out .getvalue ().strip ()
408+ print (out )
409+ self .assertEqual (out , '1' )
410+
411+ self .admin = AdminTool ()
412+ with captured_output () as (out , err ):
413+ sys .argv = ['main' , '-i' , '_test_admin' , 'create' , 'issue' ,
414+ 'title="bar foo bar"' , 'assignedto=anonymous' ]
415+ ret = self .admin .main ()
416+
417+ out = out .getvalue ().strip ()
418+ print (out )
419+ self .assertEqual (out , '2' )
420+
421+ self .admin = AdminTool ()
422+ with captured_output () as (out , err ):
423+ sys .argv = ['main' , '-i' , '_test_admin' , 'set' , 'issue2' , 'title="new title"' ]
424+ ret = self .admin .main ()
425+
426+ out = out .getvalue ().strip ()
427+ err = err .getvalue ().strip ()
428+ self .assertEqual (len (out ), 0 )
429+ self .assertEqual (len (err ), 0 )
430+
431+ self .admin = AdminTool ()
432+ with captured_output () as (out , err ):
433+ sys .argv = ['main' , '-i' , '_test_admin' , 'set' , 'issue2' , 'tile="new title"' ]
434+ ret = self .admin .main ()
435+
436+ expected_err = "Error: 'tile' is not a property of issue"
437+
438+ out = out .getvalue ().strip ()
439+ err = err .getvalue ().strip ()
440+ self .assertEqual (out .index (expected_err ), 0 )
441+ self .assertEqual (len (err ), 0 )
442+
443+
313444 def testSpecification (self ):
314445 ''' Note the tests will fail if you run this under pdb.
315446 the context managers capture the pdb prompts and this screws
@@ -320,9 +451,6 @@ def testSpecification(self):
320451 self .install_init ()
321452 self .admin = AdminTool ()
322453
323- self .maxDiff = 0
324- import inspect
325-
326454 spec = [ 'username: <roundup.hyperdb.String> (key property)' ,
327455 'alternate_addresses: <roundup.hyperdb.String>' ,
328456 'realname: <roundup.hyperdb.String>' ,
0 commit comments