annotate idavoll/test/test_storage.py @ 162:84cfe9fe38c5

Comply with the access model 'open'. Currently, the only implemented access model is 'open', so we should not check for the subscription of the requestor for item retrieval. We do reject outcasts.
author Ralph Meijer <ralphm@ik.nu>
date Wed, 06 Sep 2006 12:57:53 +0000
parents 21fcfb86433f
children ef22e4150caa
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
155
5191ba7c4df8 Work towards first release 0.5.0.
Ralph Meijer <ralphm@ik.nu>
parents: 146
diff changeset
1 # Copyright (c) 2003-2006 Ralph Meijer
5191ba7c4df8 Work towards first release 0.5.0.
Ralph Meijer <ralphm@ik.nu>
parents: 146
diff changeset
2 # See LICENSE for details.
5191ba7c4df8 Work towards first release 0.5.0.
Ralph Meijer <ralphm@ik.nu>
parents: 146
diff changeset
3
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
4 from twisted.trial import unittest
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
5 from twisted.words.protocols.jabber import jid
123
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
6 from twisted.internet import defer
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
7 from twisted.words.xish import domish
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
8
131
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
9 from idavoll import storage, pubsub
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
10
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
11 OWNER = jid.JID('owner@example.com')
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
12 SUBSCRIBER = jid.JID('subscriber@example.com/Home')
123
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
13 SUBSCRIBER_NEW = jid.JID('new@example.com/Home')
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
14 SUBSCRIBER_TO_BE_DELETED = jid.JID('to_be_deleted@example.com/Home')
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
15 SUBSCRIBER_PENDING = jid.JID('pending@example.com/Home')
131
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
16 PUBLISHER = jid.JID('publisher@example.com')
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
17 ITEM = domish.Element((pubsub.NS_PUBSUB, 'item'), pubsub.NS_PUBSUB)
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
18 ITEM['id'] = 'current'
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
19 ITEM.addElement(('testns', 'test'), content=u'Test \u2083 item')
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
20 ITEM_NEW = domish.Element((pubsub.NS_PUBSUB, 'item'), pubsub.NS_PUBSUB)
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
21 ITEM_NEW['id'] = 'new'
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
22 ITEM_NEW.addElement(('testns', 'test'), content=u'Test \u2083 item')
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
23 ITEM_UPDATED = domish.Element((pubsub.NS_PUBSUB, 'item'), pubsub.NS_PUBSUB)
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
24 ITEM_UPDATED['id'] = 'current'
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
25 ITEM_UPDATED.addElement(('testns', 'test'), content=u'Test \u2084 item')
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
26 ITEM_TO_BE_DELETED = domish.Element((pubsub.NS_PUBSUB, 'item'),
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
27 pubsub.NS_PUBSUB)
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
28 ITEM_TO_BE_DELETED['id'] = 'to-be-deleted'
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
29 ITEM_TO_BE_DELETED.addElement(('testns', 'test'), content=u'Test \u2083 item')
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
30
139
8f6956b9a688 Follow API change in Twisted Xish, while still being compatible with
Ralph Meijer <ralphm@ik.nu>
parents: 138
diff changeset
31 def decode(object):
8f6956b9a688 Follow API change in Twisted Xish, while still being compatible with
Ralph Meijer <ralphm@ik.nu>
parents: 138
diff changeset
32 if isinstance(object, str):
8f6956b9a688 Follow API change in Twisted Xish, while still being compatible with
Ralph Meijer <ralphm@ik.nu>
parents: 138
diff changeset
33 object = object.decode('utf-8')
8f6956b9a688 Follow API change in Twisted Xish, while still being compatible with
Ralph Meijer <ralphm@ik.nu>
parents: 138
diff changeset
34 return object
8f6956b9a688 Follow API change in Twisted Xish, while still being compatible with
Ralph Meijer <ralphm@ik.nu>
parents: 138
diff changeset
35
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
36 class StorageTests:
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
37
117
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
38 def _assignTestNode(self, node):
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
39 self.node = node
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
40
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
41 def setUpClass(self):
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
42 d = self.s.get_node('pre-existing')
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
43 d.addCallback(self._assignTestNode)
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
44 return d
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
45
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
46 def testGetNode(self):
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
47 return self.s.get_node('pre-existing')
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
48
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
49 def testGetNonExistingNode(self):
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
50 d = self.s.get_node('non-existing')
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
51 self.assertFailure(d, storage.NodeNotFound)
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
52 return d
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
53
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
54 def testGetNodeIDs(self):
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
55 def cb(node_ids):
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
56 self.assertIn('pre-existing', node_ids)
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
57 self.assertNotIn('non-existing', node_ids)
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
58
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
59 return self.s.get_node_ids().addCallback(cb)
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
60
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
61 def testCreateExistingNode(self):
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
62 d = self.s.create_node('pre-existing', OWNER)
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
63 self.assertFailure(d, storage.NodeExists)
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
64 return d
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
65
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
66 def testCreateNode(self):
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
67 def cb(void):
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
68 d = self.s.get_node('new 1')
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
69 return d
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
70
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
71 d = self.s.create_node('new 1', OWNER)
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
72 d.addCallback(cb)
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
73 return d
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
74
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
75 def testDeleteNonExistingNode(self):
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
76 d = self.s.delete_node('non-existing')
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
77 self.assertFailure(d, storage.NodeNotFound)
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
78 return d
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
79
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
80 def testDeleteNode(self):
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
81 def cb(void):
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
82 d = self.s.get_node('to-be-deleted')
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
83 self.assertFailure(d, storage.NodeNotFound)
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
84 return d
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
85
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
86 d = self.s.delete_node('to-be-deleted')
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
87 d.addCallback(cb)
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
88 return d
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
89
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
90 def testGetAffiliations(self):
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
91 def cb(affiliations):
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
92 self.assertIn(('pre-existing', 'owner'), affiliations)
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
93
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
94 d = self.s.get_affiliations(OWNER)
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
95 d.addCallback(cb)
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
96 return d
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
97
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
98 def testGetSubscriptions(self):
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
99 def cb(subscriptions):
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
100 self.assertIn(('pre-existing', SUBSCRIBER, 'subscribed'), subscriptions)
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
101
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
102 d = self.s.get_subscriptions(SUBSCRIBER)
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
103 d.addCallback(cb)
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
104 return d
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
105
117
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
106 # Node tests
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
107
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
108 def testGetType(self):
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
109 self.assertEqual(self.node.get_type(), 'leaf')
117
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
110
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
111 def testGetConfiguration(self):
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
112 config = self.node.get_configuration()
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
113 self.assertIn('pubsub#persist_items', config.iterkeys())
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
114 self.assertIn('pubsub#deliver_payloads', config.iterkeys())
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
115 self.assertEqual(config['pubsub#persist_items'], True)
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
116 self.assertEqual(config['pubsub#deliver_payloads'], True)
117
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
117
123
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
118 def testSetConfiguration(self):
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
119 def get_config(node):
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
120 d = node.set_configuration({'pubsub#persist_items': False})
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
121 d.addCallback(lambda _: node)
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
122 return d
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
123
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
124 def check_object_config(node):
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
125 config = node.get_configuration()
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
126 self.assertEqual(config['pubsub#persist_items'], False)
123
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
127
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
128 def get_node(void):
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
129 return self.s.get_node('to-be-reconfigured')
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
130
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
131 def check_storage_config(node):
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
132 config = node.get_configuration()
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
133 self.assertEqual(config['pubsub#persist_items'], False)
123
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
134
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
135 d = self.s.get_node('to-be-reconfigured')
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
136 d.addCallback(get_config)
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
137 d.addCallback(check_object_config)
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
138 d.addCallback(get_node)
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
139 d.addCallback(check_storage_config)
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
140 return d
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
141
117
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
142 def testGetMetaData(self):
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
143 meta_data = self.node.get_meta_data()
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
144 for key, value in self.node.get_configuration().iteritems():
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
145 self.assertIn(key, meta_data.iterkeys())
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
146 self.assertEqual(value, meta_data[key])
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
147 self.assertIn('pubsub#node_type', meta_data.iterkeys())
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
148 self.assertEqual(meta_data['pubsub#node_type'], 'leaf')
117
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
149
123
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
150 def testGetAffiliation(self):
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
151 def cb(affiliation):
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
152 self.assertEqual(affiliation, 'owner')
123
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
153
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
154 d = self.node.get_affiliation(OWNER)
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
155 d.addCallback(cb)
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
156 return d
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
157
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
158 def testGetNonExistingAffiliation(self):
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
159 def cb(affiliation):
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
160 self.assertEqual(affiliation, None)
123
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
161
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
162 d = self.node.get_affiliation(SUBSCRIBER)
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
163 d.addCallback(cb)
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
164 return d
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
165
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
166 def testAddSubscription(self):
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
167 def cb1(void):
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
168 return self.node.get_subscription(SUBSCRIBER_NEW)
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
169
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
170 def cb2(state):
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
171 self.assertEqual(state, 'pending')
123
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
172
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
173 d = self.node.add_subscription(SUBSCRIBER_NEW, 'pending')
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
174 d.addCallback(cb1)
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
175 d.addCallback(cb2)
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
176 return d
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
177
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
178 def testAddExistingSubscription(self):
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
179 d = self.node.add_subscription(SUBSCRIBER, 'pending')
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
180 self.assertFailure(d, storage.SubscriptionExists)
123
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
181 return d
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
182
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
183 def testGetSubscription(self):
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
184 def cb(subscriptions):
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
185 self.assertEquals(subscriptions[0][1], 'subscribed')
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
186 self.assertEquals(subscriptions[1][1], 'pending')
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
187 self.assertEquals(subscriptions[2][1], None)
123
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
188
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
189 d = defer.DeferredList([self.node.get_subscription(SUBSCRIBER),
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
190 self.node.get_subscription(SUBSCRIBER_PENDING),
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
191 self.node.get_subscription(OWNER)])
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
192 d.addCallback(cb)
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
193 return d
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
194
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
195 def testRemoveSubscription(self):
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
196 return self.node.remove_subscription(SUBSCRIBER_TO_BE_DELETED)
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
197
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
198 def testRemoveNonExistingSubscription(self):
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
199 d = self.node.remove_subscription(OWNER)
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
200 self.assertFailure(d, storage.SubscriptionNotFound)
123
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
201 return d
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
202
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
203 def testGetSubscribers(self):
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
204 def cb(subscribers):
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
205 self.assertIn(SUBSCRIBER, subscribers)
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
206 self.assertNotIn(SUBSCRIBER_PENDING, subscribers)
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
207 self.assertNotIn(OWNER, subscribers)
123
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
208
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
209 d = self.node.get_subscribers()
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
210 d.addCallback(cb)
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
211 return d
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
212
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
213 def testIsSubscriber(self):
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
214 def cb(subscribed):
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
215 self.assertEquals(subscribed[0][1], True)
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
216 self.assertEquals(subscribed[1][1], True)
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
217 self.assertEquals(subscribed[2][1], False)
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
218 self.assertEquals(subscribed[3][1], False)
123
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
219
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
220 d = defer.DeferredList([self.node.is_subscribed(SUBSCRIBER),
146
b4490bdc77e5 Change semantics of Node.is_subscribed() to match all subscriptions for an
Ralph Meijer <ralphm@ik.nu>
parents: 145
diff changeset
221 self.node.is_subscribed(SUBSCRIBER.userhostJID()),
123
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
222 self.node.is_subscribed(SUBSCRIBER_PENDING),
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
223 self.node.is_subscribed(OWNER)])
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
224 d.addCallback(cb)
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
225 return d
117
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
226
131
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
227 def testStoreItems(self):
138
635e433810ef Actually test whether the item was indeed stored.
Ralph Meijer <ralphm@ik.nu>
parents: 137
diff changeset
228 def cb1(void):
635e433810ef Actually test whether the item was indeed stored.
Ralph Meijer <ralphm@ik.nu>
parents: 137
diff changeset
229 return self.node.get_items_by_id(['new'])
635e433810ef Actually test whether the item was indeed stored.
Ralph Meijer <ralphm@ik.nu>
parents: 137
diff changeset
230
635e433810ef Actually test whether the item was indeed stored.
Ralph Meijer <ralphm@ik.nu>
parents: 137
diff changeset
231 def cb2(result):
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
232 self.assertEqual(result[0], decode(ITEM_NEW.toXml()))
138
635e433810ef Actually test whether the item was indeed stored.
Ralph Meijer <ralphm@ik.nu>
parents: 137
diff changeset
233
635e433810ef Actually test whether the item was indeed stored.
Ralph Meijer <ralphm@ik.nu>
parents: 137
diff changeset
234 d = self.node.store_items([ITEM_NEW], PUBLISHER)
635e433810ef Actually test whether the item was indeed stored.
Ralph Meijer <ralphm@ik.nu>
parents: 137
diff changeset
235 d.addCallback(cb1)
635e433810ef Actually test whether the item was indeed stored.
Ralph Meijer <ralphm@ik.nu>
parents: 137
diff changeset
236 d.addCallback(cb2)
635e433810ef Actually test whether the item was indeed stored.
Ralph Meijer <ralphm@ik.nu>
parents: 137
diff changeset
237 return d
131
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
238
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
239 def testStoreUpdatedItems(self):
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
240 def cb1(void):
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
241 return self.node.get_items_by_id(['current'])
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
242
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
243 def cb2(result):
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
244 self.assertEqual(result[0], decode(ITEM_UPDATED.toXml()))
131
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
245
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
246 d = self.node.store_items([ITEM_UPDATED], PUBLISHER)
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
247 d.addCallback(cb1)
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
248 d.addCallback(cb2)
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
249 return d
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
250
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
251 def testRemoveItems(self):
142
812300cdbc22 Changed behaviour of retraction of items so that only the actually deleted
Ralph Meijer <ralphm@ik.nu>
parents: 139
diff changeset
252 def cb1(result):
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
253 self.assertEqual(result, ['to-be-deleted'])
131
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
254 return self.node.get_items_by_id(['to-be-deleted'])
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
255
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
256 def cb2(result):
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
257 self.assertEqual(len(result), 0)
131
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
258
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
259 d = self.node.remove_items(['to-be-deleted'])
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
260 d.addCallback(cb1)
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
261 d.addCallback(cb2)
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
262 return d
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
263
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
264 def testRemoveNonExistingItems(self):
142
812300cdbc22 Changed behaviour of retraction of items so that only the actually deleted
Ralph Meijer <ralphm@ik.nu>
parents: 139
diff changeset
265 def cb(result):
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
266 self.assertEqual(result, [])
142
812300cdbc22 Changed behaviour of retraction of items so that only the actually deleted
Ralph Meijer <ralphm@ik.nu>
parents: 139
diff changeset
267
812300cdbc22 Changed behaviour of retraction of items so that only the actually deleted
Ralph Meijer <ralphm@ik.nu>
parents: 139
diff changeset
268 d = self.node.remove_items(['non-existing'])
812300cdbc22 Changed behaviour of retraction of items so that only the actually deleted
Ralph Meijer <ralphm@ik.nu>
parents: 139
diff changeset
269 d.addCallback(cb)
131
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
270 return d
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
271
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
272 def testGetItems(self):
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
273 def cb(result):
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
274 self.assertIn(decode(ITEM.toXml()), result)
131
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
275
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
276 d = self.node.get_items()
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
277 d.addCallback(cb)
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
278 return d
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
279
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
280 def testLastItem(self):
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
281 def cb(result):
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
282 self.assertEqual([decode(ITEM.toXml())], result)
131
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
283
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
284 d = self.node.get_items(1)
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
285 d.addCallback(cb)
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
286 return d
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
287
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
288 def testGetItemsById(self):
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
289 def cb(result):
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
290 self.assertEqual(len(result), 1)
131
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
291
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
292 d = self.node.get_items_by_id(['current'])
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
293 d.addCallback(cb)
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
294 return d
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
295
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
296 def testGetNonExistingItemsById(self):
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
297 def cb(result):
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
298 self.assertEqual(len(result), 0)
131
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
299
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
300 d = self.node.get_items_by_id(['non-existing'])
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
301 d.addCallback(cb)
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
302 return d
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
303
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
304 def testPurge(self):
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
305 def cb1(node):
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
306 d = node.purge()
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
307 d.addCallback(lambda _: node)
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
308 return d
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
309
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
310 def cb2(node):
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
311 return node.get_items()
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
312
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
313 def cb3(result):
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
314 self.assertEqual([], result)
131
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
315
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
316 d = self.s.get_node('to-be-purged')
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
317 d.addCallback(cb1)
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
318 d.addCallback(cb2)
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
319 d.addCallback(cb3)
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
320 return d
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
321
145
f393bccec4bc Add get_affiliations to Node class in storage facilities in preparation of
Ralph Meijer <ralphm@ik.nu>
parents: 142
diff changeset
322 def testGetNodeAffilatiations(self):
f393bccec4bc Add get_affiliations to Node class in storage facilities in preparation of
Ralph Meijer <ralphm@ik.nu>
parents: 142
diff changeset
323 def cb1(node):
f393bccec4bc Add get_affiliations to Node class in storage facilities in preparation of
Ralph Meijer <ralphm@ik.nu>
parents: 142
diff changeset
324 return node.get_affiliations()
f393bccec4bc Add get_affiliations to Node class in storage facilities in preparation of
Ralph Meijer <ralphm@ik.nu>
parents: 142
diff changeset
325
f393bccec4bc Add get_affiliations to Node class in storage facilities in preparation of
Ralph Meijer <ralphm@ik.nu>
parents: 142
diff changeset
326 def cb2(affiliations):
f393bccec4bc Add get_affiliations to Node class in storage facilities in preparation of
Ralph Meijer <ralphm@ik.nu>
parents: 142
diff changeset
327 affiliations = dict(((a[0].full(), a[1]) for a in affiliations))
157
21fcfb86433f Fix tests to work with current Twisted. Really do 0.5.0 release.
Ralph Meijer <ralphm@ik.nu>
parents: 155
diff changeset
328 self.assertEquals(affiliations[OWNER.full()], 'owner')
145
f393bccec4bc Add get_affiliations to Node class in storage facilities in preparation of
Ralph Meijer <ralphm@ik.nu>
parents: 142
diff changeset
329
f393bccec4bc Add get_affiliations to Node class in storage facilities in preparation of
Ralph Meijer <ralphm@ik.nu>
parents: 142
diff changeset
330 d = self.s.get_node('pre-existing')
f393bccec4bc Add get_affiliations to Node class in storage facilities in preparation of
Ralph Meijer <ralphm@ik.nu>
parents: 142
diff changeset
331 d.addCallback(cb1)
f393bccec4bc Add get_affiliations to Node class in storage facilities in preparation of
Ralph Meijer <ralphm@ik.nu>
parents: 142
diff changeset
332 d.addCallback(cb2)
f393bccec4bc Add get_affiliations to Node class in storage facilities in preparation of
Ralph Meijer <ralphm@ik.nu>
parents: 142
diff changeset
333 return d
f393bccec4bc Add get_affiliations to Node class in storage facilities in preparation of
Ralph Meijer <ralphm@ik.nu>
parents: 142
diff changeset
334
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
335 class MemoryStorageStorageTestCase(unittest.TestCase, StorageTests):
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
336
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
337 def setUpClass(self):
117
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
338 from idavoll.memory_storage import Storage, LeafNode, Subscription, \
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
339 default_config
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
340 self.s = Storage()
123
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
341 self.s._nodes['pre-existing'] = \
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
342 LeafNode('pre-existing', OWNER, default_config)
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
343 self.s._nodes['to-be-deleted'] = \
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
344 LeafNode('to-be-deleted', OWNER, None)
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
345 self.s._nodes['to-be-reconfigured'] = \
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
346 LeafNode('to-be-reconfigured', OWNER, default_config)
131
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
347 self.s._nodes['to-be-purged'] = \
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
348 LeafNode('to-be-purged', OWNER, None)
123
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
349
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
350 subscriptions = self.s._nodes['pre-existing']._subscriptions
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
351 subscriptions[SUBSCRIBER.full()] = Subscription('subscribed')
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
352 subscriptions[SUBSCRIBER_TO_BE_DELETED.full()] = \
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
353 Subscription('subscribed')
123
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
354 subscriptions[SUBSCRIBER_PENDING.full()] = \
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
355 Subscription('pending')
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
356
139
8f6956b9a688 Follow API change in Twisted Xish, while still being compatible with
Ralph Meijer <ralphm@ik.nu>
parents: 138
diff changeset
357 item = (decode(ITEM_TO_BE_DELETED.toXml()), PUBLISHER)
131
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
358 self.s._nodes['pre-existing']._items['to-be-deleted'] = item
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
359 self.s._nodes['pre-existing']._itemlist.append(item)
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
360 self.s._nodes['to-be-purged']._items['to-be-deleted'] = item
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
361 self.s._nodes['to-be-purged']._itemlist.append(item)
139
8f6956b9a688 Follow API change in Twisted Xish, while still being compatible with
Ralph Meijer <ralphm@ik.nu>
parents: 138
diff changeset
362 item = (decode(ITEM.toXml()), PUBLISHER)
131
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
363 self.s._nodes['pre-existing']._items['current'] = item
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
364 self.s._nodes['pre-existing']._itemlist.append(item)
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
365
117
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
366 return StorageTests.setUpClass(self)
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
367
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
368 class PgsqlStorageStorageTestCase(unittest.TestCase, StorageTests):
117
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
369 def _callSuperSetUpClass(self, void):
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
370 return StorageTests.setUpClass(self)
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
371
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
372 def setUpClass(self):
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
373 from idavoll.pgsql_storage import Storage
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
374 self.s = Storage('ralphm', 'pubsub_test')
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
375 self.s._dbpool.start()
117
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
376 d = self.s._dbpool.runInteraction(self.init)
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
377 d.addCallback(self._callSuperSetUpClass)
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
378 return d
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
379
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
380 def tearDownClass(self):
131
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
381 #return self.s._dbpool.runInteraction(self.cleandb)
123
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
382 pass
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
383
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
384 def init(self, cursor):
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
385 self.cleandb(cursor)
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
386 cursor.execute("""INSERT INTO nodes (node) VALUES ('pre-existing')""")
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
387 cursor.execute("""INSERT INTO nodes (node) VALUES ('to-be-deleted')""")
123
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
388 cursor.execute("""INSERT INTO nodes (node) VALUES ('to-be-reconfigured')""")
131
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
389 cursor.execute("""INSERT INTO nodes (node) VALUES ('to-be-purged')""")
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
390 cursor.execute("""INSERT INTO entities (jid) VALUES (%s)""",
137
aca904a41a43 Discover client_encoding parameter to pyPgSQL.
Ralph Meijer <ralphm@ik.nu>
parents: 131
diff changeset
391 OWNER.userhost())
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
392 cursor.execute("""INSERT INTO affiliations
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
393 (node_id, entity_id, affiliation)
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
394 SELECT nodes.id, entities.id, 'owner'
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
395 FROM nodes, entities
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
396 WHERE node='pre-existing' AND jid=%s""",
137
aca904a41a43 Discover client_encoding parameter to pyPgSQL.
Ralph Meijer <ralphm@ik.nu>
parents: 131
diff changeset
397 OWNER.userhost())
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
398 cursor.execute("""INSERT INTO entities (jid) VALUES (%s)""",
137
aca904a41a43 Discover client_encoding parameter to pyPgSQL.
Ralph Meijer <ralphm@ik.nu>
parents: 131
diff changeset
399 SUBSCRIBER.userhost())
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
400 cursor.execute("""INSERT INTO subscriptions
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
401 (node_id, entity_id, resource, subscription)
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
402 SELECT nodes.id, entities.id, %s, 'subscribed'
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
403 FROM nodes, entities
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
404 WHERE node='pre-existing' AND jid=%s""",
137
aca904a41a43 Discover client_encoding parameter to pyPgSQL.
Ralph Meijer <ralphm@ik.nu>
parents: 131
diff changeset
405 (SUBSCRIBER.resource,
aca904a41a43 Discover client_encoding parameter to pyPgSQL.
Ralph Meijer <ralphm@ik.nu>
parents: 131
diff changeset
406 SUBSCRIBER.userhost()))
123
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
407 cursor.execute("""INSERT INTO entities (jid) VALUES (%s)""",
137
aca904a41a43 Discover client_encoding parameter to pyPgSQL.
Ralph Meijer <ralphm@ik.nu>
parents: 131
diff changeset
408 SUBSCRIBER_TO_BE_DELETED.userhost())
123
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
409 cursor.execute("""INSERT INTO subscriptions
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
410 (node_id, entity_id, resource, subscription)
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
411 SELECT nodes.id, entities.id, %s, 'subscribed'
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
412 FROM nodes, entities
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
413 WHERE node='pre-existing' AND jid=%s""",
137
aca904a41a43 Discover client_encoding parameter to pyPgSQL.
Ralph Meijer <ralphm@ik.nu>
parents: 131
diff changeset
414 (SUBSCRIBER_TO_BE_DELETED.resource,
aca904a41a43 Discover client_encoding parameter to pyPgSQL.
Ralph Meijer <ralphm@ik.nu>
parents: 131
diff changeset
415 SUBSCRIBER_TO_BE_DELETED.userhost()))
123
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
416 cursor.execute("""INSERT INTO entities (jid) VALUES (%s)""",
137
aca904a41a43 Discover client_encoding parameter to pyPgSQL.
Ralph Meijer <ralphm@ik.nu>
parents: 131
diff changeset
417 SUBSCRIBER_PENDING.userhost())
123
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
418 cursor.execute("""INSERT INTO subscriptions
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
419 (node_id, entity_id, resource, subscription)
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
420 SELECT nodes.id, entities.id, %s, 'pending'
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
421 FROM nodes, entities
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
422 WHERE node='pre-existing' AND jid=%s""",
137
aca904a41a43 Discover client_encoding parameter to pyPgSQL.
Ralph Meijer <ralphm@ik.nu>
parents: 131
diff changeset
423 (SUBSCRIBER_PENDING.resource,
aca904a41a43 Discover client_encoding parameter to pyPgSQL.
Ralph Meijer <ralphm@ik.nu>
parents: 131
diff changeset
424 SUBSCRIBER_PENDING.userhost()))
131
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
425 cursor.execute("""INSERT INTO entities (jid) VALUES (%s)""",
137
aca904a41a43 Discover client_encoding parameter to pyPgSQL.
Ralph Meijer <ralphm@ik.nu>
parents: 131
diff changeset
426 PUBLISHER.userhost())
131
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
427 cursor.execute("""INSERT INTO items
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
428 (node_id, publisher, item, data, date)
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
429 SELECT nodes.id, %s, 'to-be-deleted', %s,
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
430 now() - interval '1 day'
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
431 FROM nodes
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
432 WHERE node='pre-existing'""",
137
aca904a41a43 Discover client_encoding parameter to pyPgSQL.
Ralph Meijer <ralphm@ik.nu>
parents: 131
diff changeset
433 (PUBLISHER.userhost(),
131
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
434 ITEM_TO_BE_DELETED.toXml()))
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
435 cursor.execute("""INSERT INTO items (node_id, publisher, item, data)
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
436 SELECT nodes.id, %s, 'to-be-deleted', %s
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
437 FROM nodes
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
438 WHERE node='to-be-purged'""",
137
aca904a41a43 Discover client_encoding parameter to pyPgSQL.
Ralph Meijer <ralphm@ik.nu>
parents: 131
diff changeset
439 (PUBLISHER.userhost(),
131
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
440 ITEM_TO_BE_DELETED.toXml()))
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
441 cursor.execute("""INSERT INTO items (node_id, publisher, item, data)
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
442 SELECT nodes.id, %s, 'current', %s
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
443 FROM nodes
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
444 WHERE node='pre-existing'""",
137
aca904a41a43 Discover client_encoding parameter to pyPgSQL.
Ralph Meijer <ralphm@ik.nu>
parents: 131
diff changeset
445 (PUBLISHER.userhost(),
131
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
446 ITEM.toXml()))
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
447
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
448 def cleandb(self, cursor):
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
449 cursor.execute("""DELETE FROM nodes WHERE node in
117
bc872c33e88c Added test cases for a few of the Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 114
diff changeset
450 ('non-existing', 'pre-existing', 'to-be-deleted',
131
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
451 'new 1', 'new 2', 'new 3', 'to-be-reconfigured',
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
452 'to-be-purged')""")
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
453 cursor.execute("""DELETE FROM entities WHERE jid=%s""",
137
aca904a41a43 Discover client_encoding parameter to pyPgSQL.
Ralph Meijer <ralphm@ik.nu>
parents: 131
diff changeset
454 OWNER.userhost())
114
e7cfe05bc1d2 Initial revision.
Ralph Meijer <ralphm@ik.nu>
parents:
diff changeset
455 cursor.execute("""DELETE FROM entities WHERE jid=%s""",
137
aca904a41a43 Discover client_encoding parameter to pyPgSQL.
Ralph Meijer <ralphm@ik.nu>
parents: 131
diff changeset
456 SUBSCRIBER.userhost())
123
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
457 cursor.execute("""DELETE FROM entities WHERE jid=%s""",
137
aca904a41a43 Discover client_encoding parameter to pyPgSQL.
Ralph Meijer <ralphm@ik.nu>
parents: 131
diff changeset
458 SUBSCRIBER_TO_BE_DELETED.userhost())
123
8f99b4f7aea2 Add tests for all Node methods.
Ralph Meijer <ralphm@ik.nu>
parents: 117
diff changeset
459 cursor.execute("""DELETE FROM entities WHERE jid=%s""",
137
aca904a41a43 Discover client_encoding parameter to pyPgSQL.
Ralph Meijer <ralphm@ik.nu>
parents: 131
diff changeset
460 SUBSCRIBER_PENDING.userhost())
131
fe8cb99363ff Add test cases for LeafNodes.
Ralph Meijer <ralphm@ik.nu>
parents: 123
diff changeset
461 cursor.execute("""DELETE FROM entities WHERE jid=%s""",
137
aca904a41a43 Discover client_encoding parameter to pyPgSQL.
Ralph Meijer <ralphm@ik.nu>
parents: 131
diff changeset
462 PUBLISHER.userhost())