view test/test_anypy.py @ 8533:67ed90055e47

test: handle failing email signature removal test differently The comment for the test is: # This fails because the sig isn't removed (we currently remove the # sig only if the delimiter is the first line in a section) Originally the test was decorated so it didn't run at all and reported PASSED. The decorator also returned the value 0. This caused a deprecation warning: test/test_mailgw.py::MailgwTestCase::testEmailQuotingRemove3 /usr/lib/python3.12/unittest/case.py:690: DeprecationWarning: It is deprecated to return a value that is not None from a test case [...] Better to handle it using pytest xfail so if we start stripping the signature we get a failure. This does mean the tests get an xfail registered, but I am ok with that. I added "OK" to the reason to indicate it was expected.
author John Rouillard <rouilj@ieee.org>
date Wed, 18 Mar 2026 11:11:03 -0400
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/