cli_runner = <click.testing.CliRunner object at 0x7f4ca45a6438>
swh_config = '/tmp/pytest-of-jenkins/pytest-0/test_cli_journal_client0/indexer.yml'
indexer_scheduler = <swh.scheduler.backend.SchedulerBackend object at 0x7f4ca44ca470>
kafka_prefix = 'pxfjgiphvy', kafka_server = '127.0.0.1:33603'
consumer = <cimpl.Consumer object at 0x7f4ca44e71e0>
def test_cli_journal_client(
cli_runner,
swh_config,
indexer_scheduler,
kafka_prefix: str,
kafka_server,
consumer: Consumer,
):
"""Test the 'swh indexer journal-client' cli tool."""
journal_writer = get_journal_writer(
"kafka",
brokers=[kafka_server],
prefix=kafka_prefix,
client_id="test producer",
value_sanitizer=lambda object_type, value: value,
flush_timeout=2,
)
visit_statuses = [
OriginVisitStatus(
origin="file:///dev/zero",
visit=1,
date=now(),
status="full",
snapshot=None,
),
OriginVisitStatus(
origin="file:///dev/foobar",
visit=2,
date=now(),
status="full",
snapshot=None,
),
OriginVisitStatus(
origin="file:///tmp/spamegg",
visit=3,
date=now(),
status="full",
snapshot=None,
),
OriginVisitStatus( # will be filtered out due to its 'partial' status
origin="file:///dev/0000",
visit=4,
date=now(),
status="partial",
snapshot=None,
),
OriginVisitStatus( # will be filtered out due to its 'ongoing' status
origin="file:///dev/0001",
visit=5,
date=now(),
status="ongoing",
snapshot=None,
),
OriginVisitStatus(
origin="file:///dev/0002",
visit=6,
date=now(),
status="full",
snapshot=None,
),
]
journal_writer.write_additions("origin_visit_status", visit_statuses)
result = cli_runner.invoke(
indexer_cli_group,
[
"-C",
swh_config,
"journal-client",
"--broker",
kafka_server,
"--prefix",
kafka_prefix,
"--group-id",
"test-consumer",
"--stop-after-objects",
3,
"--origin-metadata-task-type",
"index-origin-metadata",
],
catch_exceptions=False,
)
# Check the output
expected_output = "Done.\n"
assert result.exit_code == 0, result.output
assert result.output == expected_output
# Check scheduled tasks
tasks = indexer_scheduler.search_tasks(task_type="index-origin-metadata")
# more than 3 visit statuses exists
assert len([vs for vs in visit_statuses if vs.status == "full"]) > 3
# so we should have 3 visit status scheduled (we stopped at stop-after-objects to 3)
> assert len(tasks) == 3
E assert 1 == 3
E +1
E -3
.tox/py3/lib/python3.7/site-packages/swh/indexer/tests/test_cli.py:470: AssertionError
TEST RESULT
TEST RESULT
- Run At
- Dec 3 2020, 4:01 PM