Package mvpa :: Package tests :: Module test_args

[hide private]
[frames] | no frames]

# Source Code for Module mvpa.tests.test_args

     1  # emacs: -*- mode: python; py-indent-offset: 4; indent-tabs-mode: nil -*-
     2  # vi: set ft=python sts=4 ts=4 sw=4 et:
     3  ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ##
     4  #
     5  #   See COPYING file distributed along with the PyMVPA package for the
     6  #   copyright and license terms.
     7  #
     8  ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ##
     9  """Unit tests for PyMVPA args helpers"""
    10
    11  import unittest
    12  from mvpa.misc.args import *
    13
    14  if __debug__:
    15      from mvpa.base import debug
    16
    17 -class ArgsHelpersTest(unittest.TestCase):
    18
    19 -    def testBasic(self):
    20          """Test if we are not missing basic parts"""
    21          kwargs = {'a':1, 'slave_a':3, 'slave_z':4, 'slave_slave_z':5, 'c':3}
    22
    23          res = split_kwargs(kwargs, ['slave_'])
    24          self.failUnless(res.has_key('slave_') and res.has_key(''))
    25          self.failUnless(res['slave_'] == {'a':3, 'z':4, 'slave_z':5})
    26          self.failUnless(res[''] == {'a':1, 'c':3})
    27
    28          res = split_kwargs(kwargs)
    29          self.failUnless(res.keys() == [''])
    30          self.failUnless(res[''] == kwargs)
    31
    32
    33 -    def testDecorator(self):
    34          """Test the group_kwargs decorator"""
    35
    36          selftop = self
    37
    38          class C1(object):
    39
    40              @group_kwargs(prefixes=['slave_'], assign=True)
    41              def __init__(self, **kwargs):
    42                  selftop.failUnless(hasattr(self, '_slave_kwargs'))
    43                  self.method_passedempty()
    44                  self.method_passed(1, custom_p1=144, bugax=1)
    45                  self.method_filtered(1, custom_p1=123)
    46
    47              @group_kwargs(prefixes=['custom_'], passthrough=True)
    48              def method_passedempty(self, **kwargs):
    49                  # we must have it even though it is empty
    50                  selftop.failUnless('custom_kwargs' in kwargs)
    51
    52              @group_kwargs(prefixes=['custom_', 'buga'], passthrough=True)
    53              def method_passed(self, a, custom_kwargs, bugakwargs, **kwargs):
    54                  # we must have it even though it is empty
    55                  selftop.failUnless(custom_kwargs == {'p1':144})
    56                  selftop.failUnless(bugakwargs == {'x':1})
    57                  selftop.failUnless(not hasattr(self, '_custom_kwargs'))
    58
    59              @group_kwargs(prefixes=['custom_'])
    60              def method_filtered(self, a, **kwargs):
    61                  # we must have it even though it is empty
    62                  selftop.failUnlessEqual(a, 1)
    63                  selftop.failUnless(not 'custom_kwargs' in kwargs)
    64
    65              def method(self):
    66                  return 123
    67
    68              @group_kwargs(prefixes=['xxx'])
    69              def method_decorated(self):
    70                  return 124
    71
    72          c1 = C1(slave_p1=1, p1=2)
    73          self.failUnless(c1.method() == 123)
    74          self.failUnless(c1.method_decorated() == 124)
    75
    76
    77 -def suite():
    78      return unittest.makeSuite(ArgsHelpersTest)
    79
    80
    81  if __name__ == '__main__':
    82      import runner
    83