[Erp5-report] r17113 - /erp5/trunk/products/ZSQLCatalog/tests/testZSQLCatalog.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Tue Oct 23 11:50:22 CEST 2007
Author: jerome
Date: Tue Oct 23 11:50:22 2007
New Revision: 17113
URL: http://svn.erp5.org?rev=17113&view=rev
Log:
low level unit tests for Query
Modified:
erp5/trunk/products/ZSQLCatalog/tests/testZSQLCatalog.py
Modified: erp5/trunk/products/ZSQLCatalog/tests/testZSQLCatalog.py
URL: http://svn.erp5.org/erp5/trunk/products/ZSQLCatalog/tests/testZSQLCatalog.py?rev=17113&r1=17112&r2=17113&view=diff
==============================================================================
--- erp5/trunk/products/ZSQLCatalog/tests/testZSQLCatalog.py (original)
+++ erp5/trunk/products/ZSQLCatalog/tests/testZSQLCatalog.py Tue Oct 23 11:50:22 2007
@@ -29,12 +29,14 @@
import unittest
import sys
+from DateTime import DateTime
from Products.ZSQLMethods.SQL import SQL as ZSQLMethod
from Products.CMFCore.Expression import Expression
from Products.ZSQLCatalog.SQLCatalog import Catalog as SQLCatalog
from Products.ZSQLCatalog.ZSQLCatalog import ZCatalog as ZSQLCatalog
-#from Products.ZSQLCatalog.SQLCatalog import Query
+from Products.ZSQLCatalog.SQLCatalog import Query
+from Products.ZSQLCatalog.SQLCatalog import ComplexQuery
try:
from transaction import get as get_transaction
@@ -96,9 +98,74 @@
self._catalog.isPortalTypeSelected('not_exists', 'Selected'))
+class TestQuery(unittest.TestCase):
+ def testSimpleQuery(self):
+ q = Query(title='Foo')
+ self.assertEquals(
+ dict(where_expression="title = 'Foo'",
+ select_expression_list=[]),
+ q.asSQLExpression(keyword_search_keys=[], full_text_search_keys=[]))
+
+ def testMultiValuedQuery(self):
+ q = Query(title=['Foo', 'Bar'])
+ self.assertEquals(
+ dict(where_expression="(title = 'Foo' OR title = 'Bar')",
+ select_expression_list=[]),
+ q.asSQLExpression(keyword_search_keys=[], full_text_search_keys=[]))
+
+ def testMinQuery(self):
+ q = Query(title='Foo', range='min')
+ self.assertEquals(
+ dict(where_expression="title >= 'Foo'",
+ select_expression_list=[]),
+ q.asSQLExpression(keyword_search_keys=[], full_text_search_keys=[]))
+
+ def testMaxQuery(self):
+ q = Query(title='Foo', range='max')
+ self.assertEquals(
+ dict(where_expression="title < 'Foo'",
+ select_expression_list=[]),
+ q.asSQLExpression(keyword_search_keys=[], full_text_search_keys=[]))
+
+ def testDateFormat(self):
+ q = Query(date=DateTime(2001, 02, 03), format='%Y/%m/%d', type='date')
+ self.assertEquals(
+ dict(where_expression=
+ "STR_TO_DATE(DATE_FORMAT(date,'%Y/%m/%d'),'%Y/%m/%d')"
+ " = STR_TO_DATE('2001/02/03','%Y/%m/%d')",
+ select_expression_list=[]),
+ q.asSQLExpression(keyword_search_keys=[], full_text_search_keys=[]))
+
+ def testSimpleQueryFullText(self):
+ q = Query(title='Foo')
+ self.assertEquals(dict(where_expression="MATCH title AGAINST ('Foo' )",
+ select_expression_list=
+ ["MATCH title AGAINST ('Foo' ) AS title_relevance"]),
+ q.asSQLExpression(keyword_search_keys=[],
+ full_text_search_keys=['title']))
+
+ def testSimpleQuerySearchKey(self):
+ q = Query(title='Foo')
+ self.assertEquals(dict(where_expression="title LIKE '%Foo%'",
+ select_expression_list=[]),
+ q.asSQLExpression(keyword_search_keys=['title'],
+ full_text_search_keys=[]))
+
+ def testSimpleComplexQuery(self):
+ q1 = Query(title='Foo')
+ q2 = Query(reference='Bar')
+ q = ComplexQuery(q1, q2)
+ self.assertEquals(
+ dict(where_expression="((title = 'Foo') AND (reference = 'Bar'))",
+ select_expression_list=[]),
+ q.asSQLExpression(keyword_search_keys=[],
+ full_text_search_keys=[]))
+
+
def test_suite():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(TestSQLCatalog))
suite.addTest(unittest.makeSuite(TestZSQLCatalog))
+ suite.addTest(unittest.makeSuite(TestQuery))
return suite
More information about the Erp5-report
mailing list