test/unittest_cwconfig.py
changeset 0 b97547f5f1fa
child 13 bae30087db21
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test/unittest_cwconfig.py	Wed Nov 05 15:52:50 2008 +0100
@@ -0,0 +1,74 @@
+import os
+from tempfile import mktemp
+
+from logilab.common.testlib import TestCase, unittest_main
+from logilab.common.changelog import Version
+
+from cubicweb.devtools import ApptestConfiguration
+
+def unabsolutize(path):
+    parts = path.split(os.sep)
+    for i, part in enumerate(parts):
+        if part in ('cubicweb', 'cubes', 'cubes'):
+            return '/'.join(parts[i+1:])
+    raise Exception('duh? %s' % path)
+    
+class CubicWebConfigurationTC(TestCase):
+    def setUp(self):
+        self.config = ApptestConfiguration('data')
+        self.config._cubes = ('eemail', 'efile')
+
+    def test_reorder_cubes(self):
+        # jpl depends on eemail and efile and ecomment
+        # eemail depends on efile
+        self.assertEquals(self.config.reorder_cubes(['efile', 'eemail', 'jpl']),
+                          ('jpl', 'eemail', 'efile'))
+        self.assertEquals(self.config.reorder_cubes(['eemail', 'efile', 'jpl']),
+                          ('jpl', 'eemail', 'efile'))
+        self.assertEquals(self.config.reorder_cubes(['eemail', 'jpl', 'efile']),
+                          ('jpl', 'eemail', 'efile'))
+        self.assertEquals(self.config.reorder_cubes(['efile', 'jpl', 'eemail']),
+                          ('jpl', 'eemail', 'efile'))
+        self.assertEquals(self.config.reorder_cubes(['jpl', 'efile', 'eemail']),
+                          ('jpl', 'eemail', 'efile'))
+        self.assertEquals(self.config.reorder_cubes(('jpl', 'eemail', 'efile')),
+                          ('jpl', 'eemail', 'efile'))
+        
+    def test_reorder_cubes_recommends(self):
+        from ecomment import __pkginfo__ as ecomment_pkginfo
+        ecomment_pkginfo.__recommend__ = ('efile',)
+        try:
+            # eemail recommends ecomment
+            # ecomment recommends efile
+            self.assertEquals(self.config.reorder_cubes(('jpl', 'eemail', 'efile', 'ecomment')),
+                              ('jpl', 'eemail', 'ecomment', 'efile'))
+            self.assertEquals(self.config.reorder_cubes(('jpl', 'eemail', 'ecomment', 'efile')),
+                              ('jpl', 'eemail', 'ecomment', 'efile'))
+            self.assertEquals(self.config.reorder_cubes(('jpl', 'ecomment', 'eemail', 'efile')),
+                              ('jpl', 'eemail', 'ecomment', 'efile'))
+            self.assertEquals(self.config.reorder_cubes(('ecomment', 'jpl', 'eemail', 'efile')),
+                              ('jpl', 'eemail', 'ecomment', 'efile'))
+        finally:
+            ecomment_pkginfo.__use__ = ()
+            
+        
+#     def test_vc_config(self):
+#         vcconf = self.config.vc_config()
+#         self.assertIsInstance(vcconf['EEMAIL'], Version)
+#         self.assertEquals(vcconf['EEMAIL'], (0, 3, 1))
+#         self.assertEquals(vcconf['CW'], (2, 31, 2))
+#         self.assertRaises(KeyError, vcconf.__getitem__, 'CW_VERSION')
+#         self.assertRaises(KeyError, vcconf.__getitem__, 'CRM')
+        
+    def test_expand_cubes(self):
+        self.assertEquals(self.config.expand_cubes(('eemail', 'eblog')),
+                          ['eemail', 'eblog', 'efile'])
+
+    def test_vregistry_path(self):
+        self.assertEquals([unabsolutize(p) for p in self.config.vregistry_path()],
+                          ['entities', 'web/views', 'sobjects',
+                           'efile/entities.py', 'efile/views', 'efile/hooks.py',
+                           'eemail/entities.py', 'eemail/views', 'eemail/hooks.py'])
+            
+if __name__ == '__main__':
+    unittest_main()