Files
kube-hunter/tests/hunting/test_dashboard.py
Yehuda ChikvashviliandGitHub a0127659b7 Decouple config and argument parsing (#342)
* Make config initialized explicitly
* Add mypy linting
* Make tests run individually
Resolve #341
2020-04-26 19:37:16 +03:00

42 lines
1.2 KiB
Python

import json
from types import SimpleNamespace
from requests_mock import Mocker
from kube_hunter.conf import Config, set_config
set_config(Config())
from kube_hunter.modules.hunting.dashboard import KubeDashboard # noqa: E402
class TestKubeDashboard:
@staticmethod
def get_nodes_mock(result: dict, **kwargs):
with Mocker() as m:
m.get("http://mockdashboard:8000/api/v1/node", text=json.dumps(result), **kwargs)
hunter = KubeDashboard(SimpleNamespace(host="mockdashboard", port=8000))
return hunter.get_nodes()
@staticmethod
def test_get_nodes_with_result():
nodes = {"nodes": [{"objectMeta": {"name": "node1"}}]}
expected = ["node1"]
actual = TestKubeDashboard.get_nodes_mock(nodes)
assert expected == actual
@staticmethod
def test_get_nodes_without_result():
nodes = {"nodes": []}
expected = []
actual = TestKubeDashboard.get_nodes_mock(nodes)
assert expected == actual
@staticmethod
def test_get_nodes_invalid_result():
expected = None
actual = TestKubeDashboard.get_nodes_mock(dict(), status_code=404)
assert expected == actual