From andreas at andreas-jung.com Thu Aug 18 07:06:03 2005 From: andreas at andreas-jung.com (Andreas Jung) Date: Sun Aug 10 17:05:20 2008 Subject: [ZPT-CVS] CVS: Packages/ZTUtils/tests - testZope.py:1.1.2.1 Message-ID: <20050818110603.D18EE203407@mail.zope.org> Update of /cvs-repository/Packages/ZTUtils/tests In directory cvs.zope.org:/tmp/cvs-serv29298/lib/python/ZTUtils/tests Added Files: Tag: Zope-2_7-branch testZope.py Log Message: - Collector #1871: Applied patch to support lists with records using ZTUtils.make_query() === Added File Packages/ZTUtils/tests/testZope.py === import os, sys from unittest import TestCase, makeSuite, main import string import urllib from ZTUtils.Zope import make_query, complex_marshal from DateTime import DateTime class QueryTests(TestCase): def testMarshallLists(self): '''Test marshalling lists''' test_date = DateTime() list_ = [1, test_date, 'str'] result = complex_marshal([('list',list_),]) assert result == [('list', ':int:list', 1), ('list', ':date:list', test_date), ('list', ':list', 'str')] def testMarshallRecords(self): '''Test marshalling records''' test_date = DateTime() record = {'arg1': 1, 'arg2': test_date, 'arg3': 'str'} result = complex_marshal([('record',record),]) assert result == [('record.arg1', ':int:record', 1), ('record.arg2', ':date:record', test_date), ('record.arg3', ':record', 'str')] def testMarshallListsInRecords(self): '''Test marshalling lists inside of records''' test_date = DateTime() record = {'arg1': [1, test_date, 'str'], 'arg2': 1} result = complex_marshal([('record',record),]) assert result == [('record.arg1', ':int:list:record', 1), ('record.arg1', ':date:list:record', test_date), ('record.arg1', ':list:record', 'str'), ('record.arg2', ':int:record', 1)] def testMakeComplexQuery(self): '''Test that make_query returns sane results''' test_date = DateTime() quote_date = urllib.quote(str(test_date)) record = {'arg1': [1, test_date, 'str'], 'arg2': 1} list_ = [1, test_date, 'str'] date = test_date int_ = 1 str_ = 'str' query = make_query(date=test_date, integer=int_, listing=list_, record=record, string=str_) assert query == 'date:date=%s&integer:int=1&listing:int:list=1&listing:date:list=%s&listing:list=str&string=str&record.arg1:int:list:record=1&record.arg1:date:list:record=%s&record.arg1:list:record=str&record.arg2:int:record=1'%(quote_date,quote_date,quote_date) def test_suite(): return makeSuite(QueryTests) if __name__=='__main__': main() From andreas at andreas-jung.com Thu Aug 18 07:06:33 2005 From: andreas at andreas-jung.com (Andreas Jung) Date: Sun Aug 10 17:05:20 2008 Subject: [ZPT-CVS] CVS: Packages/ZTUtils - Zope.py:1.11.42.7 Message-ID: <20050818110633.E0CE220341D@mail.zope.org> Update of /cvs-repository/Packages/ZTUtils In directory cvs.zope.org:/tmp/cvs-serv29298/lib/python/ZTUtils Modified Files: Tag: Zope-2_7-branch Zope.py Log Message: - Collector #1871: Applied patch to support lists with records using ZTUtils.make_query() === Packages/ZTUtils/Zope.py 1.11.42.6 => 1.11.42.7 === --- Packages/ZTUtils/Zope.py:1.11.42.6 Tue Jan 27 10:45:35 2004 +++ Packages/ZTUtils/Zope.py Thu Aug 18 07:06:03 2005 @@ -236,8 +236,14 @@ elif hasattr(v, 'items'): sublist = [] for sk, sv in v.items(): - sm = simple_marshal(sv) - sublist.append(('%s.%s' % (k, sk), '%s:record' % sm, sv)) + if isinstance(sv, list): + for ssv in sv: + sm = simple_marshal(ssv) + sublist.append(('%s.%s' % (k, sk), + '%s:list:record' % sm, ssv)) + else: + sm = simple_marshal(sv) + sublist.append(('%s.%s' % (k, sk), '%s:record' % sm, sv)) elif isinstance(v, list): sublist = [] for sv in v: