MCPcopy Create free account
hub / github.com/WebODM/WebODM / test_plugin_datastore

Method test_plugin_datastore

app/tests/test_plugins.py:141–198  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

139
140
141 def test_plugin_datastore(self):
142 enable_plugin("test")
143 test_plugin = get_plugin_by_name("test")
144 user = User.objects.get(username='testuser')
145 other_user = User.objects.get(username='testuser2')
146
147 uds = test_plugin.get_user_data_store(user)
148 other_uds = test_plugin.get_user_data_store(other_user)
149 gds = test_plugin.get_global_data_store()
150
151 # No key
152 self.assertFalse(uds.has_key('mykey'))
153
154 # Default value works
155 self.assertTrue(uds.get_string('mykey', 'default') == 'default')
156
157 # Still no key should have been added
158 self.assertFalse(uds.has_key('mykey'))
159
160 # Add key
161 (object, created) = uds.set_string('mykey', 'value')
162 self.assertTrue(object.string_value == 'value')
163 self.assertTrue(created)
164 self.assertTrue(uds.has_key('mykey'))
165
166 # Key is not visible in global datastore
167 self.assertFalse(gds.has_key('mykey'))
168
169 # Key is not visible in another user's data store
170 self.assertFalse(other_uds.has_key('mykey'))
171
172 # Key is not visible in another's plugin data store
173 # for the same user
174 other_puds = UserDataStore('test2', user)
175 self.assertFalse(other_puds.has_key('mykey'))
176
177 # Deleting a non-existing key return False
178 self.assertFalse(uds.del_key('nonexistant'))
179
180 # Deleting a valid key returns True
181 self.assertTrue(uds.del_key('mykey'))
182 self.assertFalse(uds.has_key('mykey'))
183
184 # Various data types setter/getter work
185 uds.set_int('myint', 5)
186 self.assertTrue(uds.get_int('myint') == 5)
187
188 uds.set_float('myfloat', 10.0)
189 self.assertTrue(uds.get_float('myfloat', 50.0) == 10.0)
190
191 uds.set_bool('mybool', True)
192 self.assertTrue(uds.get_bool('mybool'))
193
194 uds.set_json('myjson', {'test': 123})
195 self.assertTrue('test' in uds.get_json('myjson'))
196
197 # Invalid types
198 self.assertRaises(InvalidDataStoreValue, uds.set_bool, 'invalidbool', 5)

Callers

nothing calls this directly

Calls 15

enable_pluginFunction · 0.90
get_plugin_by_nameFunction · 0.90
UserDataStoreClass · 0.90
get_user_data_storeMethod · 0.80
get_global_data_storeMethod · 0.80
has_keyMethod · 0.80
get_stringMethod · 0.80
set_stringMethod · 0.80
del_keyMethod · 0.80
set_intMethod · 0.80
get_intMethod · 0.80
set_floatMethod · 0.80

Tested by

no test coverage detected