diff options
author | Gregory Thiemonge <gthiemon@redhat.com> | 2022-12-05 18:18:43 +0100 |
---|---|---|
committer | Gregory Thiemonge <gthiemon@redhat.com> | 2022-12-05 18:21:48 +0100 |
commit | 5bcac4c7d4503be8161bcf159981199e3ea89d4d (patch) | |
tree | 23a645416264946d23d1f43bacca53fbf88634dc | |
parent | 012b7c5aa901b220479da2a71bb6005edd0506e1 (diff) | |
download | taskflow-5bcac4c7d4503be8161bcf159981199e3ea89d4d.tar.gz |
Fix test_while_is_not with python 3.115.1.0
The test_while_is_not function relied on strings and literals to test
the 'while_is_not' function. But the while_is_not function uses the 'is'
operator to test the equivalency of 2 objects.
This triggers a bug with python 3.11 where using 'is' with literals is
not advised (it is not recommended since python 3.8 [0]).
The test now uses objects from a specific class to evaluate the
while_is_not function.
[0] https://docs.python.org/3/whatsnew/3.8.html#changes-in-python-behavior
Change-Id: I38a0135aaf73e25aa20a11c0685d5c2a7b587a07
-rw-r--r-- | taskflow/tests/unit/test_utils_iter_utils.py | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/taskflow/tests/unit/test_utils_iter_utils.py b/taskflow/tests/unit/test_utils_iter_utils.py index c4109d8..3a37717 100644 --- a/taskflow/tests/unit/test_utils_iter_utils.py +++ b/taskflow/tests/unit/test_utils_iter_utils.py @@ -140,14 +140,21 @@ class IterUtilsTest(test.TestCase): self.assertRaises(ValueError, iter_utils.while_is_not, 2, 'a') def test_while_is_not(self): - it = iter(string.ascii_lowercase) - self.assertEqual(['a'], - list(iter_utils.while_is_not(it, 'a'))) - it = iter(string.ascii_lowercase) - self.assertEqual(['a', 'b'], - list(iter_utils.while_is_not(it, 'b'))) - self.assertEqual(list(string.ascii_lowercase[2:]), - list(iter_utils.while_is_not(it, 'zzz'))) - it = iter(string.ascii_lowercase) - self.assertEqual(list(string.ascii_lowercase), - list(iter_utils.while_is_not(it, ''))) + class Dummy(object): + def __init__(self, char): + self.char = char + dummy_list = [Dummy(a) + for a in string.ascii_lowercase] + + it = iter(dummy_list) + self.assertEqual([dummy_list[0]], + list(iter_utils.while_is_not(it, dummy_list[0]))) + it = iter(dummy_list) + self.assertEqual(dummy_list[0:2], + list(iter_utils.while_is_not(it, dummy_list[1]))) + self.assertEqual(dummy_list[2:], + list(iter_utils.while_is_not(it, Dummy('zzz')))) + + it = iter(dummy_list) + self.assertEqual(dummy_list, + list(iter_utils.while_is_not(it, Dummy('')))) |