74 lines
2.2 KiB
Python
74 lines
2.2 KiB
Python
from nameHandling.base import ComponentName, NameStyleBproto
|
|
from nameHandling.style.pythonNameStyle import NameStylePython
|
|
from protocol_components.enumeration import FactoryEnumeration
|
|
from copy import deepcopy
|
|
|
|
|
|
def test_deepcopy_component_name():
|
|
name = ComponentName(["This", "Is", "Some", "text"], NameStylePython, source_string="ThisIsSomeText")
|
|
|
|
new_name = deepcopy(name)
|
|
|
|
name.name_parts = ["Some", "Other", "Stuff"]
|
|
name.source_string = "SomeOtherStuff"
|
|
name.source_style = NameStyleBproto
|
|
|
|
# Verify Values did not change
|
|
assert name.name_parts != new_name.name_parts
|
|
assert name.source_string != new_name.source_string
|
|
assert name.source_style != new_name.source_style
|
|
|
|
|
|
def test_deepcopy_enum():
|
|
old_enum_factory = FactoryEnumeration()
|
|
old_enum_factory.add_value("Value1", 1)
|
|
old_enum_factory.add_value("Value2", 2)
|
|
old_enum_factory.add_value("Value3", 3)
|
|
old_enum = old_enum_factory.assemble("OldEnum")
|
|
|
|
new_enum = deepcopy(old_enum)
|
|
|
|
# Check ids
|
|
assert id(new_enum) != id(old_enum)
|
|
assert id(new_enum.name) != id(old_enum.name)
|
|
|
|
assert id(old_enum.values) != id(new_enum.values)
|
|
|
|
old_keys = list(old_enum.values.keys())
|
|
new_keys = list(new_enum.values.keys())
|
|
assert id(old_keys[0]) != id(new_keys[0])
|
|
assert id(old_keys[1]) != id(new_keys[1])
|
|
assert id(old_keys[2]) != id(new_keys[2])
|
|
|
|
|
|
def test_deepcopy_component_names_memo():
|
|
name1 = NameStyleBproto.fromStr("Value1")
|
|
name2 = NameStyleBproto.fromStr("Value2")
|
|
|
|
assert id(name1) != id(name2)
|
|
|
|
name1_copy = deepcopy(name1)
|
|
assert isinstance(name1_copy, ComponentName)
|
|
|
|
assert name1_copy == name1
|
|
assert id(name1_copy) != id(name1)
|
|
|
|
name1_copy2 = deepcopy(name1, {
|
|
id(name1): name1_copy,
|
|
id(name1_copy): name1_copy
|
|
})
|
|
|
|
name1_copy3 = deepcopy(name1_copy, {
|
|
id(name1): name1_copy,
|
|
id(name1_copy): name1_copy
|
|
})
|
|
|
|
assert isinstance(name1_copy2, ComponentName)
|
|
assert isinstance(name1_copy3, ComponentName)
|
|
|
|
assert id(name1_copy) == id(name1_copy2)
|
|
assert id(name1_copy2) != id(name1)
|
|
|
|
assert id(name1_copy) == id(name1_copy3)
|
|
assert id(name1_copy3) != id(name1)
|