diff options
| author | Devtools Arcadia <[email protected]> | 2022-02-07 18:08:42 +0300 | 
|---|---|---|
| committer | Devtools Arcadia <[email protected]> | 2022-02-07 18:08:42 +0300 | 
| commit | 1110808a9d39d4b808aef724c861a2e1a38d2a69 (patch) | |
| tree | e26c9fed0de5d9873cce7e00bc214573dc2195b7 /contrib/tools/cython/Cython/Compiler/Tests/TestFlowControl.py | |
intermediate changes
ref:cde9a383711a11544ce7e107a78147fb96cc4029
Diffstat (limited to 'contrib/tools/cython/Cython/Compiler/Tests/TestFlowControl.py')
| -rw-r--r-- | contrib/tools/cython/Cython/Compiler/Tests/TestFlowControl.py | 68 | 
1 files changed, 68 insertions, 0 deletions
| diff --git a/contrib/tools/cython/Cython/Compiler/Tests/TestFlowControl.py b/contrib/tools/cython/Cython/Compiler/Tests/TestFlowControl.py new file mode 100644 index 00000000000..443551ab88c --- /dev/null +++ b/contrib/tools/cython/Cython/Compiler/Tests/TestFlowControl.py @@ -0,0 +1,68 @@ + +from __future__ import absolute_import + +from copy import deepcopy +from unittest import TestCase + +from Cython.Compiler.FlowControl import ( +    NameAssignment, StaticAssignment, Argument, NameDeletion) + + +class FakeType(object): +    is_pyobject = True + + +class FakeNode(object): +    pos = ('filename.pyx', 1, 2) +    cf_state = None +    type = FakeType() + +    def infer_type(self, scope): +        return self.type + + +class FakeEntry(object): +    type = FakeType() + + +class TestGraph(TestCase): +    def test_deepcopy(self): +        lhs, rhs = FakeNode(), FakeNode() +        entry = FakeEntry() +        entry.pos = lhs.pos + +        name_ass = NameAssignment(lhs, rhs, entry) +        ass = deepcopy(name_ass) +        self.assertTrue(ass.lhs) +        self.assertTrue(ass.rhs) +        self.assertTrue(ass.entry) +        self.assertEqual(ass.pos, name_ass.pos) +        self.assertFalse(ass.is_arg) +        self.assertFalse(ass.is_deletion) + +        static_ass = StaticAssignment(entry) +        ass = deepcopy(static_ass) +        self.assertTrue(ass.lhs) +        self.assertTrue(ass.rhs) +        self.assertTrue(ass.entry) +        self.assertEqual(ass.pos, static_ass.pos) +        self.assertFalse(ass.is_arg) +        self.assertFalse(ass.is_deletion) + +        arg_ass = Argument(lhs, rhs, entry) +        ass = deepcopy(arg_ass) +        self.assertTrue(ass.lhs) +        self.assertTrue(ass.rhs) +        self.assertTrue(ass.entry) +        self.assertEqual(ass.pos, arg_ass.pos) +        self.assertTrue(ass.is_arg) +        self.assertFalse(ass.is_deletion) + +        name_del = NameDeletion(lhs, entry) +        ass = deepcopy(name_del) +        self.assertTrue(ass.lhs) +        self.assertTrue(ass.rhs) +        self.assertTrue(ass.entry) +        self.assertEqual(ass.pos, name_del.pos) +        self.assertFalse(ass.is_arg) +        self.assertTrue(ass.is_deletion) | 
