test_testing_routes.py 2.19 KiB
import json
import jsonschema
import inventory_provider
DEFAULT_REQUEST_HEADERS = {
"Content-type": "application/json",
"Accept": ["application/json"]
}
ROUTER_LIST_SCHEMA = {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "array",
"items": {"type": "string"}
}
def test_flushdb(client):
rv = client.get("/testing/flushdb")
assert rv.status_code == 200
def test_juniper_addresses(client):
rv = client.get(
"/testing/juniper-server-addresses",
headers=DEFAULT_REQUEST_HEADERS)
assert rv.status_code == 200
response_data = json.loads(rv.data.decode('utf-8'))
jsonschema.validate(response_data, ROUTER_LIST_SCHEMA)
assert len(response_data) > 0 # test data is not empty
def test_circuit_tree(client, mocker):
raw = [
{
'id': 1,
'name': 'root circuit',
'product': 'product A',
'speed': 'Speed A',
'status': ' Operational',
'sub-circuits': [2, 3]
},
{
'id': 2,
'name': 'circuit 2',
'product': 'product A',
'speed': 'Speed A',
'status': ' Operational'
},
{
'id': 3,
'name': 'circuit 3',
'product': 'product A',
'speed': 'Speed A',
'status': ' Operational'
}]
data = {}
for v in raw:
data[f'ims:circuit_hierarchy:{v["id"]}'] = \
json.dumps([v]).encode('utf-8')
expected = """<pre>1 -- root circuit -- prod: product A -- spd: Speed A -- status: Operational
├── 2 -- circuit 2 -- prod: product A -- spd: Speed A -- status: Operational
└── 3 -- circuit 3 -- prod: product A -- spd: Speed A -- status: Operational
</pre>""" # noqa
class MockedR:
def get(self, key):
return data.get(key, None)
mr = mocker.patch.object(
inventory_provider.tasks.common,
"get_current_redis"
)
mr.return_value = MockedR()
rv = client.get(
"/testing/circuit-tree/1",
headers=DEFAULT_REQUEST_HEADERS)
assert rv.status_code == 200
response_data = rv.data.decode('utf-8')
assert response_data == expected