In a freshly downloaded build 60224, I open TestRunner and run all
tests.  At run 418 I get a dialogue asking for the Author.  To me that
seems wrong.  I don't want any code changes made during testing to
have my normal identification on them. Tests invoked from Test Runner
should be author-tagged something like 'TestRunner' or
'TestRunner-BenComan'.

The question arises in this particular case due to...
  RPackageMonticelloSynchronisationTest >> setUp
      ...
      Author fullName ifNil: [ Author fullName: 'Tester' ].

Minor point... this check actually is a bit pointless since #fullName
invokes #requestFullName that presents the dialog.  And #fullName will
*never* return nil. At a minimum it returns 'Anonymous'.

First step would seem to be wrapping  TestCase>>runCase:
with   Author useAuthor: 'TestRunner' during: [ .... ]

But further. I envisage a time when TestRunner doesn't block the UI,
so I can happily browse around the system and code while TestRunner is
doing its thing.  Obviously the system is not set up to have two
parties (myself and TestRunner) both updating code in the system, but
changing the state of the global Author uniqueInstance like this...

   Author>>useAuthor: aString during: aBlock
          ^ self uniqueInstance useAuthor: aString during: aBlock

would itself seem to a big impediment.   It would be good if "Author"
was dependent on the context of the call chain.    This would seem a
requirement for one day having two people working in the one Image (is
this a possible use case where someone is using a remote debugger
while another person is using the standard UI?)

So my second proposal is for Author>>fullName to invoke a Notification
mechanism to determine #fullName.  Something like...

     Notification subclass: AuthorRequest

     Author>>#fullName
           ^ AuthorRequest new signal
                   instanceVariables: 'contextFullName'.

    Author>>useAuthor: tempAuthorFullname during: aBlock
          [ block ]
             on: AuthorRequest
             do: [ :noti | noti contextFullName: tempAuthorFullname ]

with only unhandled AuthorRequests returning "Author uniqueInstance
basicFullname".

Thus code changes are not constrained to be assigned to a global
author.  Not that we *yet* have multiple people working in one image,
but one more impediment is removed - step by step.

What concerns would there be?

cheers -ben

Reply via email to