(self)
| 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) |
nothing calls this directly
no test coverage detected