summary refs log tree commit diff stats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/tc_newkeys.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/tc_newkeys.py b/test/tc_newkeys.py
index d29450d9..7bdbccad 100644
--- a/test/tc_newkeys.py
+++ b/test/tc_newkeys.py
@@ -241,6 +241,21 @@ class Tree(object):
 		self.key = key
 		self.parent = parent
 
+	def copy(self):
+		"""Create a deep copy"""
+		def deep_copy_dict(dct):
+			dct = dct.copy()
+			for key, val in dct.items():
+				if isinstance(val, dict):
+					dct[key] = deep_copy_dict(val)
+			return dct
+		newtree = Tree()
+		if isinstance(self._tree, dict):
+			newtree._tree = deep_copy_dict(self._tree)
+		else:
+			newtree._tree = self._tree
+		return newtree
+
 	def set(self, keys, value, force=True):
 		"""Sets the element at the end of the path to <value>."""
 		if not isinstance(keys, (list, tuple)):
@@ -603,5 +618,15 @@ class Test(PressTestCase):
 
 		self.assertEqual(40, press('40jkhl'))
 
+	def test_tree_deep_copy(self):
+		t = Tree()
+		s = t.plow('abc')
+		s['d'] = "X"
+		u = t.copy()
+		self.assertEqual(t._tree, u._tree)
+		s = t.traverse('ab')
+		s['c'] = 'Y'
+		self.assertNotEqual(t._tree, u._tree)
+
 
 if __name__ == '__main__': main()
9-12-11 22:30:07 +0100 Reorganization of gui/widget hierarchy and directory structure' href='/akspecs/ranger/commit/test/tc_directory.py?h=v1.9.0b3&id=d88232a386dbc2153aa12bea7f30c9c53c414010'>d88232a3 ^
fe179145 ^
9506fb8e ^
fe179145 ^
5822dff7 ^
fe179145 ^
9506fb8e ^
fe179145 ^

fae694a0 ^

fe179145 ^
fae694a0 ^
fe179145 ^
5822dff7 ^
9506fb8e ^
fae694a0 ^
9506fb8e ^
fae694a0 ^
fe179145 ^

fae694a0 ^
fe179145 ^
fae694a0 ^


4c05e43d ^

fae694a0 ^

fe179145 ^

fae694a0 ^




9506fb8e ^
fae694a0 ^
fae694a0 ^
1159f9ec ^



fe179145 ^
5822dff7 ^
9506fb8e ^
fae694a0 ^
fe179145 ^
fae694a0 ^
fe179145 ^

fae694a0 ^

fe179145 ^
fae694a0 ^
9506fb8e ^

f6f26231 ^
4c05e43d ^
f6f26231 ^







9506fb8e ^
fae694a0 ^

f6f26231 ^










4c05e43d ^

fae694a0 ^

fe179145 ^
5822dff7 ^

fe179145 ^
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118