Merge pull request #3306 from lbryio/fix-collectionUpdateWithReplace

This commit is contained in:
Alex Grin 2021-05-18 15:25:53 -04:00 committed by GitHub
commit f55b78a994
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 6 deletions

View file

@ -3938,9 +3938,6 @@ class Daemon(metaclass=JSONRPCServerType):
if replace:
claim = Claim()
claim.collection.message.source.CopyFrom(
old_txo.claim.collection.message.source
)
claim.collection.update(**kwargs)
else:
claim = Claim.from_bytes(old_txo.claim.to_bytes())

View file

@ -2169,20 +2169,30 @@ class CollectionCommands(CommandTestCase):
tx = await self.collection_create('radjingles', claims=claim_ids, allow_duplicate_name=True)
claim_id2 = self.get_claim_id(tx)
self.assertItemCount(await self.daemon.jsonrpc_collection_list(), 2)
# with clear_claims
await self.collection_update(claim_id, clear_claims=True, claims=claim_ids[:2])
collections = await self.out(self.daemon.jsonrpc_collection_list())
self.assertEquals(len(collections['items']), 2)
self.assertEqual(len(collections['items']), 2)
self.assertNotIn('canonical_url', collections['items'][0])
resolved_collections = await self.out(self.daemon.jsonrpc_collection_list(resolve=True))
self.assertIn('canonical_url', resolved_collections['items'][0])
# with replace
await self.collection_update(claim_id, replace=True, claims=claim_ids[::-1][:2], tags=['cool'])
updated = await self.claim_search(claim_id=claim_id)
self.assertEqual(updated[0]['value']['tags'], ['cool'])
self.assertEqual(updated[0]['value']['claims'], claim_ids[::-1][:2])
await self.collection_update(claim_id, replace=True, claims=claim_ids[:4], languages=['en', 'pt-BR'])
updated = await self.resolve(f'radjingles:{claim_id}')
self.assertEqual(updated['value']['claims'], claim_ids[:4])
self.assertNotIn('tags', updated['value'])
self.assertEqual(updated['value']['languages'], ['en', 'pt-BR'])
await self.collection_abandon(claim_id)
self.assertItemCount(await self.daemon.jsonrpc_collection_list(), 1)
collections = await self.out(self.daemon.jsonrpc_collection_list(resolve_claims=2))
self.assertEquals(len(collections['items'][0]['claims']), 2)
self.assertEqual(len(collections['items'][0]['claims']), 2)
collections = await self.out(self.daemon.jsonrpc_collection_list(resolve_claims=10))
self.assertEqual(len(collections['items'][0]['claims']), 4)