def test_verify_widget_caching_behavior(self): self.navigate(data.PD_URL) widget_id = "fwk_menu_16" widget_name = "Related Links" #initially widget is uncached self.assertIsNone(LIB._is_widget_cached(widget_name)) #call with cache_widget = False and widget is Not cached t0 = time.clock() LIB._get_widget_by_name(widget_name, False) uncached_retrival_time = time.clock() - t0 self.assertIsNone(LIB._is_widget_cached(widget_name)) #default - call with cach_widget = True and widget is cached widget = LIB._get_widget_by_name(widget_name) t1 = time.clock() cached_widget = LIB._get_widget_by_name(widget_name) cached_retrival_time = time.clock() - t1 self.assertEqual(widget.text, cached_widget.text) self.assertTrue(cached_retrival_time < uncached_retrival_time) print "Uncached retrival time = %f Cached retrival time = %f" % (uncached_retrival_time, cached_retrival_time) #and widget id should be set to name_widget self.assertEqual("%s_widget" % (widget_name), widget.get_attribute('id')) #and cache should be invalidated after reload LIB.reload_page() self.assertIsNone(LIB._is_widget_cached(widget_name))