Ryan Barrett 2023-06-14 13:34:29 -07:00
rodzic bfb462e414
commit 974fa71443
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 6BE31FDF4776E9D4
2 zmienionych plików z 31 dodań i 2 usunięć

Wyświetl plik

@ -441,12 +441,38 @@ class WebTest(TestCase):
self.assertEqual('☃.net', user.key.id())
self.assert_entities_equal(user, Web.get_by_id('☃.net'))
def test_bad_source_url(self, mock_get, mock_post):
def test_bad_source_url(self, *mocks):
for data in b'', {'source': 'bad'}, {'source': 'https://'}:
got = self.client.post('/webmention', data=data)
self.assertEqual(400, got.status_code)
self.assertEqual(0, Object.query().count())
def test_username(self, *mocks):
self.assertEqual('user.com', g.user.username())
g.user.actor_as2 = {
'type': 'Person',
'name': 'foo',
'url': ['bar'],
'preferredUsername': 'baz',
}
g.user.direct = True
self.assertEqual('user.com', g.user.username())
# bad acct: URI, util.parse_acct_uri raises ValueError
# https://console.cloud.google.com/errors/detail/CPLmrpzFs4qTUA;time=P30D?project=bridgy-federated
g.user.actor_as2['url'].append('acct:@user.com')
self.assertEqual('user.com', g.user.username())
g.user.actor_as2['url'].append('acct:alice@foo.com')
self.assertEqual('user.com', g.user.username())
g.user.actor_as2['url'].append('acct:alice@user.com')
self.assertEqual('alice', g.user.username())
g.user.direct = False
self.assertEqual('user.com', g.user.username())
@patch('oauth_dropins.webutil.appengine_config.tasks_client.create_task')
def test_make_task(self, mock_create_task, mock_get, mock_post):
mock_get.side_effect = [NOTE, ACTOR]

5
web.py
Wyświetl plik

@ -122,7 +122,10 @@ class Web(User, Protocol):
for url in [u.get('value') if isinstance(u, dict) else u
for u in util.get_list(self.actor_as2, 'url')]:
if url and url.startswith('acct:'):
urluser, urldomain = util.parse_acct_uri(url)
try:
urluser, urldomain = util.parse_acct_uri(url)
except ValueError:
continue
if urldomain == id:
logger.info(f'Found custom username: {urluser}')
return urluser