[Erp5-report] r44237 ivan - /erp5/trunk/products/ERP5/tests/testKM.py

nobody at svn.erp5.org nobody at svn.erp5.org
Mon Mar 14 14:17:19 CET 2011


Author: ivan
Date: Mon Mar 14 14:17:19 2011
New Revision: 44237

URL: http://svn.erp5.org?rev=44237&view=rev
Log:
Test calculation of documents' Web Section.

Modified:
    erp5/trunk/products/ERP5/tests/testKM.py

Modified: erp5/trunk/products/ERP5/tests/testKM.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testKM.py?rev=44237&r1=44236&r2=44237&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testKM.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testKM.py [utf8] Mon Mar 14 14:17:19 2011
@@ -909,7 +909,47 @@ class TestKM(TestKMMixIn):
 class TestKMSearch(TestKMMixIn):
   
   business_template_list = TestKMMixIn.business_template_list + ["erp5_km_ui_test_data", "erp5_km_sphinxse_full_text_search"]
-  
+
+  def afterSetUp(self):
+    self.login()
+    portal = self.getPortal()
+    
+    # add connection sphinx_sql_connection 
+    connection_id = "sphinx_sql_connection"
+    if connection_id not in portal.objectIds():
+      portal_templates = portal.portal_templates    
+      website = self.portal.web_site_module.km_test_web_site
+      base_url = "http://www.erp5.org/dists/snapshot/bt5"      
+      portal.manage_addProduct['ZMySQLDA'].manage_addZMySQLConnection(
+                                            id=connection_id , 
+                                            title="Sphinx", 
+                                            connection_string="dummy at 127.0.0.1:9306")
+      connection = getattr(portal, connection_id)
+      connection.manage_open_connection()
+      self.stepTic()
+
+      for bt5_id in ("erp5_full_text_sphinxse_catalog",):
+        bt5 = portal_templates.download("%s/%s.bt5" %(base_url, bt5_id))
+        bt5.install()
+        
+      # make z_catalog_sphinxse_index_list and z0_uncatalog_sphinxse_index use Sphinx connection
+      z_catalog_sphinxse_index_list = portal.restrictedTraverse("portal_catalog/erp5_mysql_innodb/z_catalog_sphinxse_index_list")
+      z0_uncatalog_sphinxse_index = portal.restrictedTraverse("portal_catalog/erp5_mysql_innodb/z0_uncatalog_sphinxse_index")
+      z_catalog_sphinxse_index_list.connection_id=connection_id
+      z0_uncatalog_sphinxse_index.connection_id=connection_id
+      
+      website.publish()
+      self.stepTic()
+
+      # add some test data
+      self.web_page = portal.web_page_module.newContent(portal_type='Web Page', 
+                                                        text_content="Sphinx search tool page")
+      self.stepTic()
+
+      # reindex site
+      portal.ERP5Site_reindexSphinxSE()
+      self.stepTic()
+
   @expectedFailure
   def test_01_NoZODBSphinxSeSearch(self):
     """
@@ -920,55 +960,61 @@ class TestKMSearch(TestKMMixIn):
       See http://www.erp5.org/HowToUseSphinxSE
     """
     portal = self.portal
-    portal_templates = portal.portal_templates
     website = self.portal.web_site_module.km_test_web_site
-    base_url = "http://www.erp5.org/dists/snapshot/bt5"
     
-    # add connection sphinx_sql_connection 
-    connection_id = "sphinx_sql_connection"
-    portal.manage_addProduct['ZMySQLDA'].manage_addZMySQLConnection(
-                                           id=connection_id , 
-                                           title="Sphinx", 
-                                           connection_string="dummy at 127.0.0.1:9306")
-    connection = getattr(portal, connection_id)
-    connection.manage_open_connection()
-    self.stepTic()
-
-    for bt5_id in ("erp5_full_text_sphinxse_catalog",):
-      bt5 = portal_templates.download("%s/%s.bt5" %(base_url, bt5_id))
-      bt5.install()
-       
-    # make z_catalog_sphinxse_index_list and z0_uncatalog_sphinxse_index use Sphinx connection
-    z_catalog_sphinxse_index_list = portal.restrictedTraverse("portal_catalog/erp5_mysql_innodb/z_catalog_sphinxse_index_list")
-    z0_uncatalog_sphinxse_index = portal.restrictedTraverse("portal_catalog/erp5_mysql_innodb/z0_uncatalog_sphinxse_index")
-    z_catalog_sphinxse_index_list.connection_id=connection_id
-    z0_uncatalog_sphinxse_index.connection_id=connection_id
-    
-    website.publish()
-    self.stepTic()
-    
-    # reindex site
-    portal.ERP5Site_reindexSphinxSE()
-    self.stepTic()
-    
-    # add some test data
-    portal.web_page_module.newContent(portal_type='Web Page', 
-                                      text_content="Sphinx search tool page")
-    self.stepTic()
     self.changeSkin('KM')
-    
     # in search mode we do NOT access a ZODB object
     kw = {"list_style": "search",
           "search_text": "Sphinx search tool page"}
     search_result_list = website.WebSite_getFullTextSearchResultList(**kw)
     self.assertEqual(1, len(search_result_list))
     self.assertTrue(isinstance(search_result_list[0], TempBase))
-
+    self.assertEqual(self.web_page.getRelativeUrl(), search_result_list[0].path)
+    
     # in any other mode we do access a ZODB object (i.e. a brain)
     kw["list_style"] = "table"
     search_result_list = website.WebSite_getFullTextSearchResultList(**kw)
     self.assertEqual(1, len(search_result_list))
     self.assertEqual(False, isinstance(search_result_list[0], TempBase))
+    self.assertEqual(self.web_page, search_result_list[0].getObject())
+
+  @expectedFailure
+  def test_02_DocumentWebSectionList(self):
+    """
+      Test determing list of documents web section.
+    """
+    portal = self.portal
+    website = self.portal.web_site_module.km_test_web_site
+    web_page = self.web_page
+    
+    self.changeSkin('KM')
+    # in search mode we do NOT access a ZODB object
+    kw = {"list_style": "search",
+          "search_text": "Sphinx search tool page"}
+    search_result_list = website.WebSite_getFullTextSearchResultList(**kw)
+    self.assertEqual(0, len(search_result_list[0].section_list))
+
+    # set some groups to use Web Sections predicate
+    group_one = portal.portal_categories.restrictedTraverse("group/test_zuite/1")
+    web_page.setGroupValueList([group_one])
+    self.stepTic()
+    search_result_list = website.WebSite_getFullTextSearchResultList(**kw)
+    self.assertSameSet([website.restrictedTraverse("1")], \
+                       [portal.restrictedTraverse(x) for x in search_result_list[0].section_list])
+    # multiple sections                       
+    group_two = portal.portal_categories.restrictedTraverse("group/test_zuite/2")
+    web_page.setGroupValue([group_one, group_two])
+    self.stepTic()
+    search_result_list = website.WebSite_getFullTextSearchResultList(**kw)
+    self.assertSameSet([website.restrictedTraverse("1"), website.restrictedTraverse("2")], \
+                       [portal.restrictedTraverse(x) for x in search_result_list[0].section_list])                       
+    # unset
+    web_page.setGroupValue([])
+    self.stepTic()
+    search_result_list = website.WebSite_getFullTextSearchResultList(**kw)
+    self.assertSameSet([], \
+                       [portal.restrictedTraverse(x) for x in search_result_list[0].section_list])
+
     
 
 def test_suite():



More information about the Erp5-report mailing list