crowdsec/docker/test/tests/test_capi.py
mmetc 301782ae18
Docker tests: use pytest-cs 0.2 (#2079)
* Use pytest-cs 0.2

* fix pipenv cache key

* Cache docker layers

* Load build images from buildx to docker

* CI: commit Pipfile.lock

* Add full docker tag

* Cache only amd64 docker layers

* Cache layer mode=min
2023-02-28 17:49:32 +01:00

46 lines
1.4 KiB
Python

#!/usr/bin/env python
from http import HTTPStatus
import pytest
pytestmark = pytest.mark.docker
def test_no_capi(crowdsec, flavor):
"""Test no CAPI (disabled by default in tests)"""
env = {
'DISABLE_ONLINE_API': 'true',
}
with crowdsec(flavor=flavor, environment=env) as cs:
cs.wait_for_log("*Starting processing data*")
cs.wait_for_http(8080, '/health', want_status=HTTPStatus.OK)
res = cs.cont.exec_run('cscli capi status')
assert res.exit_code == 1
assert "You can successfully interact with Central API (CAPI)" not in res.output.decode()
logs = cs.log_lines()
assert not any("Successfully registered to Central API (CAPI)" in line for line in logs)
assert not any("Registration to online API done" in line for line in logs)
def test_capi(crowdsec, flavor):
"""Test CAPI"""
env = {
'DISABLE_ONLINE_API': 'false',
}
with crowdsec(flavor=flavor, environment=env) as cs:
cs.wait_for_log("*Starting processing data*")
cs.wait_for_http(8080, '/health', want_status=HTTPStatus.OK)
res = cs.cont.exec_run('cscli capi status')
assert res.exit_code == 0
assert "You can successfully interact with Central API (CAPI)" in res.output.decode()
cs.wait_for_log([
"*Successfully registered to Central API (CAPI)*",
"*Registration to online API done*",
])