synapse 2.188.0__py311-none-any.whl → 2.188.1__py311-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of synapse might be problematic. Click here for more details.
- synapse/lib/drive.py +1 -1
- synapse/lib/version.py +2 -2
- synapse/tests/test_lib_cell.py +176 -165
- {synapse-2.188.0.dist-info → synapse-2.188.1.dist-info}/METADATA +1 -1
- {synapse-2.188.0.dist-info → synapse-2.188.1.dist-info}/RECORD +8 -8
- {synapse-2.188.0.dist-info → synapse-2.188.1.dist-info}/WHEEL +1 -1
- {synapse-2.188.0.dist-info → synapse-2.188.1.dist-info}/LICENSE +0 -0
- {synapse-2.188.0.dist-info → synapse-2.188.1.dist-info}/top_level.txt +0 -0
synapse/lib/drive.py
CHANGED
|
@@ -505,7 +505,7 @@ class Drive(s_base.Base):
|
|
|
505
505
|
def getTypeSchema(self, typename):
|
|
506
506
|
byts = self.slab.get(LKEY_TYPE + typename.encode(), db=self.dbname)
|
|
507
507
|
if byts is not None:
|
|
508
|
-
return s_msgpack.un(byts)
|
|
508
|
+
return s_msgpack.un(byts, use_list=True)
|
|
509
509
|
|
|
510
510
|
def getTypeSchemaVersion(self, typename):
|
|
511
511
|
verskey = LKEY_TYPE_VERS + typename.encode()
|
synapse/lib/version.py
CHANGED
|
@@ -223,6 +223,6 @@ def reqVersion(valu, reqver,
|
|
|
223
223
|
##############################################################################
|
|
224
224
|
# The following are touched during the release process by bumpversion.
|
|
225
225
|
# Do not modify these directly.
|
|
226
|
-
version = (2, 188,
|
|
226
|
+
version = (2, 188, 1)
|
|
227
227
|
verstring = '.'.join([str(x) for x in version])
|
|
228
|
-
commit = '
|
|
228
|
+
commit = '2cf97aa2a3266442393dfc78525749d3f65d9fc7'
|
synapse/tests/test_lib_cell.py
CHANGED
|
@@ -29,6 +29,7 @@ import synapse.lib.coro as s_coro
|
|
|
29
29
|
import synapse.lib.link as s_link
|
|
30
30
|
import synapse.lib.drive as s_drive
|
|
31
31
|
import synapse.lib.nexus as s_nexus
|
|
32
|
+
import synapse.lib.config as s_config
|
|
32
33
|
import synapse.lib.certdir as s_certdir
|
|
33
34
|
import synapse.lib.msgpack as s_msgpack
|
|
34
35
|
import synapse.lib.version as s_version
|
|
@@ -160,8 +161,9 @@ testDataSchema_v0 = {
|
|
|
160
161
|
'properties': {
|
|
161
162
|
'type': {'type': 'string'},
|
|
162
163
|
'size': {'type': 'number'},
|
|
164
|
+
'stuff': {'type': ['number', 'null'], 'default': None}
|
|
163
165
|
},
|
|
164
|
-
'required': ['type', 'size'],
|
|
166
|
+
'required': ['type', 'size', 'stuff'],
|
|
165
167
|
'additionalProperties': False,
|
|
166
168
|
}
|
|
167
169
|
|
|
@@ -170,6 +172,7 @@ testDataSchema_v1 = {
|
|
|
170
172
|
'properties': {
|
|
171
173
|
'type': {'type': 'string'},
|
|
172
174
|
'size': {'type': 'number'},
|
|
175
|
+
'stuff': {'type': ['number', 'null'], 'default': None},
|
|
173
176
|
'woot': {'type': 'string'},
|
|
174
177
|
},
|
|
175
178
|
'required': ['type', 'size', 'woot'],
|
|
@@ -180,202 +183,210 @@ class CellTest(s_t_utils.SynTest):
|
|
|
180
183
|
|
|
181
184
|
async def test_cell_drive(self):
|
|
182
185
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
with self.raises(s_exc.BadName):
|
|
186
|
-
s_drive.reqValidName('A' * 512)
|
|
187
|
-
|
|
188
|
-
info = {'name': 'users'}
|
|
189
|
-
pathinfo = await cell.addDriveItem(info)
|
|
190
|
-
|
|
191
|
-
info = {'name': 'root'}
|
|
192
|
-
pathinfo = await cell.addDriveItem(info, path='users')
|
|
193
|
-
|
|
194
|
-
with self.raises(s_exc.DupIden):
|
|
195
|
-
await cell.drive.addItemInfo(pathinfo[-1], path='users')
|
|
196
|
-
|
|
197
|
-
rootdir = pathinfo[-1].get('iden')
|
|
198
|
-
self.eq(0, pathinfo[-1].get('kids'))
|
|
199
|
-
|
|
200
|
-
info = {'name': 'win32k.sys', 'type': 'hehe'}
|
|
201
|
-
with self.raises(s_exc.NoSuchType):
|
|
202
|
-
info = await cell.addDriveItem(info, reldir=rootdir)
|
|
186
|
+
with self.getTestDir() as dirn:
|
|
187
|
+
async with self.getTestCell(dirn=dirn) as cell:
|
|
203
188
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
self.eq(1, infos[0].get('kids'))
|
|
207
|
-
self.eq('users', infos[0].get('name'))
|
|
189
|
+
with self.raises(s_exc.BadName):
|
|
190
|
+
s_drive.reqValidName('A' * 512)
|
|
208
191
|
|
|
209
|
-
|
|
192
|
+
info = {'name': 'users'}
|
|
193
|
+
pathinfo = await cell.addDriveItem(info)
|
|
210
194
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
self.false(await cell.drive.setTypeSchema('woot', testDataSchema_v0, vers=1))
|
|
195
|
+
info = {'name': 'root'}
|
|
196
|
+
pathinfo = await cell.addDriveItem(info, path='users')
|
|
214
197
|
|
|
215
|
-
|
|
216
|
-
|
|
198
|
+
with self.raises(s_exc.DupIden):
|
|
199
|
+
await cell.drive.addItemInfo(pathinfo[-1], path='users')
|
|
217
200
|
|
|
218
|
-
|
|
219
|
-
|
|
201
|
+
rootdir = pathinfo[-1].get('iden')
|
|
202
|
+
self.eq(0, pathinfo[-1].get('kids'))
|
|
220
203
|
|
|
221
|
-
|
|
204
|
+
info = {'name': 'win32k.sys', 'type': 'hehe'}
|
|
205
|
+
with self.raises(s_exc.NoSuchType):
|
|
206
|
+
info = await cell.addDriveItem(info, reldir=rootdir)
|
|
222
207
|
|
|
223
|
-
|
|
224
|
-
|
|
208
|
+
infos = [i async for i in cell.getDriveKids(s_drive.rootdir)]
|
|
209
|
+
self.len(1, infos)
|
|
210
|
+
self.eq(1, infos[0].get('kids'))
|
|
211
|
+
self.eq('users', infos[0].get('name'))
|
|
225
212
|
|
|
226
|
-
|
|
227
|
-
versinfo = {'version': (1, 0, 0), 'updated': tick, 'updater': rootuser}
|
|
228
|
-
await cell.setDriveData(iden, versinfo, {'newp': 'newp'})
|
|
229
|
-
|
|
230
|
-
versinfo = {'version': (1, 1, 0), 'updated': tick + 10, 'updater': rootuser}
|
|
231
|
-
info, versinfo = await cell.setDriveData(iden, versinfo, {'type': 'haha', 'size': 20})
|
|
232
|
-
self.eq(info.get('version'), (1, 1, 0))
|
|
233
|
-
self.eq(versinfo.get('version'), (1, 1, 0))
|
|
234
|
-
|
|
235
|
-
versinfo = {'version': (1, 0, 0), 'updated': tick, 'updater': rootuser}
|
|
236
|
-
info, versinfo = await cell.setDriveData(iden, versinfo, {'type': 'hehe', 'size': 0})
|
|
237
|
-
self.eq(info.get('version'), (1, 1, 0))
|
|
238
|
-
self.eq(versinfo.get('version'), (1, 0, 0))
|
|
239
|
-
|
|
240
|
-
versinfo10, data10 = await cell.getDriveData(iden, vers=(1, 0, 0))
|
|
241
|
-
self.eq(versinfo10.get('updated'), tick)
|
|
242
|
-
self.eq(versinfo10.get('updater'), rootuser)
|
|
243
|
-
self.eq(versinfo10.get('version'), (1, 0, 0))
|
|
244
|
-
|
|
245
|
-
versinfo11, data11 = await cell.getDriveData(iden, vers=(1, 1, 0))
|
|
246
|
-
self.eq(versinfo11.get('updated'), tick + 10)
|
|
247
|
-
self.eq(versinfo11.get('updater'), rootuser)
|
|
248
|
-
self.eq(versinfo11.get('version'), (1, 1, 0))
|
|
249
|
-
|
|
250
|
-
versions = [vers async for vers in cell.getDriveDataVersions(iden)]
|
|
251
|
-
self.len(2, versions)
|
|
252
|
-
self.eq(versions[0], versinfo11)
|
|
253
|
-
self.eq(versions[1], versinfo10)
|
|
254
|
-
|
|
255
|
-
info = await cell.delDriveData(iden, vers=(0, 0, 0))
|
|
256
|
-
|
|
257
|
-
versions = [vers async for vers in cell.getDriveDataVersions(iden)]
|
|
258
|
-
self.len(2, versions)
|
|
259
|
-
self.eq(versions[0], versinfo11)
|
|
260
|
-
self.eq(versions[1], versinfo10)
|
|
261
|
-
|
|
262
|
-
info = await cell.delDriveData(iden, vers=(1, 1, 0))
|
|
263
|
-
self.eq(info.get('updated'), tick)
|
|
264
|
-
self.eq(info.get('version'), (1, 0, 0))
|
|
265
|
-
|
|
266
|
-
info = await cell.delDriveData(iden, vers=(1, 0, 0))
|
|
267
|
-
self.eq(info.get('size'), 0)
|
|
268
|
-
self.eq(info.get('version'), (0, 0, 0))
|
|
269
|
-
self.none(info.get('updated'))
|
|
270
|
-
self.none(info.get('updater'))
|
|
271
|
-
|
|
272
|
-
# repopulate a couple data versions to test migration and delete
|
|
273
|
-
versinfo = {'version': (1, 0, 0), 'updated': tick, 'updater': rootuser}
|
|
274
|
-
info, versinfo = await cell.setDriveData(iden, versinfo, {'type': 'hehe', 'size': 0})
|
|
275
|
-
versinfo = {'version': (1, 1, 0), 'updated': tick + 10, 'updater': rootuser}
|
|
276
|
-
info, versinfo = await cell.setDriveData(iden, versinfo, {'type': 'haha', 'size': 17})
|
|
277
|
-
self.eq(versinfo, (await cell.getDriveData(iden))[0])
|
|
278
|
-
|
|
279
|
-
# This will be done by the cell in a cell storage version migration...
|
|
280
|
-
async def migrate_v1(info, versinfo, data):
|
|
281
|
-
data['woot'] = 'woot'
|
|
282
|
-
return data
|
|
283
|
-
|
|
284
|
-
await cell.drive.setTypeSchema('woot', testDataSchema_v1, migrate_v1)
|
|
285
|
-
|
|
286
|
-
versinfo, data = await cell.getDriveData(iden, vers=(1, 0, 0))
|
|
287
|
-
self.eq('woot', data.get('woot'))
|
|
288
|
-
|
|
289
|
-
versinfo, data = await cell.getDriveData(iden, vers=(1, 1, 0))
|
|
290
|
-
self.eq('woot', data.get('woot'))
|
|
213
|
+
# TODO how to handle iden match with additional property mismatch
|
|
291
214
|
|
|
292
|
-
|
|
293
|
-
await cell.
|
|
215
|
+
self.true(await cell.drive.setTypeSchema('woot', testDataSchema_v0, vers=0))
|
|
216
|
+
self.true(await cell.drive.setTypeSchema('woot', testDataSchema_v0, vers=1))
|
|
217
|
+
self.false(await cell.drive.setTypeSchema('woot', testDataSchema_v0, vers=1))
|
|
294
218
|
|
|
295
|
-
|
|
296
|
-
|
|
219
|
+
with self.raises(s_exc.BadVersion):
|
|
220
|
+
await cell.drive.setTypeSchema('woot', testDataSchema_v0, vers=0)
|
|
297
221
|
|
|
298
|
-
|
|
299
|
-
|
|
222
|
+
info = {'name': 'win32k.sys', 'type': 'woot'}
|
|
223
|
+
info = await cell.addDriveItem(info, reldir=rootdir)
|
|
300
224
|
|
|
301
|
-
|
|
302
|
-
self.len(1, [vers async for vers in cell.getDriveDataVersions(iden)])
|
|
225
|
+
iden = info[-1].get('iden')
|
|
303
226
|
|
|
304
|
-
|
|
227
|
+
tick = s_common.now()
|
|
228
|
+
rootuser = cell.auth.rootuser.iden
|
|
305
229
|
|
|
306
|
-
|
|
307
|
-
|
|
230
|
+
with self.raises(s_exc.SchemaViolation):
|
|
231
|
+
versinfo = {'version': (1, 0, 0), 'updated': tick, 'updater': rootuser}
|
|
232
|
+
await cell.setDriveData(iden, versinfo, {'newp': 'newp'})
|
|
308
233
|
|
|
309
|
-
|
|
310
|
-
await cell.
|
|
234
|
+
versinfo = {'version': (1, 1, 0), 'updated': tick + 10, 'updater': rootuser}
|
|
235
|
+
info, versinfo = await cell.setDriveData(iden, versinfo, {'type': 'haha', 'size': 20, 'stuff': 12})
|
|
236
|
+
self.eq(info.get('version'), (1, 1, 0))
|
|
237
|
+
self.eq(versinfo.get('version'), (1, 1, 0))
|
|
311
238
|
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
239
|
+
versinfo = {'version': (1, 0, 0), 'updated': tick, 'updater': rootuser}
|
|
240
|
+
info, versinfo = await cell.setDriveData(iden, versinfo, {'type': 'hehe', 'size': 0, 'stuff': 13})
|
|
241
|
+
self.eq(info.get('version'), (1, 1, 0))
|
|
242
|
+
self.eq(versinfo.get('version'), (1, 0, 0))
|
|
243
|
+
|
|
244
|
+
versinfo10, data10 = await cell.getDriveData(iden, vers=(1, 0, 0))
|
|
245
|
+
self.eq(versinfo10.get('updated'), tick)
|
|
246
|
+
self.eq(versinfo10.get('updater'), rootuser)
|
|
247
|
+
self.eq(versinfo10.get('version'), (1, 0, 0))
|
|
248
|
+
|
|
249
|
+
versinfo11, data11 = await cell.getDriveData(iden, vers=(1, 1, 0))
|
|
250
|
+
self.eq(versinfo11.get('updated'), tick + 10)
|
|
251
|
+
self.eq(versinfo11.get('updater'), rootuser)
|
|
252
|
+
self.eq(versinfo11.get('version'), (1, 1, 0))
|
|
253
|
+
|
|
254
|
+
versions = [vers async for vers in cell.getDriveDataVersions(iden)]
|
|
255
|
+
self.len(2, versions)
|
|
256
|
+
self.eq(versions[0], versinfo11)
|
|
257
|
+
self.eq(versions[1], versinfo10)
|
|
258
|
+
|
|
259
|
+
info = await cell.delDriveData(iden, vers=(0, 0, 0))
|
|
260
|
+
|
|
261
|
+
versions = [vers async for vers in cell.getDriveDataVersions(iden)]
|
|
262
|
+
self.len(2, versions)
|
|
263
|
+
self.eq(versions[0], versinfo11)
|
|
264
|
+
self.eq(versions[1], versinfo10)
|
|
265
|
+
|
|
266
|
+
info = await cell.delDriveData(iden, vers=(1, 1, 0))
|
|
267
|
+
self.eq(info.get('updated'), tick)
|
|
268
|
+
self.eq(info.get('version'), (1, 0, 0))
|
|
269
|
+
|
|
270
|
+
info = await cell.delDriveData(iden, vers=(1, 0, 0))
|
|
271
|
+
self.eq(info.get('size'), 0)
|
|
272
|
+
self.eq(info.get('version'), (0, 0, 0))
|
|
273
|
+
self.none(info.get('updated'))
|
|
274
|
+
self.none(info.get('updater'))
|
|
275
|
+
|
|
276
|
+
# repopulate a couple data versions to test migration and delete
|
|
277
|
+
versinfo = {'version': (1, 0, 0), 'updated': tick, 'updater': rootuser}
|
|
278
|
+
info, versinfo = await cell.setDriveData(iden, versinfo, {'type': 'hehe', 'size': 0, 'stuff': 14})
|
|
279
|
+
versinfo = {'version': (1, 1, 0), 'updated': tick + 10, 'updater': rootuser}
|
|
280
|
+
info, versinfo = await cell.setDriveData(iden, versinfo, {'type': 'haha', 'size': 17, 'stuff': 15})
|
|
281
|
+
self.eq(versinfo, (await cell.getDriveData(iden))[0])
|
|
320
282
|
|
|
321
|
-
|
|
283
|
+
# This will be done by the cell in a cell storage version migration...
|
|
284
|
+
async def migrate_v1(info, versinfo, data):
|
|
285
|
+
data['woot'] = 'woot'
|
|
286
|
+
return data
|
|
322
287
|
|
|
323
|
-
|
|
324
|
-
self.eq(pathinfo, await cell.drive.getItemPath(baziden))
|
|
288
|
+
await cell.drive.setTypeSchema('woot', testDataSchema_v1, migrate_v1)
|
|
325
289
|
|
|
326
|
-
|
|
327
|
-
|
|
290
|
+
versinfo, data = await cell.getDriveData(iden, vers=(1, 0, 0))
|
|
291
|
+
self.eq('woot', data.get('woot'))
|
|
328
292
|
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
await cell.setDriveInfoPerm(s_drive.rootdir, {'users': {}, 'roles': {}})
|
|
293
|
+
versinfo, data = await cell.getDriveData(iden, vers=(1, 1, 0))
|
|
294
|
+
self.eq('woot', data.get('woot'))
|
|
332
295
|
|
|
333
|
-
|
|
334
|
-
|
|
296
|
+
with self.raises(s_exc.NoSuchIden):
|
|
297
|
+
await cell.reqDriveInfo('d7d6107b200e2c039540fc627bc5537d')
|
|
335
298
|
|
|
336
|
-
|
|
337
|
-
|
|
299
|
+
with self.raises(s_exc.TypeMismatch):
|
|
300
|
+
await cell.getDriveInfo(iden, typename='newp')
|
|
338
301
|
|
|
339
|
-
|
|
340
|
-
|
|
302
|
+
self.nn(await cell.getDriveInfo(iden))
|
|
303
|
+
self.len(2, [vers async for vers in cell.getDriveDataVersions(iden)])
|
|
341
304
|
|
|
342
|
-
|
|
343
|
-
|
|
305
|
+
await cell.delDriveData(iden)
|
|
306
|
+
self.len(1, [vers async for vers in cell.getDriveDataVersions(iden)])
|
|
344
307
|
|
|
345
|
-
|
|
346
|
-
self.eq(1, pathinfo[-1].get('kids'))
|
|
308
|
+
await cell.delDriveInfo(iden)
|
|
347
309
|
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
name = pathinfo[-1].get('name')
|
|
351
|
-
cell.drive.reqFreeStep(iden, name)
|
|
310
|
+
self.none(await cell.getDriveInfo(iden))
|
|
311
|
+
self.len(0, [vers async for vers in cell.getDriveDataVersions(iden)])
|
|
352
312
|
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
# confirm walked paths are yielded depth first...
|
|
356
|
-
self.eq('hoho', walks[0].get('name'))
|
|
357
|
-
self.eq('haha', walks[1].get('name'))
|
|
358
|
-
self.eq('hehe', walks[2].get('name'))
|
|
313
|
+
with self.raises(s_exc.NoSuchPath):
|
|
314
|
+
await cell.getDrivePath('users/root/win32k.sys')
|
|
359
315
|
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
316
|
+
pathinfo = await cell.addDrivePath('foo/bar/baz')
|
|
317
|
+
self.len(3, pathinfo)
|
|
318
|
+
self.eq('foo', pathinfo[0].get('name'))
|
|
319
|
+
self.eq(1, pathinfo[0].get('kids'))
|
|
320
|
+
self.eq('bar', pathinfo[1].get('name'))
|
|
321
|
+
self.eq(1, pathinfo[1].get('kids'))
|
|
322
|
+
self.eq('baz', pathinfo[2].get('name'))
|
|
323
|
+
self.eq(0, pathinfo[2].get('kids'))
|
|
366
324
|
|
|
367
|
-
|
|
325
|
+
self.eq(pathinfo, await cell.addDrivePath('foo/bar/baz'))
|
|
368
326
|
|
|
369
|
-
|
|
370
|
-
|
|
327
|
+
baziden = pathinfo[2].get('iden')
|
|
328
|
+
self.eq(pathinfo, await cell.drive.getItemPath(baziden))
|
|
371
329
|
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
self.len(1, pathinfo)
|
|
375
|
-
self.eq(s_drive.rootdir, pathinfo[-1].get('parent'))
|
|
330
|
+
info = await cell.setDriveInfoPerm(baziden, {'users': {rootuser: 3}, 'roles': {}})
|
|
331
|
+
self.eq(3, info['perm']['users'][rootuser])
|
|
376
332
|
|
|
377
|
-
|
|
378
|
-
|
|
333
|
+
with self.raises(s_exc.NoSuchIden):
|
|
334
|
+
# s_drive.rootdir is all 00s... ;)
|
|
335
|
+
await cell.setDriveInfoPerm(s_drive.rootdir, {'users': {}, 'roles': {}})
|
|
336
|
+
|
|
337
|
+
await cell.addDrivePath('hehe/haha')
|
|
338
|
+
pathinfo = await cell.setDriveInfoPath(baziden, 'hehe/haha/hoho')
|
|
339
|
+
|
|
340
|
+
self.eq('hoho', pathinfo[-1].get('name'))
|
|
341
|
+
self.eq(baziden, pathinfo[-1].get('iden'))
|
|
342
|
+
|
|
343
|
+
self.true(await cell.drive.hasPathInfo('hehe/haha/hoho'))
|
|
344
|
+
self.false(await cell.drive.hasPathInfo('foo/bar/baz'))
|
|
345
|
+
|
|
346
|
+
pathinfo = await cell.getDrivePath('foo/bar')
|
|
347
|
+
self.eq(0, pathinfo[-1].get('kids'))
|
|
348
|
+
|
|
349
|
+
pathinfo = await cell.getDrivePath('hehe/haha')
|
|
350
|
+
self.eq(1, pathinfo[-1].get('kids'))
|
|
351
|
+
|
|
352
|
+
with self.raises(s_exc.DupName):
|
|
353
|
+
iden = pathinfo[-2].get('iden')
|
|
354
|
+
name = pathinfo[-1].get('name')
|
|
355
|
+
cell.drive.reqFreeStep(iden, name)
|
|
356
|
+
|
|
357
|
+
walks = [item async for item in cell.drive.walkPathInfo('hehe')]
|
|
358
|
+
self.len(3, walks)
|
|
359
|
+
# confirm walked paths are yielded depth first...
|
|
360
|
+
self.eq('hoho', walks[0].get('name'))
|
|
361
|
+
self.eq('haha', walks[1].get('name'))
|
|
362
|
+
self.eq('hehe', walks[2].get('name'))
|
|
363
|
+
|
|
364
|
+
iden = walks[2].get('iden')
|
|
365
|
+
walks = [item async for item in cell.drive.walkItemInfo(iden)]
|
|
366
|
+
self.len(3, walks)
|
|
367
|
+
self.eq('hoho', walks[0].get('name'))
|
|
368
|
+
self.eq('haha', walks[1].get('name'))
|
|
369
|
+
self.eq('hehe', walks[2].get('name'))
|
|
370
|
+
|
|
371
|
+
self.none(cell.drive.getTypeSchema('newp'))
|
|
372
|
+
|
|
373
|
+
cell.drive.validators.pop('woot')
|
|
374
|
+
self.nn(cell.drive.getTypeValidator('woot'))
|
|
375
|
+
|
|
376
|
+
# move to root dir
|
|
377
|
+
pathinfo = await cell.setDriveInfoPath(baziden, 'zipzop')
|
|
378
|
+
self.len(1, pathinfo)
|
|
379
|
+
self.eq(s_drive.rootdir, pathinfo[-1].get('parent'))
|
|
380
|
+
|
|
381
|
+
pathinfo = await cell.setDriveInfoPath(baziden, 'hehe/haha/hoho')
|
|
382
|
+
self.len(3, pathinfo)
|
|
383
|
+
|
|
384
|
+
async with self.getTestCell(dirn=dirn) as cell:
|
|
385
|
+
data = {'type': 'woot', 'size': 20, 'stuff': 12, 'woot': 'woot'}
|
|
386
|
+
# explicitly clear out the cache JsValidators, otherwise we get the cached, pre-msgpack
|
|
387
|
+
# version of the validator, which will be correct and skip the point of this test.
|
|
388
|
+
s_config._JsValidators.clear()
|
|
389
|
+
cell.drive.reqValidData('woot', data)
|
|
379
390
|
|
|
380
391
|
async def test_cell_auth(self):
|
|
381
392
|
|
|
@@ -101,7 +101,7 @@ synapse/lib/config.py,sha256=2EBZcxXFVLBA7x1rtPNGmK91jqcJR-iOVU8rDzKokHQ,15830
|
|
|
101
101
|
synapse/lib/const.py,sha256=uf-_iCXcNo85IIZss-yKTkbIe6fBAJ4n5v4Ntf0J104,1274
|
|
102
102
|
synapse/lib/coro.py,sha256=o-ZrlfJALlCB30PrXOKT_ojjJ51QIezCm0vmDERSqic,11402
|
|
103
103
|
synapse/lib/datfile.py,sha256=vKqSp7GTMUCYTbthbZ1EaGD8l73LYft6y7hKRuH3T74,620
|
|
104
|
-
synapse/lib/drive.py,sha256=
|
|
104
|
+
synapse/lib/drive.py,sha256=8gzzwzmXKRa9xFxruLczFyf-2ik5lJxNkJkKJ2pBNnk,18385
|
|
105
105
|
synapse/lib/dyndeps.py,sha256=JKN_H3ZiJ831TT59Hdt9Zsif34UteYAfNJAJ0pax5zQ,2168
|
|
106
106
|
synapse/lib/encoding.py,sha256=sxe1VADjsLJtM0vAKEIb4gHhvnOKI4xr_29da0mQMCM,6015
|
|
107
107
|
synapse/lib/gis.py,sha256=Roq4dZ35yNyE3sixL-B0yB32GS3Y9sQZdWr2lDLstKQ,2684
|
|
@@ -157,7 +157,7 @@ synapse/lib/time.py,sha256=FKTYwpdvpuAj8p8sSodRjOxoA7Vu67CIbbXz55gtghk,9231
|
|
|
157
157
|
synapse/lib/trigger.py,sha256=mnfkoBHB88JfqPoxb5oflvAaBKZpNvYdxP247YS53fE,20697
|
|
158
158
|
synapse/lib/types.py,sha256=u89ukW38oDziRzeA6IWrPwwPD0Ds75u-gwJSXsQ4loY,69708
|
|
159
159
|
synapse/lib/urlhelp.py,sha256=j-DvWGi-xH0TcO0NbCuwG7guUuiV8wxIxfMyJOzDygo,2523
|
|
160
|
-
synapse/lib/version.py,sha256=
|
|
160
|
+
synapse/lib/version.py,sha256=X3KK5ag5Ee8G9a9rFljRSYjDQiGQWyttte-yOf2z_lM,7162
|
|
161
161
|
synapse/lib/view.py,sha256=BjIp5tPQhNmVRQ25_BQCwKNTw4xydx24wDl-YSBslAo,60658
|
|
162
162
|
synapse/lib/crypto/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
163
163
|
synapse/lib/crypto/coin.py,sha256=_dhlkzIrHT8BvHdJOWK7PDThz3sK3dDRnWAUqjRpZJc,4910
|
|
@@ -286,7 +286,7 @@ synapse/tests/test_lib_autodoc.py,sha256=H2XO2_d8FmsHUd-cn7M-LjTX-078xLhMiOGiGGk
|
|
|
286
286
|
synapse/tests/test_lib_base.py,sha256=0XUGNaXmfDW896gpBTYYd7ovADUD8cyDLkGTefqn1FM,14550
|
|
287
287
|
synapse/tests/test_lib_boss.py,sha256=gZEuJnMO99Fu9gQ7Ct0g67umBW5XFCs8vcwInB5qr14,1598
|
|
288
288
|
synapse/tests/test_lib_cache.py,sha256=oQgEBhm8pZFCEvMfcD3znTDQgl8Gv91fEOB-3eb2IIg,8594
|
|
289
|
-
synapse/tests/test_lib_cell.py,sha256=
|
|
289
|
+
synapse/tests/test_lib_cell.py,sha256=Otc7bnzA8VgYx2ePFr-wS0Gzx6T4T6tsezo2Z-2kNZ4,144403
|
|
290
290
|
synapse/tests/test_lib_certdir.py,sha256=d5X1lvp0DnBRigXYLbofZAXakZp440-bjaMH30PlGsI,42728
|
|
291
291
|
synapse/tests/test_lib_chop.py,sha256=LkrM_pQU_KS88aVRPD4DI97qSdhxmw6EUA_jb-UJpww,6238
|
|
292
292
|
synapse/tests/test_lib_cli.py,sha256=B8qGx9KtTWp31RlCMtfFMzhJ0TzaaO9ph7RCK2jHtx4,9283
|
|
@@ -602,8 +602,8 @@ synapse/vendor/xrpl/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJW
|
|
|
602
602
|
synapse/vendor/xrpl/tests/test_codec.py,sha256=Zwq6A5uZUK_FWDL3BA932c5b-rL3hnC6efobWHSLC4o,6651
|
|
603
603
|
synapse/vendor/xrpl/tests/test_main.py,sha256=kZQwWk7I6HrP-PMvLdsUUN4POvWD9I-iXDHOwdeF090,4299
|
|
604
604
|
synapse/vendor/xrpl/tests/test_main_test_cases.py,sha256=vTlUM4hJD2Hd2wCIdd9rfsvcMZZZQmNHWdCTTFeGz2Y,4221
|
|
605
|
-
synapse-2.188.
|
|
606
|
-
synapse-2.188.
|
|
607
|
-
synapse-2.188.
|
|
608
|
-
synapse-2.188.
|
|
609
|
-
synapse-2.188.
|
|
605
|
+
synapse-2.188.1.dist-info/LICENSE,sha256=xllut76FgcGL5zbIRvuRc7aezPbvlMUTWJPsVr2Sugg,11358
|
|
606
|
+
synapse-2.188.1.dist-info/METADATA,sha256=neBrrIuoAojnDQBj7HJLscHKDQG6Rn_XPhgXukXb19I,4598
|
|
607
|
+
synapse-2.188.1.dist-info/WHEEL,sha256=y8gtEzj_RhGngGZYBJN7_o4ndhYcFOQ6SmTMJ4KnVJs,93
|
|
608
|
+
synapse-2.188.1.dist-info/top_level.txt,sha256=v_1YsqjmoSCzCKs7oIhzTNmWtSYoORiBMv1TJkOhx8A,8
|
|
609
|
+
synapse-2.188.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|