devtools/test/unittest_fill.py
changeset 0 b97547f5f1fa
child 1802 d628defebc17
equal deleted inserted replaced
-1:000000000000 0:b97547f5f1fa
       
     1 """unit tests for cubicweb.devtools.fill module"""
       
     2 
       
     3 from logilab.common.testlib import TestCase, unittest_main
       
     4 
       
     5 from cubicweb.schema import Schema, EntitySchema
       
     6 
       
     7 import re
       
     8 from cubicweb.devtools.fill import ValueGenerator, _ValueGenerator
       
     9 
       
    10 ISODATE_SRE = re.compile('(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})$')
       
    11 
       
    12 
       
    13 class AutoExtendableTC(TestCase):
       
    14 
       
    15     def setUp(self):
       
    16         self.attrvalues = dir(_ValueGenerator)
       
    17 
       
    18     def tearDown(self):
       
    19         attrvalues = set(dir(_ValueGenerator))
       
    20         for attrname in attrvalues - set(self.attrvalues):
       
    21             delattr(_ValueGenerator, attrname)
       
    22 
       
    23         
       
    24     def test_autoextend(self):
       
    25         self.failIf('generate_server' in dir(ValueGenerator))
       
    26         class MyValueGenerator(ValueGenerator):
       
    27             def generate_server(self, index):
       
    28                 return attrname
       
    29         self.failUnless('generate_server' in dir(ValueGenerator))
       
    30 
       
    31 
       
    32     def test_bad_signature_detection(self):
       
    33         self.failIf('generate_server' in dir(ValueGenerator))
       
    34         try:
       
    35             class MyValueGenerator(ValueGenerator):
       
    36                 def generate_server(self):
       
    37                     pass
       
    38         except TypeError:
       
    39             self.failIf('generate_server' in dir(ValueGenerator))
       
    40         else:
       
    41             self.fail('TypeError not raised')
       
    42 
       
    43 
       
    44     def test_signature_extension(self):
       
    45         self.failIf('generate_server' in dir(ValueGenerator))
       
    46         class MyValueGenerator(ValueGenerator):
       
    47             def generate_server(self, index, foo):
       
    48                 pass
       
    49         self.failUnless('generate_server' in dir(ValueGenerator))
       
    50 
       
    51 
       
    52 if __name__ == '__main__':
       
    53     unittest_main()