devtools/test/unittest_dbfill.py
branchstable
changeset 4651 f9cd35dece09
parent 4471 71fbc449e814
child 5421 8167de96c523
equal deleted inserted replaced
4650:965395d821bc 4651:f9cd35dece09
     7 :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses
     7 :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses
     8 """
     8 """
     9 
     9 
    10 import os.path as osp
    10 import os.path as osp
    11 import re
    11 import re
       
    12 import datetime
    12 
    13 
    13 from logilab.common.testlib import TestCase, unittest_main
    14 from logilab.common.testlib import TestCase, unittest_main
    14 
    15 
    15 from cubicweb.schema import Schema, EntitySchema
    16 from cubicweb.schema import Schema, EntitySchema
    16 from cubicweb.devtools.fill import ValueGenerator, make_tel
    17 from cubicweb.devtools.fill import ValueGenerator, make_tel
    39             return None
    40             return None
    40 
    41 
    41     def _available_Person_firstname(self, etype, attrname):
    42     def _available_Person_firstname(self, etype, attrname):
    42         return [f.strip() for f in file(osp.join(DATADIR, 'firstnames.txt'))]
    43         return [f.strip() for f in file(osp.join(DATADIR, 'firstnames.txt'))]
    43 
    44 
    44 
       
    45     def setUp(self):
    45     def setUp(self):
    46         config = ApptestConfiguration('data')
    46         config = ApptestConfiguration('data')
    47         config.bootstrap_cubes()
    47         config.bootstrap_cubes()
    48         schema = config.load_schema()
    48         schema = config.load_schema()
    49         e_schema = schema.eschema('Person')
    49         e_schema = schema.eschema('Person')
    50         self.person_valgen = ValueGenerator(e_schema, self._choice_func)
    50         self.person_valgen = ValueGenerator(e_schema, self._choice_func)
    51         e_schema = schema.eschema('Bug')
    51         e_schema = schema.eschema('Bug')
    52         self.bug_valgen = MyValueGenerator(e_schema)
    52         self.bug_valgen = MyValueGenerator(e_schema)
    53         self.config = config
    53         self.config = config
    54 
       
    55     def _check_date(self, date):
       
    56         """checks that 'date' is well-formed"""
       
    57         year = date.year
       
    58         month = date.month
       
    59         day = date.day
       
    60         self.failUnless(day in range(1, 29), '%s not in [0;28]' % day)
       
    61         self.failUnless(month in range(1, 13), '%s not in [1;12]' % month)
       
    62         self.failUnless(year in range(2000, 2005),
       
    63                         '%s not in [2000;2004]' % year)
       
    64 
       
    65 
    54 
    66     def test_string(self):
    55     def test_string(self):
    67         """test string generation"""
    56         """test string generation"""
    68         surname = self.person_valgen.generate_attribute_value({}, 'surname', 12)
    57         surname = self.person_valgen.generate_attribute_value({}, 'surname', 12)
    69         self.assertEquals(surname, u'é&surname12')
    58         self.assertEquals(surname, u'é&surname12')
    90             self.failUnless(cost_value in range(index+1))
    79             self.failUnless(cost_value in range(index+1))
    91 
    80 
    92     def test_date(self):
    81     def test_date(self):
    93         """test date generation"""
    82         """test date generation"""
    94         # Test for random index
    83         # Test for random index
    95         for index in range(5):
    84         for index in range(10):
    96             date_value = self.person_valgen.generate_attribute_value({}, 'birthday', index)
    85             date_value = self.person_valgen.generate_attribute_value({}, 'birthday', index)
    97             self._check_date(date_value)
    86             self.failUnless(isinstance(date_value, datetime.date))
    98 
    87 
    99     def test_phone(self):
    88     def test_phone(self):
   100         """tests make_tel utility"""
    89         """tests make_tel utility"""
   101         self.assertEquals(make_tel(22030405), '22 03 04 05')
    90         self.assertEquals(make_tel(22030405), '22 03 04 05')
   102 
       
   103 
    91 
   104     def test_customized_generation(self):
    92     def test_customized_generation(self):
   105         self.assertEquals(self.bug_valgen.generate_attribute_value({}, 'severity', 12),
    93         self.assertEquals(self.bug_valgen.generate_attribute_value({}, 'severity', 12),
   106                           u'dangerous')
    94                           u'dangerous')
   107         self.assertEquals(self.bug_valgen.generate_attribute_value({}, 'description', 12),
    95         self.assertEquals(self.bug_valgen.generate_attribute_value({}, 'description', 12),
   108                           u'yo')
    96                           u'yo')
   109         self.assertEquals(self.person_valgen.generate_attribute_value({}, 'description', 12),
    97         self.assertEquals(self.person_valgen.generate_attribute_value({}, 'description', 12),
   110                           u'yo')
    98                           u'yo')
   111 
    99 
   112 
   100 
   113 
       
   114 class ConstraintInsertionTC(TestCase):
   101 class ConstraintInsertionTC(TestCase):
   115 
   102 
   116     def test_writeme(self):
   103     def test_writeme(self):
   117         self.skip('Test automatic insertion / Schema Constraints')
   104         self.skip('Test automatic insertion / Schema Constraints')
   118 
   105