Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #107114

Re: How to parameterize unittests

From Antoon Pardon <antoon.pardon@rece.vub.ac.be>
Newsgroups comp.lang.python
Subject Re: How to parameterize unittests
Date 2016-04-16 22:37 +0200
Message-ID <mailman.64.1460839145.6324.python-list@python.org> (permalink)
References (8 earlier) <5710D3DA.6030005@rece.vub.ac.be> <5710E30B.6050304@rece.vub.ac.be> <mailman.22.1460724628.6324.python-list@python.org> <57111b0b$0$1606$c3e8da3$5496439d@news.astraweb.com> <5712A2A0.7080606@rece.vub.ac.be>

Show all headers | View raw


Op 15-04-16 om 18:47 schreef Steven D'Aprano:
> On Fri, 15 Apr 2016 10:48 pm, Antoon Pardon wrote:
> 
>> Starting from this:
>>
>>     class Test_AVLTree(unittest.TestCase):
>>  
>>         def test_empty_tree_is_false(self):
>>             instance = avltree()
>>             self.assertFalse(instance)
>>
>> Changing it into this:
>>
>>     def MakeAVLTest(avltree):
>>         class Test_AVLTree(unittest.TestCase):
>>
>>             def test_empty_tree_is_false(self):
>>                 instance = avltree()
>>                 self.assertFalse(instance)
>>
>>         return Test_AVLTree
>>
>>     AVLTest = MakeAVLTest(avltree)
>>     MyTreeTest = MakeAVLTest(mytree)
>>
>> Seems to work
> 
> Right up to the moment that you realise that you need different tests for a
> subclass, and now you can't using subclassing because they aren't
> subclasses, they're completely independent classes that happen to duplicate
> the same methods.
> 
> If the tests for your AVL tree and it's subclasses are *identical*, then
> what's the point of the subclasses?

The subclass has a key-function as a static method similar to the key argument
for sort. This way I can have a tree with strings as keys, but with the
keys sorted according to the locale with the locale.strxfrm function.

This means the only tests that need changing are the tests that test for
iterators to deliver the items in sorted order. But that can be done
by letting the test check for the presence of the keyfunction and in
that case, use if to check if things are in order.

-- 
Antoon

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

How to parameterize unittests Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2016-04-14 16:08 +0200
  Re: How to parameterize unittests Steven D'Aprano <steve@pearwood.info> - 2016-04-15 01:05 +1000
    Re: How to parameterize unittests Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2016-04-15 08:52 +0200
    Re: How to parameterize unittests Chris Angelico <rosuav@gmail.com> - 2016-04-15 17:42 +1000
    Re: How to parameterize unittests Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2016-04-15 10:20 +0200
      Re: How to parameterize unittests Steven D'Aprano <steve@pearwood.info> - 2016-04-15 19:10 +1000
        Re: How to parameterize unittests Michael Selik <michael.selik@gmail.com> - 2016-04-15 10:05 +0000
        Re: How to parameterize unittests Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2016-04-15 13:43 +0200
        Re: How to parameterize unittests Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2016-04-15 14:48 +0200
          Re: How to parameterize unittests Steven D'Aprano <steve@pearwood.info> - 2016-04-16 02:47 +1000
            Re: How to parameterize unittests Chris Angelico <rosuav@gmail.com> - 2016-04-16 03:51 +1000
            Re: How to parameterize unittests Antoon Pardon <antoon.pardon@rece.vub.ac.be> - 2016-04-16 22:37 +0200
    Re: How to parameterize unittests Serhiy Storchaka <storchaka@gmail.com> - 2016-04-15 11:24 +0300
    Re: How to parameterize unittests Chris Angelico <rosuav@gmail.com> - 2016-04-15 18:28 +1000
    Re: How to parameterize unittests Serhiy Storchaka <storchaka@gmail.com> - 2016-04-15 11:31 +0300
    Re: How to parameterize unittests Ben Finney <ben+python@benfinney.id.au> - 2016-04-15 18:35 +1000

csiph-web