view test/test_anypy.py @ 8299:43899d99fc4d

refactor(ruff): multiple changes to clear ruff issues Fix a couple of missing returns of booleans for security checks. Turns an implicit return None into an explicit return False. Fix loop index variable being reassigned inside loop by renaming index variable. 2 instances. Consolidate 2 isinstance calls to 1 with tuple class argument. Replace dict(list comprehension) with dict conprehension. Variable renames. Removal of unused variable. Whitespace fixes. sort imports
author John Rouillard <rouilj@ieee.org>
date Wed, 22 Jan 2025 10:10:39 -0500
parents ebb03b8cee4d
children
line wrap: on
line source

"""Random tests for anypy modules"""


import unittest
from roundup.anypy.strings import repr_export, eval_import
from roundup.anypy.cmp_ import _test

import sys
_py3 = sys.version_info[0] > 2

class StringsTest(unittest.TestCase):

    def test_import_params(self):
        """ issue2551170 - handle long int in history/journal
            params tuple
        """
        # python2 export with id as number
        val = eval_import("('issue', 2345L, 'status')")
        self.assertSequenceEqual(val, ('issue', 2345, 'status'))

        # eval a tuple e.g. date representation
        val = eval_import("(2022, 9, 6, 3, 58, 4.776, 0, 0, 0)")
        self.assertSequenceEqual(val, (2022, 9, 6, 3, 58, 4.776, 0, 0, 0))

        # eval a boolean
        val = eval_import("False")
        self.assertEqual(val, False)
        val = eval_import("True")
        self.assertEqual(val, True)

        # check syntax error
        for testcase in ['true', '(2004, 10, 20', "2000, 10, 22)",
                         "test'", '"test']:
            with self.assertRaises(ValueError) as m:
                val = eval_import(testcase)
            print(m.exception)

        # python3 export with id as number
        val = eval_import("('issue', 2345, 'status')")
        self.assertSequenceEqual(val, ('issue', 2345, 'status'))

        # python2 or python3 export with id as string
        val = eval_import("('issue', '2345', 'status')")
        self.assertSequenceEqual(val, ('issue', '2345', 'status'))

    def test_export_params(self):
        """ issue2551170 - handle long int in history/journal
            params tuple
        """
        # python2 export with id as number
        if _py3:
            val = repr_export(('issue', 2345, 'status'))
            self.assertEqual(val, "('issue', 2345, 'status')")
        else:
            val = repr_export(('issue', long(2345), 'status'))
            self.assertEqual(val, "('issue', 2345L, 'status')")

        # python2 or python3 export with id as string
        val = repr_export(('issue', '2345', 'status'))
        self.assertEqual(val, "('issue', '2345', 'status')")
            
class MiscTest(unittest.TestCase):

    def test_cmp_(self):
        _test()

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