コード例 #1
0
ファイル: test_util.py プロジェクト: alexbrasetvik/Piped
    def test_safe_deepcopy_with_nonexisting_path(self):
        problem_object = uncopyable()
        data = dict(_volatile=['bar', 'unsafe'], foo=42, unsafe=problem_object)

        # bar does not exist in the original, but that should not cause errors
        copy = util.safe_deepcopy(data, object_describer=id)
        expected_copy = dict(_volatile=['bar', 'unsafe'], foo=42, unsafe=id(problem_object))
        self.assertEquals(copy, expected_copy)
コード例 #2
0
    def process(self, baton):
        if self.deepcopy:
            copy_of_baton = util.safe_deepcopy(baton)
        else:
            copy_of_baton = baton

        if self.describer:
            self.list.append(self.describer(copy_of_baton))
        else:
            self.list.append(copy_of_baton)
        return baton
コード例 #3
0
ファイル: test_util.py プロジェクト: alexbrasetvik/Piped
    def test_safe_deepcopy(self):

        problem_object = uncopyable()
        d = dict(foo='bar', nested=dict(unsafe=problem_object), _volatile=['nested.unsafe'])
        d2 = util.safe_deepcopy(d)

        expected_copy = dict(foo='bar', nested=dict(unsafe=repr(problem_object)), _volatile=['nested.unsafe'])
        self.assertEquals(d2, expected_copy)
        self.assertEquals(d, dict(foo='bar', nested=dict(unsafe=problem_object), _volatile=['nested.unsafe']))

        # Ensure that the original object is not mangled:
        d = dict(foo='bar', nested=dict(unsafe=problem_object))
        self.assertRaises(copy.Error, util.safe_deepcopy, d)
        self.assertEquals(d, dict(foo='bar', nested=dict(unsafe=problem_object)))

        # Test custom object describer
        d = dict(foo='bar', nested=dict(unsafe=problem_object), _volatile=['nested.unsafe'])
        d2 = util.safe_deepcopy(d, object_describer=id)
        expected_copy = dict(foo='bar', nested=dict(unsafe=id(problem_object)), _volatile=['nested.unsafe'])
        self.assertEquals(d2, expected_copy)
コード例 #4
0
ファイル: test_util.py プロジェクト: alexbrasetvik/Piped
 def test_safe_deepcopy_on_primitives(self):
     self.assertEquals(util.safe_deepcopy('foo'), 'foo')
     self.assertEquals(util.safe_deepcopy(42), 42)
     self.assertEquals(util.safe_deepcopy([1,2]), [1,2])