import json import jsonschema DEFAULT_REQUEST_HEADERS = { "Content-type": "application/json", "Accept": ["application/json"] } def test_infinera_addresses(client): response_schema = { "$schema": "http://json-schema.org/draft-07/schema#", "type": "array", "items": {"type": "string"} } rv = client.post( "/classifier/infinera-dna-addresses", headers=DEFAULT_REQUEST_HEADERS) assert rv.status_code == 200 jsonschema.validate( json.loads(rv.data.decode("utf-8")), response_schema) def test_juniper_addresses(mocker, client): test_data = [ {"ip_address": "a.b.c.d", "project_name": "AAABBB"}, {"ip_address": "b.c.d.e", "project_name": "CCCCDDDDD"}, {"ip_address": "c.d.e.f", "project_name": "EFEFEFEF"}, {"ip_address": "::1", "project_name": "GGHHGGHH"} ] class MockedRedis(): def __init__(self): pass def get(self, ignored): return json.dumps(test_data).encode('utf-8') mocker.patch( 'inventory_provider.routes.classifier.db.get_redis', return_value=MockedRedis()) response_schema = { "$schema": "http://json-schema.org/draft-07/schema#", "type": "array", "items": {"type": "string"} } rv = client.post( "/classifier/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, response_schema) assert len(response_data) == len(test_data) assert set([x['ip_address'] for x in test_data]) == set(response_data)