[Buildbot-commits] [SPAM] [Buildbot] #837: When doStepIf skips a step, finished() is called without start()
    Buildbot 
    buildbot-devel at lists.sourceforge.net
       
    Thu May 13 18:05:21 UTC 2010
    
    
  
#837: When doStepIf skips a step, finished() is called without start()
----------------------+-----------------------------------------------------
Reporter:  gward      |       Owner:       
    Type:  undecided  |      Status:  new  
Priority:  major      |   Milestone:  0.8.1
 Version:  0.7.11     |    Keywords:       
----------------------+-----------------------------------------------------
 I have a custom build step that looks something like this:
 {{{
 class MyStep(ShellCommand):
     def start(self):
         ShellCommand.start(self)
         self.__privatedata = ...
     def finished(self, results):
         self.__privatedata.something()
         ...
 }}}
 This worked fine under 0.7.9 for a year or so.  In particular, it was safe
 for `finished()` to assume that `self.__privatedata` was set, because
 `start()` was always called.  But I recently had to upgrade to use
 `doStepIf`.  (Nice feature: thanks to whoever implemented it!)
 Now the assumption behind my `finished()` is no longer correct.  If a step
 is skipped because `doStepIf` returns false, `start()` is never called,
 but `finished()` is.  So my step fails with `AttributeError`.
 I've worked around it with try/except, but this seems bogus.  It would be
 nice if we could go back to guaranteeing that `start()` is called, but I
 can see how that might be difficult.  I would be perfectly happy to have a
 method in !BuildStep that *is* guaranteed to be called before the step
 runs, regardless of whether `start()` is called.  Then I can add private
 data attributes safely.
 (I'm pretty sure that I cannot do this in `__init__()` because of the
 weird, semi-magical nature of !BuildStep.)
-- 
Ticket URL: <http://buildbot.net/trac/ticket/837>
Buildbot <http://buildbot.net/>
Buildbot: build/test automation
    
    
More information about the Commits
mailing list