forked from LBRYCommunity/lbry-sdk
fix get for sourceless claims
This commit is contained in:
parent
e27e49e9dc
commit
7439893a2a
3 changed files with 18 additions and 2 deletions
|
@ -117,9 +117,11 @@ class FileManager:
|
||||||
if claim.stream.source.bt_infohash:
|
if claim.stream.source.bt_infohash:
|
||||||
source_manager = self.source_managers['torrent']
|
source_manager = self.source_managers['torrent']
|
||||||
existing = source_manager.get_filtered(bt_infohash=claim.stream.source.bt_infohash)
|
existing = source_manager.get_filtered(bt_infohash=claim.stream.source.bt_infohash)
|
||||||
else:
|
elif claim.stream.source.sd_hash:
|
||||||
source_manager = self.source_managers['stream']
|
source_manager = self.source_managers['stream']
|
||||||
existing = source_manager.get_filtered(sd_hash=claim.stream.source.sd_hash)
|
existing = source_manager.get_filtered(sd_hash=claim.stream.source.sd_hash)
|
||||||
|
else:
|
||||||
|
raise ResolveError(f"There is nothing to download at {uri} - Source is unknown or unset")
|
||||||
|
|
||||||
# resume or update an existing stream, if the stream changed: download it and delete the old one after
|
# resume or update an existing stream, if the stream changed: download it and delete the old one after
|
||||||
to_replace, updated_stream = None, None
|
to_replace, updated_stream = None, None
|
||||||
|
|
|
@ -480,7 +480,7 @@ class CommandTestCase(IntegrationTestCase):
|
||||||
async def stream_create(
|
async def stream_create(
|
||||||
self, name='hovercraft', bid='1.0', file_path=None,
|
self, name='hovercraft', bid='1.0', file_path=None,
|
||||||
data=b'hi!', confirm=True, prefix=None, suffix=None, **kwargs):
|
data=b'hi!', confirm=True, prefix=None, suffix=None, **kwargs):
|
||||||
if file_path is None:
|
if file_path is None and data is not None:
|
||||||
file_path = self.create_upload_file(data=data, prefix=prefix, suffix=suffix)
|
file_path = self.create_upload_file(data=data, prefix=prefix, suffix=suffix)
|
||||||
return await self.confirm_and_render(
|
return await self.confirm_and_render(
|
||||||
self.daemon.jsonrpc_stream_create(name, bid, file_path=file_path, **kwargs), confirm
|
self.daemon.jsonrpc_stream_create(name, bid, file_path=file_path, **kwargs), confirm
|
||||||
|
|
|
@ -221,6 +221,20 @@ class FileCommands(CommandTestCase):
|
||||||
file_list = (await self.daemon.jsonrpc_file_list())['items']
|
file_list = (await self.daemon.jsonrpc_file_list())['items']
|
||||||
self.assertEqual(file_list[0].stream_claim_info.claim.stream.description, claim.stream.description)
|
self.assertEqual(file_list[0].stream_claim_info.claim.stream.description, claim.stream.description)
|
||||||
|
|
||||||
|
async def test_sourceless_content(self):
|
||||||
|
# claim has no source, then it has one
|
||||||
|
tx = await self.stream_create('foo', '0.01', data=None)
|
||||||
|
claim_id = self.get_claim_id(tx)
|
||||||
|
await self.daemon.jsonrpc_file_delete(claim_name='foo')
|
||||||
|
response = await self.out(self.daemon.jsonrpc_get('lbry://foo'))
|
||||||
|
self.assertIn('error', response)
|
||||||
|
self.assertIn('nothing to download', response['error'])
|
||||||
|
# source is set (there isn't a way to clear the source field, so we stop here for now)
|
||||||
|
await self.stream_update(claim_id, data=b'surpriiiiiiiise')
|
||||||
|
response = await self.out(self.daemon.jsonrpc_get('lbry://foo'))
|
||||||
|
self.assertNotIn('error', response)
|
||||||
|
self.assertItemCount(await self.daemon.jsonrpc_file_list(), 1)
|
||||||
|
|
||||||
async def test_file_list_paginated_output(self):
|
async def test_file_list_paginated_output(self):
|
||||||
await self.create_streams_in_range(0, 20)
|
await self.create_streams_in_range(0, 20)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue