Mercurial > p > roundup > code
view test/test_token.py @ 3692:8e52157e2073
More transitive-property work.
- Add some more tests that break the current SQL backend implementation
for transitive properties. One of them looks like a Postgres bug to
me -- I'm getting:
"""ProgrammingError: ERROR: relation "_user2" does not exist"""
where _user2 is an alias for _user in the from clause (but _user2 is
used in a left outer join). The other SQL backends are fine with the
generated SQL. Hmm. One of the reasons for packing sort and search
attributes into the same data structure was the optimized SQL: not
creating a left outer join for attributes that are already in a normal
join (from/where clause). I'll check if I can instead leave the
attribute from the from-clause instead (or if I'm then getting errors
from the other backends, Postgres seems fine with that).
| author | Ralf Schlatterbeck <schlatterbeck@users.sourceforge.net> |
|---|---|
| date | Wed, 30 Aug 2006 08:50:44 +0000 |
| parents | f63aa57386b0 |
| children | 6e3e4f24c753 |
line wrap: on
line source
# # Copyright (c) 2001 Richard Jones # This module is free software, and you may redistribute it and/or modify # under the same terms as Python, so long as this copyright message and # disclaimer are retained in their original form. # # This module is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # # $Id: test_token.py,v 1.3 2003-10-25 22:53:26 richard Exp $ import unittest, time from roundup.token import token_split class TokenTestCase(unittest.TestCase): def testValid(self): l = token_split('hello world') self.assertEqual(l, ['hello', 'world']) def testIgnoreExtraSpace(self): l = token_split('hello world ') self.assertEqual(l, ['hello', 'world']) def testQuoting(self): l = token_split('"hello world"') self.assertEqual(l, ['hello world']) l = token_split("'hello world'") self.assertEqual(l, ['hello world']) def testEmbedQuote(self): l = token_split(r'Roch\'e Compaan') self.assertEqual(l, ["Roch'e", "Compaan"]) l = token_split('address="1 2 3"') self.assertEqual(l, ['address=1 2 3']) def testEscaping(self): l = token_split('"Roch\'e" Compaan') self.assertEqual(l, ["Roch'e", "Compaan"]) l = token_split(r'hello\ world') self.assertEqual(l, ['hello world']) l = token_split(r'\\') self.assertEqual(l, ['\\']) l = token_split(r'\n') self.assertEqual(l, ['\n']) def testBadQuote(self): self.assertRaises(ValueError, token_split, '"hello world') self.assertRaises(ValueError, token_split, "Roch'e Compaan") def test_suite(): suite = unittest.TestSuite() suite.addTest(unittest.makeSuite(TokenTestCase)) return suite if __name__ == '__main__': runner = unittest.TextTestRunner() unittest.main(testRunner=runner) # vim: set filetype=python ts=4 sw=4 et si
