diff --git a/inventory_provider/routes/default.py b/inventory_provider/routes/default.py index f65d6124835c09f70459f9d2defe01a36e23dbd6..047cc10e3534d092879545c3f3a3ab8cf0e882e8 100644 --- a/inventory_provider/routes/default.py +++ b/inventory_provider/routes/default.py @@ -4,42 +4,43 @@ from flask import Blueprint, jsonify, current_app from inventory_provider.routes import common from inventory_provider.tasks.common import get_current_redis, get_latch -routes = Blueprint("inventory-data-default-routes", __name__) +routes = Blueprint('inventory-data-default-routes', __name__) API_VERSION = '0.1' VERSION_SCHEMA = { - "$schema": "http://json-schema.org/draft-07/schema#", + '$schema': 'http://json-schema.org/draft-07/schema#', - "definitions": { - "latch": { - "type": "object", - "properties": { - "current": {"type": "integer"}, - "next": {"type": "integer"}, - "this": {"type": "integer"}, - "failure": {"type": "boolean"}, - "pending": {"type": "boolean"}, + 'definitions': { + 'latch': { + 'type': 'object', + 'properties': { + 'current': {'type': 'integer'}, + 'next': {'type': 'integer'}, + 'this': {'type': 'integer'}, + 'failure': {'type': 'boolean'}, + 'pending': {'type': 'boolean'}, + 'timestamp': {'type': 'number'} }, - "required": ["current", "next", "this", "pending", "failure"], - "additionalProperties": False + 'required': ['current', 'next', 'this', 'pending', 'failure'], + 'additionalProperties': False } }, - "type": "object", - "properties": { - "api": { - "type": "string", - "pattern": r'\d+\.\d+' + 'type': 'object', + 'properties': { + 'api': { + 'type': 'string', + 'pattern': r'\d+\.\d+' }, - "module": { - "type": "string", - "pattern": r'\d+\.\d+' + 'module': { + 'type': 'string', + 'pattern': r'\d+\.\d+' }, - "latch": {"$ref": "#/definitions/latch"} + 'latch': {'$ref': '#/definitions/latch'} }, - "required": ["api", "module"], - "additionalProperties": False + 'required': ['api', 'module'], + 'additionalProperties': False } @@ -48,7 +49,7 @@ def after_request(resp): return common.after_request(resp) -@routes.route("/version", methods=['GET', 'POST']) +@routes.route('/version', methods=['GET', 'POST']) @common.require_accepts_json def version(): """ diff --git a/inventory_provider/tasks/common.py b/inventory_provider/tasks/common.py index ac85afb7de7094517c95cf2ed5f2929b211f6afc..533295b34fdd0ea33eda914a9aacc06fb414b127 100644 --- a/inventory_provider/tasks/common.py +++ b/inventory_provider/tasks/common.py @@ -11,17 +11,18 @@ DEFAULT_REDIS_SENTINEL_TIMEOUT = 0.1 DEFAULT_SENTINEL_SOCKET_TIMEOUT = 0.1 DB_LATCH_SCHEMA = { - "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", - "properties": { - "current": {"type": "integer"}, - "next": {"type": "integer"}, - "this": {"type": "integer"}, - "pending": {"type": "boolean"}, - "failure": {"type": "boolean"} + '$schema': 'http://json-schema.org/draft-07/schema#', + 'type': 'object', + 'properties': { + 'current': {'type': 'integer'}, + 'next': {'type': 'integer'}, + 'this': {'type': 'integer'}, + 'pending': {'type': 'boolean'}, + 'failure': {'type': 'boolean'}, + 'timestamp': {'type': 'number'} }, - "required": ["current", "next", "this"], - "additionalProperties": False + 'required': ['current', 'next', 'this'], + 'additionalProperties': False } TASK_LOG_SCHEMA = { diff --git a/test/test_general_routes.py b/test/test_general_routes.py index 254d9db122b4d944bdd66df67f8a41e5ca67712c..8bc82db71c96426f68d502f8fe4dac4e2414cd40 100644 --- a/test/test_general_routes.py +++ b/test/test_general_routes.py @@ -5,59 +5,59 @@ from inventory_provider.routes import common from inventory_provider.routes.default import VERSION_SCHEMA DEFAULT_REQUEST_HEADERS = { - "Content-type": "application/json", - "Accept": ["application/json"] + 'Content-type': 'application/json', + 'Accept': ['application/json'] } def test_version_request(client, mocked_redis): rv = client.post( - "version", + 'version', headers=DEFAULT_REQUEST_HEADERS) assert rv.status_code == 200 jsonschema.validate( - json.loads(rv.data.decode("utf-8")), + json.loads(rv.data.decode('utf-8')), VERSION_SCHEMA) def test_load_json_docs(data_config, mocked_redis): INTERFACE_SCHEMA = { - "$schema": "http://json-schema.org/draft-07/schema#", + '$schema': 'http://json-schema.org/draft-07/schema#', - "definitions": { - "interface": { - "type": "object", - "properties": { - "logical-system": {"type": "string"}, - "name": {"type": "string"}, - "description": {"type": "string"}, - "bundle": { - "type": "array", - "items": {"type": "string"} + 'definitions': { + 'interface': { + 'type': 'object', + 'properties': { + 'logical-system': {'type': 'string'}, + 'name': {'type': 'string'}, + 'description': {'type': 'string'}, + 'bundle': { + 'type': 'array', + 'items': {'type': 'string'} }, - "ipv4": { - "type": "array", - "items": {"type": "string"} + 'ipv4': { + 'type': 'array', + 'items': {'type': 'string'} }, - "ipv6": { - "type": "array", - "items": {"type": "string"} + 'ipv6': { + 'type': 'array', + 'items': {'type': 'string'} } }, - "required": ["name", "description", "ipv4", "ipv6"], - "additionalProperties": False + 'required': ['name', 'description', 'ipv4', 'ipv6'], + 'additionalProperties': False } }, - "type": "object", - "properties": { - "key": {"type": "string"}, - "value": {"$ref": "#/definitions/interface"} + 'type': 'object', + 'properties': { + 'key': {'type': 'string'}, + 'value': {'$ref': '#/definitions/interface'} }, - "required": ["key", "value"], - "additionalProperties": False + 'required': ['key', 'value'], + 'additionalProperties': False } for ifc in common.load_json_docs(