From f14004e56b76d74c65c4a94fff9bcfebb0fd5922 Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Thu, 6 Feb 2020 15:49:23 -0300 Subject: [PATCH 1/2] update url regex to cases tom reported --- lbry/schema/url.py | 2 +- tests/unit/schema/test_url.py | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lbry/schema/url.py b/lbry/schema/url.py index e6c83ac71..8f68600bd 100644 --- a/lbry/schema/url.py +++ b/lbry/schema/url.py @@ -7,7 +7,7 @@ def _create_url_regex(): # see https://spec.lbry.com/ and test_url.py invalid_names_regex = \ r"[^=&#:$@%?;\"/\\<>%{}|^~`\[\]" \ - r"\u0000-\u0008\u000b-\u000c\u000e-\u001F\uD800-\uDFFF\uFFFE-\uFFFF]+" + r"\u0000-\u0020\uD800-\uDFFF\uFFFE-\uFFFF]+" def _named(name, regex): return "(?P<" + name + ">" + regex + ")" diff --git a/tests/unit/schema/test_url.py b/tests/unit/schema/test_url.py index c496f6e5a..838f010ff 100644 --- a/tests/unit/schema/test_url.py +++ b/tests/unit/schema/test_url.py @@ -57,10 +57,6 @@ class TestURLParsing(unittest.TestCase): url(f'lbry://@test#{claim_id}/stuff', channel_name='@test', channel_claim_id=claim_id, stream_name='stuff') # unicode regex edges _url = lambda name: url(name, stream_name=name) - _url('\u0009') - _url('\u000a') - _url('\u000d') - _url('\u0020') _url('\uD799') _url('\uE000') _url('\uFFFD') @@ -79,6 +75,10 @@ class TestURLParsing(unittest.TestCase): fail("lbry://\uDFFE") fail("lbry://\uFFFF") fail("lbry://;") + fail("lbry://no\ttab") + fail("lbry://no space") + fail("lbry://no\rcr") + fail("lbry://no\new\nline") fail("lbry://\"") fail("lbry://\\") fail("lbry:///") From e65f214b3c19db66228ee5990ab4873538ac6b98 Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Thu, 6 Feb 2020 16:08:32 -0300 Subject: [PATCH 2/2] fix test using space in name --- tests/integration/other/test_comment_commands.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/integration/other/test_comment_commands.py b/tests/integration/other/test_comment_commands.py index f48c1ad8b..f797f23e6 100644 --- a/tests/integration/other/test_comment_commands.py +++ b/tests/integration/other/test_comment_commands.py @@ -365,7 +365,7 @@ class CommentCommands(CommandTestCase): async def test04_comment_abandons(self): rswanson = (await self.channel_create('@RonSwanson'))['outputs'][0] - stream = (await self.stream_create('Pawnee Town Hall of Fame by Leslie Knope'))['outputs'][0] + stream = (await self.stream_create('Pawnee_Tow_Hall_of_Fame_by_Leslie_Knope'))['outputs'][0] comment = await self.daemon.jsonrpc_comment_create( comment='KNOPE! WHAT DID I TELL YOU ABOUT PUTTING MY INFORMATION UP LIKE THAT', claim_id=stream['claim_id'], @@ -383,7 +383,7 @@ class CommentCommands(CommandTestCase): moth = (await self.channel_create('@InconspicuousMoth'))['outputs'][0] bee = (await self.channel_create('@LazyBumblebee'))['outputs'][0] moth_id = moth['claim_id'] - stream = await self.stream_create('Cool Lamps to Sit On', channel_id=moth_id) + stream = await self.stream_create('Cool_Lamps_to_Sit_On', channel_id=moth_id) claim_id = stream['outputs'][0]['claim_id'] comment1 = await self.daemon.jsonrpc_comment_create( @@ -440,7 +440,7 @@ class CommentCommands(CommandTestCase): moth = (await self.channel_create('@InconspicuousMoth'))['outputs'][0] bee = (await self.channel_create('@LazyBumblebee'))['outputs'][0] moth_id = moth['claim_id'] - stream = await self.stream_create('Cool Lamps to Sit On', channel_id=moth_id) + stream = await self.stream_create('Cool_Lamps_to_Sit_On', channel_id=moth_id) claim_id = stream['outputs'][0]['claim_id'] hidden_comment = await self.daemon.jsonrpc_comment_create( comment='Who on earth would want to sit around on a lamp all day',