Actions

icon Post
text/html Subscribe
text/html Unsubscribe

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [qmtest] Specifying arguments in derived test classes


  • To: Vladimir Prus <ghost@xxxxxxxxx>, "qmtest@xxxxxxxxxxxxxxxx" <qmtest@xxxxxxxxxxxxxxxx>
  • Subject: Re: [qmtest] Specifying arguments in derived test classes
  • From: Mark Mitchell <mark@xxxxxxxxxxxxxxxx>
  • Date: Mon, 15 Apr 2002 09:18:04 -0700



--On Monday, April 15, 2002 07:33:05 PM +0400 Vladimir Prus <ghost@xxxxxxxxx> wrote:

Mark Mitchell wrote:
<ghost@xxxxxxxxx> wrote:
> Hi,
> I'm trying to create a test class that would derive from
> python.ExecTest and  change it a little. In particular, I want to get
> rid of 'expession' argument.  I'm trying the following:

There's no easy way to do this.

The plan is to add "computed arguments" which would solve this problem.
For the time being, you have no real choice but to create a whole new
class.

(At one point, it was possible to do approximately what you wanted;
each class could completely override "arguments".  We decided this was
a bad design since that meant that derived classes had to explicitly
list the arguments from the base classes, and there was no guarantee
that the "is-a" relationship would be preserved.)

Actually, I don't think that there's the need to explicitly list
arguments.  Why the following is not appropriate:

class Test(python.ExecTest):

	arguments = [ ...... ] + python.ExecTest.arguments

	..........

Yes, that's exactly how it used to work.  We decided that a better
approach would be to allow derived classes to indicate that some
arguments could be computed by base classes instead -- but that has
not yet been implemented.

Another approach would be to make your new class a base class, and
derived ExecTest from that.

--
Mark Mitchell                   mark@xxxxxxxxxxxxxxxx
CodeSourcery, LLC               http://www.codesourcery.com