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 |