view test/test_token.py @ 7971:fe0348bbe45b

issue2551353 - Add roundup-classhelper for 2.4.0 release Changes to the classic template are not done yet. Still testing. This commit has document updates and changes to rest.py. rest.py: add /rest/data/user/role endpoint to core so the user doesn't have to add the /rest/roles endpoint via interfaces.py. It will only send roles for a user with Admin role and there is no way to override this currently. acknowledgements.txt: Added members of team3 to other contributors. Specified for all other contributes what they worked on. upgrading.txt: added classhelper section and basic template change directions. Linked to admin_guide for full directions. admin_guide.txt: documented install, translation, troubleshooting, config etc. user_guide.txt: added section on using the classhelper. Added reference to section earlier in the doc. Added image for section.
author John Rouillard <rouilj@ieee.org>
date Tue, 21 May 2024 01:17:28 -0400
parents 9a74dfeb8620
children
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.

import unittest, time

from roundup.token_r 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 testEmbedEscapeQuote(self):
        l = token_split(r'"Roch\'e Compaan"')
        self.assertEqual(l, ["Roch'e Compaan"])

        l = token_split(r'"Roch\"e Compaan"')
        self.assertEqual(l, ['Roch"e Compaan'])

        l = token_split(r'sql "COLLATE = \"utf8mb4_unicode_ci\";"')
        self.assertEqual(l, ["sql", 'COLLATE = "utf8mb4_unicode_ci";'])

        l = token_split(r'''sql 'COLLATE = "utf8mb4_unicode_ci";' ''')
        self.assertEqual(l, ["sql", 'COLLATE = "utf8mb4_unicode_ci";'])

        l = token_split(r'''sql 'COLLATE = \"utf8mb4_unicode_ci\";' ''')
        self.assertEqual(l, ["sql", 'COLLATE = "utf8mb4_unicode_ci";'])

        l = token_split(r'''sql 'COLLATE = \'utf8mb4_unicode_ci\';' ''')
        self.assertEqual(l, ["sql", "COLLATE = 'utf8mb4_unicode_ci';"])

        l = token_split(r'''sql 'new\nline\rneed \ttab' ''')
        self.assertEqual(l, ["sql", "new\nline\rneed \ttab"])

    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'])
        l = token_split(r'\r')
        self.assertEqual(l, ['\r'])
        l = token_split(r'\t')
        self.assertEqual(l, ['\t'])

    def testBadQuote(self):
        self.assertRaises(ValueError, token_split, '"hello world')
        self.assertRaises(ValueError, token_split, "Roch'e Compaan")

# vim: set filetype=python ts=4 sw=4 et si

Roundup Issue Tracker: http://roundup-tracker.org/