Skip to content
Snippets Groups Projects
Commit 9924dd04 authored by Leo Pound Singer's avatar Leo Pound Singer
Browse files

Document and test support for adding a log and label in one call

Fixes #17.
parent ec0dcd04
No related branches found
No related tags found
1 merge request!8Document and test support for adding a log and label in one call
Pipeline #682356 passed
......@@ -8,6 +8,9 @@ Changelog
- Update unit tests to reflect behavioral changes in the GraceDB server.
- Document and test support for adding a log message and a label at the same
time.
0.2.0 (2022-12-06)
------------------
......
#
# Copyright (C) 2019-2022 Leo P. Singer <leo.singer@ligo.org>
# Copyright (C) 2019-2024 Leo P. Singer <leo.singer@ligo.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......@@ -93,7 +93,7 @@ class Client(API):
* :samp:`client.events[{event_id}].labels.create({label})`
* :samp:`client.events[{event_id}].labels.delete({label})`
* :samp:`client.events[{event_id}].logs.get()`
* :samp:`client.events[{event_id}].logs.create(comment={comment}, filename={filename}, filecontents={filecontents}, tags={tags})`
* :samp:`client.events[{event_id}].logs.create(comment={comment}, filename={filename}, filecontents={filecontents}, tags={tags}, label={label})`
* :samp:`client.events[{event_id}].logs[{N}].tags.create({tag})`
* :samp:`client.events[{event_id}].logs[{N}].tags.delete({tag})`
* :samp:`client.events[{event_id}].voevents.get()`
......@@ -118,7 +118,7 @@ class Client(API):
* :samp:`client.superevents[{superevent_id}].labels.create({label})`
* :samp:`client.superevents[{superevent_id}].labels.delete({label})`
* :samp:`client.superevents[{superevent_id}].logs.get()`
* :samp:`client.superevents[{superevent_id}].logs.create(comment={comment}, filename={filename}, filecontents={filecontents}, tags={tags})`
* :samp:`client.superevents[{superevent_id}].logs.create(comment={comment}, filename={filename}, filecontents={filecontents}, tags={tags}, label={label})`
* :samp:`client.superevents[{superevent_id}].logs[{N}].tags.create({tag})`
* :samp:`client.superevents[{superevent_id}].logs[{N}].tags.delete({tag})`
* :samp:`client.superevents[{superevent_id}].pipeline_preferred_events.get()`
......
#
# Copyright (C) 2019-2022 Leo P. Singer <leo.singer@ligo.org>
# Copyright (C) 2019-2024 Leo P. Singer <leo.singer@ligo.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
......@@ -124,14 +124,14 @@ def test_events_events_labels_create(client, events_create,
events_labels_create):
event_id = events_create['graceid']
result = client.events[event_id].labels.get()
assert result[0]['name'] == 'SKYMAP_READY'
assert any(item['name'] == 'SKYMAP_READY' for item in result)
def test_events_labels_delete(client, events_create, events_labels_create):
event_id = events_create['graceid']
client.events[event_id].labels.delete('SKYMAP_READY')
result = client.events[event_id].labels.get()
assert len(result) == 0
assert not any(item['name'] == 'SKYMAP_READY' for item in result)
@pytest.mark.parametrize('filename,filecontents', [
......@@ -143,17 +143,21 @@ def test_events_labels_delete(client, events_create, events_labels_create):
['emfollow', ['emfollow']],
[None, []]
])
@pytest.mark.parametrize('label', [None, 'HIGH_PROFILE'])
def test_events_logs_create(client, events_create, filename, filecontents,
tags_in, tags_out):
tags_in, tags_out, label):
event_id = events_create['graceid']
result = client.events[event_id].logs.create(
comment='plugh', filename=filename, filecontents=filecontents,
tags=tags_in)
tags=tags_in, label=label)
if filename is None:
assert result['filename'] == ''
else:
assert result['filename'] == filename
assert set(result['tag_names']) == set(tags_out)
result = client.events[event_id].labels.get()
if label is not None:
assert any(item['name'] == label for item in result)
def test_events_logs_get(client, events_create):
......@@ -352,7 +356,7 @@ def test_superevents_superevents_labels_create(client, superevents_create,
superevents_labels_create):
superevent_id = superevents_create['superevent_id']
result = client.superevents[superevent_id].labels.get()
assert result[0]['name'] == 'SKYMAP_READY'
assert any(item['name'] == 'SKYMAP_READY' for item in result)
def test_superevents_labels_delete(client, superevents_create,
......@@ -360,7 +364,7 @@ def test_superevents_labels_delete(client, superevents_create,
superevent_id = superevents_create['superevent_id']
client.superevents[superevent_id].labels.delete('SKYMAP_READY')
result = client.superevents[superevent_id].labels.get()
assert len(result) == 0
assert not any(item['name'] == 'SKYMAP_READY' for item in result)
@pytest.mark.parametrize('filename,filecontents', [
......@@ -372,17 +376,21 @@ def test_superevents_labels_delete(client, superevents_create,
['emfollow', ['emfollow']],
[None, []]
])
@pytest.mark.parametrize('label', [None, 'HIGH_PROFILE'])
def test_superevents_logs_create(client, superevents_create, filename,
filecontents, tags_in, tags_out):
filecontents, tags_in, tags_out, label):
superevent_id = superevents_create['superevent_id']
result = client.superevents[superevent_id].logs.create(
comment='plugh', filename=filename, filecontents=filecontents,
tags=tags_in)
tags=tags_in, label=label)
if filename is None:
assert result['filename'] == ''
else:
assert result['filename'] == filename
assert set(result['tag_names']) == set(tags_out)
result = client.events[superevent_id].labels.get()
if label is not None:
assert any(item['name'] == label for item in result)
@pytest.fixture
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment