Files
deb-python-neutron-lib/neutron_lib/tests/unit/test_neutron_lib.py
Boden R 13fe2cf065 Support copy() in Sentinel
The current impl of Sentinel doesn't return the singleton
instance when used with copy.copy(), but it does with
copy.deepcopy(). This behavior is inconsistent.

This patch adds support for copy.copy() as well as a UT.

Change-Id: I33225f5a6e62be9647edacd4b3bd25702e6d8141
Closes-Bug: #1613409
2016-08-15 13:14:01 -06:00

32 lines
1005 B
Python

# -*- coding: utf-8 -*-
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import copy
from neutron_lib import constants
from neutron_lib.tests import _base as base
class TestNeutronLib(base.BaseTestCase):
def test_sentinel_constant(self):
foo = constants.Sentinel()
bar = copy.deepcopy(foo)
self.assertEqual(id(foo), id(bar))
def test_sentinel_copy(self):
singleton = constants.Sentinel()
self.assertEqual(copy.deepcopy(singleton), copy.copy(singleton))