web/test/unittest_propertysheet.py
changeset 5466 b5af2ac0c43c
parent 5445 4467ed43d97d
child 5938 9cb13d1b2ce4
--- a/web/test/unittest_propertysheet.py	Mon May 03 14:17:45 2010 +0200
+++ b/web/test/unittest_propertysheet.py	Wed May 05 10:22:11 2010 +0200
@@ -1,12 +1,21 @@
+import os
 from os.path import join, dirname
+from shutil import rmtree
+
 from logilab.common.testlib import TestCase, unittest_main
+
 from cubicweb.web.propertysheet import *
 
 DATADIR = join(dirname(__file__), 'data')
+CACHEDIR = join(DATADIR, 'uicache')
+
 class PropertySheetTC(TestCase):
 
+    def tearDown(self):
+        rmtree(CACHEDIR)
+
     def test(self):
-        ps = PropertySheet(None, datadir_url='http://cwtest.com')
+        ps = PropertySheet(CACHEDIR, datadir_url='http://cwtest.com')
         ps.load(join(DATADIR, 'sheet1.py'))
         ps.load(join(DATADIR, 'sheet2.py'))
         # defined by sheet1
@@ -20,6 +29,21 @@
                                               'http://cwtest.com/mycube.css'])
         self.assertEquals(ps.compile('a {bgcolor: %(bgcolor)s; size: 1%;}'),
                           'a {bgcolor: #FFFFFF; size: 1%;}')
+        self.assertEquals(ps.process_resource(DATADIR, 'pouet.css'),
+                          CACHEDIR)
+        self.failUnless('pouet.css' in ps._cache)
+        self.failIf(ps.need_reload())
+        os.utime(join(DATADIR, 'sheet1.py'), None)
+        self.failUnless('pouet.css' in ps._cache)
+        self.failUnless(ps.need_reload())
+        self.failUnless('pouet.css' in ps._cache)
+        ps.reload()
+        self.failIf('pouet.css' in ps._cache)
+        self.failIf(ps.need_reload())
+        ps.process_resource(DATADIR, 'pouet.css') # put in cache
+        os.utime(join(DATADIR, 'pouet.css'), None)
+        self.failIf(ps.need_reload())
+        self.failIf('pouet.css' in ps._cache)
 
 if __name__ == '__main__':
     unittest_main()