logs: fix searching for uuid in log messages (#67494)
This commit is contained in:
parent
e7db96aa4f
commit
e1940ff73c
|
@ -256,6 +256,7 @@ class GenericViewLogsConnectorView(GenericConnectorMixin, ListView):
|
|||
try:
|
||||
date = date_parser.parse(query, dayfirst=True)
|
||||
except Exception:
|
||||
initial_qs = qs
|
||||
query_uuid = None
|
||||
try:
|
||||
query_uuid = uuid.UUID(query)
|
||||
|
@ -264,7 +265,7 @@ class GenericViewLogsConnectorView(GenericConnectorMixin, ListView):
|
|||
else:
|
||||
qs = qs.filter(transaction_id=query_uuid)
|
||||
if query_uuid is None or query_uuid is not None and not qs.exists():
|
||||
qs = qs.filter(Q(message__icontains=query) | Q(extra__icontains=query))
|
||||
qs = initial_qs.filter(Q(message__icontains=query) | Q(extra__icontains=query))
|
||||
else:
|
||||
if is_naive(date):
|
||||
date = make_aware(date)
|
||||
|
|
|
@ -362,6 +362,7 @@ def test_logs_search(app, admin_user):
|
|||
app = login(app)
|
||||
|
||||
transaction_id = str(uuid.uuid4())
|
||||
looks_like_transaction_id = str(uuid.uuid4())
|
||||
log1 = ResourceLog.objects.create(
|
||||
appname=csv.get_connector_slug(),
|
||||
slug=csv.slug,
|
||||
|
@ -381,14 +382,21 @@ def test_logs_search(app, admin_user):
|
|||
log3 = ResourceLog.objects.create(
|
||||
appname=csv.get_connector_slug(), slug=csv.slug, levelno=1, message='foo', extra={'bar': 'hop'}
|
||||
)
|
||||
log4 = ResourceLog.objects.create(
|
||||
appname=csv.get_connector_slug(), slug=csv.slug, levelno=1, message=looks_like_transaction_id
|
||||
)
|
||||
|
||||
resp = app.get('/manage/csvdatasource/t/logs/')
|
||||
assert list(resp.context['page_obj'].object_list) == [log3, log2, log1]
|
||||
assert list(resp.context['page_obj'].object_list) == [log4, log3, log2, log1]
|
||||
|
||||
resp.form['q'] = transaction_id
|
||||
resp = resp.form.submit()
|
||||
assert list(resp.context['page_obj'].object_list) == [log2, log1]
|
||||
|
||||
resp.form['q'] = looks_like_transaction_id
|
||||
resp = resp.form.submit()
|
||||
assert list(resp.context['page_obj'].object_list) == [log4]
|
||||
|
||||
resp.form['q'] = str(uuid.uuid4())
|
||||
resp = resp.form.submit()
|
||||
assert list(resp.context['page_obj'].object_list) == []
|
||||
|
|
Loading…
Reference in New Issue