test/unittest_cwconfig.py
branchstable
changeset 6340 470d8e828fda
parent 6314 b233cc448bdd
child 6349 14ec625b3f55
equal deleted inserted replaced
6339:bdc3dc94d744 6340:470d8e828fda
    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()