From 5003e608c6593e98b82479ae9db876fa0ef0eccc Mon Sep 17 00:00:00 2001 From: Blake Eggleston Date: Wed, 2 Oct 2013 13:40:36 -0700 Subject: [PATCH] updating value manager to use deepcopy instead of copy --- changelog | 3 +++ cqlengine/VERSION | 2 +- cqlengine/columns.py | 8 +++++--- cqlengine/tests/columns/test_container_columns.py | 2 -- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/changelog b/changelog index 9c8be653..ac3d1a64 100644 --- a/changelog +++ b/changelog @@ -1,5 +1,8 @@ CHANGELOG +0.8.4 +* changing value manager previous value copying to deepcopy + 0.8.3 * better logging for operational errors diff --git a/cqlengine/VERSION b/cqlengine/VERSION index ee94dd83..b60d7196 100644 --- a/cqlengine/VERSION +++ b/cqlengine/VERSION @@ -1 +1 @@ -0.8.3 +0.8.4 diff --git a/cqlengine/columns.py b/cqlengine/columns.py index e40ddc28..10a5e1b9 100644 --- a/cqlengine/columns.py +++ b/cqlengine/columns.py @@ -1,5 +1,5 @@ #column field types -from copy import copy +from copy import deepcopy from datetime import datetime from datetime import date import re @@ -8,12 +8,13 @@ from cql.query import cql_quote from cqlengine.exceptions import ValidationError + class BaseValueManager(object): def __init__(self, instance, column, value): self.instance = instance self.column = column - self.previous_value = copy(value) + self.previous_value = deepcopy(value) self.value = value @property @@ -31,7 +32,7 @@ class BaseValueManager(object): return self.value != self.previous_value def reset_previous_value(self): - self.previous_value = copy(self.value) + self.previous_value = deepcopy(self.value) def getval(self): return self.value @@ -52,6 +53,7 @@ class BaseValueManager(object): else: return property(_get, _set) + class ValueQuoter(object): """ contains a single value, which will quote itself for CQL insertion statements diff --git a/cqlengine/tests/columns/test_container_columns.py b/cqlengine/tests/columns/test_container_columns.py index cd11fb5a..ba4df808 100644 --- a/cqlengine/tests/columns/test_container_columns.py +++ b/cqlengine/tests/columns/test_container_columns.py @@ -145,8 +145,6 @@ class TestSetColumn(BaseCassEngTestCase): column = columns.Set(columns.Text(min_length=100)) assert isinstance(column.value_col, columns.Text) - - def test_to_python(self): """ Tests that to_python of value column is called """ column = columns.Set(JsonTestColumn)