52 def test_reorder_cubes(self): |
52 def test_reorder_cubes(self): |
53 self.config.__class__.CUBES_PATH = [CUSTOM_CUBES_DIR] |
53 self.config.__class__.CUBES_PATH = [CUSTOM_CUBES_DIR] |
54 self.config.adjust_sys_path() |
54 self.config.adjust_sys_path() |
55 # forge depends on email and file and comment |
55 # forge depends on email and file and comment |
56 # email depends on file |
56 # email depends on file |
57 self.assertEquals(self.config.reorder_cubes(['file', 'email', 'forge']), |
57 self.assertEqual(self.config.reorder_cubes(['file', 'email', 'forge']), |
58 ('forge', 'email', 'file')) |
58 ('forge', 'email', 'file')) |
59 self.assertEquals(self.config.reorder_cubes(['email', 'file', 'forge']), |
59 self.assertEqual(self.config.reorder_cubes(['email', 'file', 'forge']), |
60 ('forge', 'email', 'file')) |
60 ('forge', 'email', 'file')) |
61 self.assertEquals(self.config.reorder_cubes(['email', 'forge', 'file']), |
61 self.assertEqual(self.config.reorder_cubes(['email', 'forge', 'file']), |
62 ('forge', 'email', 'file')) |
62 ('forge', 'email', 'file')) |
63 self.assertEquals(self.config.reorder_cubes(['file', 'forge', 'email']), |
63 self.assertEqual(self.config.reorder_cubes(['file', 'forge', 'email']), |
64 ('forge', 'email', 'file')) |
64 ('forge', 'email', 'file')) |
65 self.assertEquals(self.config.reorder_cubes(['forge', 'file', 'email']), |
65 self.assertEqual(self.config.reorder_cubes(['forge', 'file', 'email']), |
66 ('forge', 'email', 'file')) |
66 ('forge', 'email', 'file')) |
67 self.assertEquals(self.config.reorder_cubes(('forge', 'email', 'file')), |
67 self.assertEqual(self.config.reorder_cubes(('forge', 'email', 'file')), |
68 ('forge', 'email', 'file')) |
68 ('forge', 'email', 'file')) |
69 |
69 |
70 def test_reorder_cubes_recommends(self): |
70 def test_reorder_cubes_recommends(self): |
71 self.config.__class__.CUBES_PATH = [CUSTOM_CUBES_DIR] |
71 self.config.__class__.CUBES_PATH = [CUSTOM_CUBES_DIR] |
72 self.config.adjust_sys_path() |
72 self.config.adjust_sys_path() |
73 from cubes.comment import __pkginfo__ as comment_pkginfo |
73 from cubes.comment import __pkginfo__ as comment_pkginfo |
74 comment_pkginfo.__recommends_cubes__ = {'file': None} |
74 comment_pkginfo.__recommends_cubes__ = {'file': None} |
75 try: |
75 try: |
76 # email recommends comment |
76 # email recommends comment |
77 # comment recommends file |
77 # comment recommends file |
78 self.assertEquals(self.config.reorder_cubes(('forge', 'email', 'file', 'comment')), |
78 self.assertEqual(self.config.reorder_cubes(('forge', 'email', 'file', 'comment')), |
79 ('forge', 'email', 'comment', 'file')) |
79 ('forge', 'email', 'comment', 'file')) |
80 self.assertEquals(self.config.reorder_cubes(('forge', 'email', 'comment', 'file')), |
80 self.assertEqual(self.config.reorder_cubes(('forge', 'email', 'comment', 'file')), |
81 ('forge', 'email', 'comment', 'file')) |
81 ('forge', 'email', 'comment', 'file')) |
82 self.assertEquals(self.config.reorder_cubes(('forge', 'comment', 'email', 'file')), |
82 self.assertEqual(self.config.reorder_cubes(('forge', 'comment', 'email', 'file')), |
83 ('forge', 'email', 'comment', 'file')) |
83 ('forge', 'email', 'comment', 'file')) |
84 self.assertEquals(self.config.reorder_cubes(('comment', 'forge', 'email', 'file')), |
84 self.assertEqual(self.config.reorder_cubes(('comment', 'forge', 'email', 'file')), |
85 ('forge', 'email', 'comment', 'file')) |
85 ('forge', 'email', 'comment', 'file')) |
86 finally: |
86 finally: |
87 comment_pkginfo.__recommends_cubes__ = {} |
87 comment_pkginfo.__recommends_cubes__ = {} |
88 |
88 |
89 |
89 |
90 # def test_vc_config(self): |
90 # def test_vc_config(self): |
91 # vcconf = self.config.vc_config() |
91 # vcconf = self.config.vc_config() |
92 # self.assertIsInstance(vcconf['EEMAIL'], Version) |
92 # self.assertIsInstance(vcconf['EEMAIL'], Version) |
93 # self.assertEquals(vcconf['EEMAIL'], (0, 3, 1)) |
93 # self.assertEqual(vcconf['EEMAIL'], (0, 3, 1)) |
94 # self.assertEquals(vcconf['CW'], (2, 31, 2)) |
94 # self.assertEqual(vcconf['CW'], (2, 31, 2)) |
95 # self.assertRaises(KeyError, vcconf.__getitem__, 'CW_VERSION') |
95 # self.assertRaises(KeyError, vcconf.__getitem__, 'CW_VERSION') |
96 # self.assertRaises(KeyError, vcconf.__getitem__, 'CRM') |
96 # self.assertRaises(KeyError, vcconf.__getitem__, 'CRM') |
97 |
97 |
98 def test_expand_cubes(self): |
98 def test_expand_cubes(self): |
99 self.assertEquals(self.config.expand_cubes(('email', 'blog')), |
99 self.assertEqual(self.config.expand_cubes(('email', 'blog')), |
100 ['email', 'blog', 'file']) |
100 ['email', 'blog', 'file']) |
101 |
101 |
102 def test_vregistry_path(self): |
102 def test_vregistry_path(self): |
103 self.assertEquals([unabsolutize(p) for p in self.config.vregistry_path()], |
103 self.assertEqual([unabsolutize(p) for p in self.config.vregistry_path()], |
104 ['entities', 'web/views', 'sobjects', 'hooks', |
104 ['entities', 'web/views', 'sobjects', 'hooks', |
105 'file/entities.py', 'file/views', 'file/hooks.py', |
105 'file/entities.py', 'file/views', 'file/hooks.py', |
106 'email/entities.py', 'email/views', 'email/hooks.py', |
106 'email/entities.py', 'email/views', 'email/hooks.py', |
107 'test/data/entities.py', 'test/data/views.py']) |
107 'test/data/entities.py', 'test/data/views.py']) |
108 |
108 |
109 def test_cubes_path(self): |
109 def test_cubes_path(self): |
110 # make sure we don't import the email cube, but the stdlib email package |
110 # make sure we don't import the email cube, but the stdlib email package |
111 import email |
111 import email |
112 self.assertNotEquals(dirname(email.__file__), self.config.CUBES_DIR) |
112 self.assertNotEquals(dirname(email.__file__), self.config.CUBES_DIR) |
113 self.config.__class__.CUBES_PATH = [CUSTOM_CUBES_DIR] |
113 self.config.__class__.CUBES_PATH = [CUSTOM_CUBES_DIR] |
114 self.assertEquals(self.config.cubes_search_path(), |
114 self.assertEqual(self.config.cubes_search_path(), |
115 [CUSTOM_CUBES_DIR, self.config.CUBES_DIR]) |
115 [CUSTOM_CUBES_DIR, self.config.CUBES_DIR]) |
116 self.config.__class__.CUBES_PATH = [CUSTOM_CUBES_DIR, |
116 self.config.__class__.CUBES_PATH = [CUSTOM_CUBES_DIR, |
117 self.config.CUBES_DIR, 'unexistant'] |
117 self.config.CUBES_DIR, 'unexistant'] |
118 # filter out unexistant and duplicates |
118 # filter out unexistant and duplicates |
119 self.assertEquals(self.config.cubes_search_path(), |
119 self.assertEqual(self.config.cubes_search_path(), |
120 [CUSTOM_CUBES_DIR, |
120 [CUSTOM_CUBES_DIR, |
121 self.config.CUBES_DIR]) |
121 self.config.CUBES_DIR]) |
122 self.failUnless('mycube' in self.config.available_cubes()) |
122 self.failUnless('mycube' in self.config.available_cubes()) |
123 # test cubes python path |
123 # test cubes python path |
124 self.config.adjust_sys_path() |
124 self.config.adjust_sys_path() |
125 import cubes |
125 import cubes |
126 self.assertEquals(cubes.__path__, self.config.cubes_search_path()) |
126 self.assertEqual(cubes.__path__, self.config.cubes_search_path()) |
127 # this import should succeed once path is adjusted |
127 # this import should succeed once path is adjusted |
128 from cubes import mycube |
128 from cubes import mycube |
129 self.assertEquals(mycube.__path__, [join(CUSTOM_CUBES_DIR, 'mycube')]) |
129 self.assertEqual(mycube.__path__, [join(CUSTOM_CUBES_DIR, 'mycube')]) |
130 # file cube should be overriden by the one found in data/cubes |
130 # file cube should be overriden by the one found in data/cubes |
131 sys.modules.pop('cubes.file', None) |
131 sys.modules.pop('cubes.file', None) |
132 del cubes.file |
132 del cubes.file |
133 from cubes import file |
133 from cubes import file |
134 self.assertEquals(file.__path__, [join(CUSTOM_CUBES_DIR, 'file')]) |
134 self.assertEqual(file.__path__, [join(CUSTOM_CUBES_DIR, 'file')]) |
135 |
135 |
136 |
136 |
137 class FindPrefixTC(TestCase): |
137 class FindPrefixTC(TestCase): |
138 def make_dirs(self, *args): |
138 def make_dirs(self, *args): |
139 path = join(tempfile.tempdir, *args) |
139 path = join(tempfile.tempdir, *args) |
151 |
151 |
152 @with_tempdir |
152 @with_tempdir |
153 def test_samedir(self): |
153 def test_samedir(self): |
154 prefix = tempfile.tempdir |
154 prefix = tempfile.tempdir |
155 self.make_dirs('share', 'cubicweb') |
155 self.make_dirs('share', 'cubicweb') |
156 self.assertEquals(_find_prefix(prefix), prefix) |
156 self.assertEqual(_find_prefix(prefix), prefix) |
157 |
157 |
158 @with_tempdir |
158 @with_tempdir |
159 def test_samedir_filepath(self): |
159 def test_samedir_filepath(self): |
160 prefix = tempfile.tempdir |
160 prefix = tempfile.tempdir |
161 self.make_dirs('share', 'cubicweb') |
161 self.make_dirs('share', 'cubicweb') |
162 file_path = self.make_file('bob.py') |
162 file_path = self.make_file('bob.py') |
163 self.assertEquals(_find_prefix(file_path), prefix) |
163 self.assertEqual(_find_prefix(file_path), prefix) |
164 |
164 |
165 @with_tempdir |
165 @with_tempdir |
166 def test_dir_inside_prefix(self): |
166 def test_dir_inside_prefix(self): |
167 prefix = tempfile.tempdir |
167 prefix = tempfile.tempdir |
168 self.make_dirs('share', 'cubicweb') |
168 self.make_dirs('share', 'cubicweb') |
169 dir_path = self.make_dirs('bob') |
169 dir_path = self.make_dirs('bob') |
170 self.assertEquals(_find_prefix(dir_path), prefix) |
170 self.assertEqual(_find_prefix(dir_path), prefix) |
171 |
171 |
172 @with_tempdir |
172 @with_tempdir |
173 def test_file_in_dir_inside_prefix(self): |
173 def test_file_in_dir_inside_prefix(self): |
174 prefix = tempfile.tempdir |
174 prefix = tempfile.tempdir |
175 self.make_dirs('share', 'cubicweb') |
175 self.make_dirs('share', 'cubicweb') |
176 file_path = self.make_file('bob', 'toto.py') |
176 file_path = self.make_file('bob', 'toto.py') |
177 self.assertEquals(_find_prefix(file_path), prefix) |
177 self.assertEqual(_find_prefix(file_path), prefix) |
178 |
178 |
179 @with_tempdir |
179 @with_tempdir |
180 def test_file_in_deeper_dir_inside_prefix(self): |
180 def test_file_in_deeper_dir_inside_prefix(self): |
181 prefix = tempfile.tempdir |
181 prefix = tempfile.tempdir |
182 self.make_dirs('share', 'cubicweb') |
182 self.make_dirs('share', 'cubicweb') |
183 file_path = self.make_file('bob', 'pyves', 'alain', 'adim', 'syt', 'toto.py') |
183 file_path = self.make_file('bob', 'pyves', 'alain', 'adim', 'syt', 'toto.py') |
184 self.assertEquals(_find_prefix(file_path), prefix) |
184 self.assertEqual(_find_prefix(file_path), prefix) |
185 |
185 |
186 @with_tempdir |
186 @with_tempdir |
187 def test_multiple_candidate_prefix(self): |
187 def test_multiple_candidate_prefix(self): |
188 self.make_dirs('share', 'cubicweb') |
188 self.make_dirs('share', 'cubicweb') |
189 prefix = self.make_dirs('bob') |
189 prefix = self.make_dirs('bob') |
190 self.make_dirs('bob', 'share', 'cubicweb') |
190 self.make_dirs('bob', 'share', 'cubicweb') |
191 file_path = self.make_file('bob', 'pyves', 'alain', 'adim', 'syt', 'toto.py') |
191 file_path = self.make_file('bob', 'pyves', 'alain', 'adim', 'syt', 'toto.py') |
192 self.assertEquals(_find_prefix(file_path), prefix) |
192 self.assertEqual(_find_prefix(file_path), prefix) |
193 |
193 |
194 @with_tempdir |
194 @with_tempdir |
195 def test_sister_candidate_prefix(self): |
195 def test_sister_candidate_prefix(self): |
196 prefix = tempfile.tempdir |
196 prefix = tempfile.tempdir |
197 self.make_dirs('share', 'cubicweb') |
197 self.make_dirs('share', 'cubicweb') |
198 self.make_dirs('bob', 'share', 'cubicweb') |
198 self.make_dirs('bob', 'share', 'cubicweb') |
199 file_path = self.make_file('bell', 'toto.py') |
199 file_path = self.make_file('bell', 'toto.py') |
200 self.assertEquals(_find_prefix(file_path), prefix) |
200 self.assertEqual(_find_prefix(file_path), prefix) |
201 |
201 |
202 @with_tempdir |
202 @with_tempdir |
203 def test_multiple_parent_candidate_prefix(self): |
203 def test_multiple_parent_candidate_prefix(self): |
204 self.make_dirs('share', 'cubicweb') |
204 self.make_dirs('share', 'cubicweb') |
205 prefix = self.make_dirs('share', 'cubicweb', 'bob') |
205 prefix = self.make_dirs('share', 'cubicweb', 'bob') |
206 self.make_dirs('share', 'cubicweb', 'bob', 'share', 'cubicweb') |
206 self.make_dirs('share', 'cubicweb', 'bob', 'share', 'cubicweb') |
207 file_path = self.make_file('share', 'cubicweb', 'bob', 'pyves', 'alain', 'adim', 'syt', 'toto.py') |
207 file_path = self.make_file('share', 'cubicweb', 'bob', 'pyves', 'alain', 'adim', 'syt', 'toto.py') |
208 self.assertEquals(_find_prefix(file_path), prefix) |
208 self.assertEqual(_find_prefix(file_path), prefix) |
209 |
209 |
210 @with_tempdir |
210 @with_tempdir |
211 def test_upper_candidate_prefix(self): |
211 def test_upper_candidate_prefix(self): |
212 prefix = tempfile.tempdir |
212 prefix = tempfile.tempdir |
213 self.make_dirs('share', 'cubicweb') |
213 self.make_dirs('share', 'cubicweb') |
214 self.make_dirs('bell','bob', 'share', 'cubicweb') |
214 self.make_dirs('bell','bob', 'share', 'cubicweb') |
215 file_path = self.make_file('bell', 'toto.py') |
215 file_path = self.make_file('bell', 'toto.py') |
216 self.assertEquals(_find_prefix(file_path), prefix) |
216 self.assertEqual(_find_prefix(file_path), prefix) |
217 |
217 |
218 @with_tempdir |
218 @with_tempdir |
219 def test_no_prefix(self): |
219 def test_no_prefix(self): |
220 prefix = tempfile.tempdir |
220 prefix = tempfile.tempdir |
221 self.assertEquals(_find_prefix(prefix), sys.prefix) |
221 self.assertEqual(_find_prefix(prefix), sys.prefix) |
222 |
222 |
223 if __name__ == '__main__': |
223 if __name__ == '__main__': |
224 unittest_main() |
224 unittest_main() |