diff --git a/tests/ft/neuron/api.py b/tests/ft/neuron/api.py index 1449725e..25b27359 100644 --- a/tests/ft/neuron/api.py +++ b/tests/ft/neuron/api.py @@ -8,3 +8,11 @@ def login(user='admin', password='0000'): def change_password(new_password, user='admin', old_password='0000', jwt=config.default_jwt): return requests.post(url=config.BASE_URL + '/api/v2/password', headers={"Authorization": jwt}, json={"name": user, "old_pass": old_password, "new_pass": new_password}) + + +def get_license(jwt=config.default_jwt): + return requests.get(url=config.BASE_URL + '/api/v2/license', headers={"Authorization": jwt}) + + +def upload_license(license, jwt=config.default_jwt): + return requests.post(url=config.BASE_URL + '/api/v2/license', headers={"Authorization": jwt}, json={"license": license}) diff --git a/tests/ft/neuron/error.py b/tests/ft/neuron/error.py new file mode 100644 index 00000000..434b33f6 --- /dev/null +++ b/tests/ft/neuron/error.py @@ -0,0 +1,94 @@ +NEU_ERR_SUCCESS = 0 + +NEU_ERR_EINTERNAL = 1001 +NEU_ERR_BODY_IS_WRONG = 1002 +NEU_ERR_PARAM_IS_WRONG = 1003 +NEU_ERR_NEED_TOKEN = 1004 +NEU_ERR_DECODE_TOKEN = 1005 +NEU_ERR_EXPIRED_TOKEN = 1006 +NEU_ERR_VALIDATE_TOKEN = 1007 +NEU_ERR_INVALID_TOKEN = 1008 +NEU_ERR_INVALID_USER_OR_PASSWORD = 1009 +NEU_ERR_IS_BUSY = 1010 +NEU_ERR_FILE_NOT_EXIST = 1011 +NEU_ERR_INVALID_PASSWORD_LEN = 1012 +NEU_ERR_DUPLICATE_PASSWORD = 1013 +NEU_ERR_COMMAND_EXECUTION_FAILED = 1014 +NEU_ERR_IP_ADDRESS_INVALID = 1015 +NEU_ERR_IP_ADDRESS_IN_USE = 1016 +NEU_ERR_INVALID_USER = 1017 +NEU_ERR_INVALID_PASSWORD = 1018 + +NEU_ERR_NODE_EXIST = 2002 +NEU_ERR_NODE_NOT_EXIST = 2003 +NEU_ERR_NODE_SETTING_INVALID = 2004 +NEU_ERR_NODE_SETTING_NOT_FOUND = 2005 +NEU_ERR_NODE_NOT_READY = 2006 +NEU_ERR_NODE_IS_RUNNING = 2007 +NEU_ERR_NODE_NOT_RUNNING = 2008 +NEU_ERR_NODE_IS_STOPED = 2009 +NEU_ERR_NODE_NAME_TOO_LONG = 2010 +NEU_ERR_NODE_NOT_ALLOW_DELETE = 2011 +NEU_ERR_NODE_NOT_ALLOW_SUBSCRIBE = 2012 +NEU_ERR_NODE_NOT_ALLOW_UPDATE = 2013 +NEU_ERR_NODE_NOT_ALLOW_MAP = 2014 +NEU_ERR_NODE_NAME_EMPTY = 2015 + +NEU_ERR_GROUP_ALREADY_SUBSCRIBED = 2101 +NEU_ERR_GROUP_NOT_SUBSCRIBE = 2102 +NEU_ERR_GROUP_NOT_ALLOW = 2103 +NEU_ERR_GROUP_EXIST = 2104 +NEU_ERR_GROUP_PARAMETER_INVALID = 2105 +NEU_ERR_GROUP_NOT_EXIST = 2106 +NEU_ERR_GROUP_NAME_TOO_LONG = 2107 + +NEU_ERR_TAG_NOT_EXIST = 2201 +NEU_ERR_TAG_NAME_CONFLICT = 2202 +NEU_ERR_TAG_ATTRIBUTE_NOT_SUPPORT = 2203 +NEU_ERR_TAG_TYPE_NOT_SUPPORT = 2204 +NEU_ERR_TAG_ADDRESS_FORMAT_INVALID = 2205 +NEU_ERR_TAG_NAME_TOO_LONG = 2206 +NEU_ERR_TAG_ADDRESS_TOO_LONG = 2207 +NEU_ERR_TAG_DESCRIPTION_TOO_LONG = 2208 +NEU_ERR_TAG_PRECISION_INVALID = 2209 +NEU_ERR_TAG_EXIST = 2210 + +NEU_ERR_LIBRARY_NOT_FOUND = 2301 +NEU_ERR_LIBRARY_INFO_INVALID = 2302 +NEU_ERR_LIBRARY_NAME_CONFLICT = 2303 +NEU_ERR_LIBRARY_FAILED_TO_OPEN = 2304 +NEU_ERR_LIBRARY_MODULE_INVALID = 2305 +NEU_ERR_LIBRARY_SYSTEM_NOT_ALLOW_DEL = 2306 +NEU_ERR_LIBRARY_NOT_ALLOW_CREATE_INSTANCE = 2307 +NEU_ERR_LIBRARY_ARCH_NOT_SUPPORT = 2308 + +NEU_ERR_LICENSE_NOT_FOUND = 2400 +NEU_ERR_LICENSE_INVALID = 2401 +NEU_ERR_LICENSE_EXPIRED = 2402 +NEU_ERR_LICENSE_DISABLED = 2403 +NEU_ERR_LICENSE_MAX_NODES = 2404 +NEU_ERR_LICENSE_MAX_TAGS = 2405 +NEU_ERR_LICENSE_TOKEN_NOT_MATCH = 2406 +NEU_ERR_LICENSE_BAD_CLOCK = 2407 +NEU_ERR_LICENSE_MODULE_INVALID = 2408 + +NEU_ERR_TEMPLATE_EXIST = 2500 +NEU_ERR_TEMPLATE_NOT_FOUND = 2501 +NEU_ERR_TEMPLATE_NAME_TOO_LONG = 2502 + +NEU_ERR_PLUGIN_READ_FAILURE = 3000 +NEU_ERR_PLUGIN_WRITE_FAILURE = 3001 +NEU_ERR_PLUGIN_DISCONNECTED = 3002 +NEU_ERR_PLUGIN_TAG_NOT_ALLOW_READ = 3003 +NEU_ERR_PLUGIN_TAG_NOT_ALLOW_WRITE = 3004 +NEU_ERR_PLUGIN_TAG_TYPE_MISMATCH = 3007 +NEU_ERR_PLUGIN_TAG_VALUE_EXPIRED = 3008 +NEU_ERR_PLUGIN_PROTOCOL_DECODE_FAILURE = 3009 +NEU_ERR_PLUGIN_NOT_RUNNING = 3010 +NEU_ERR_PLUGIN_TAG_NOT_READY = 3011 +NEU_ERR_PLUGIN_PACKET_OUT_OF_ORDER = 3012 +NEU_ERR_PLUGIN_NAME_TOO_LONG = 3013 +NEU_ERR_PLUGIN_NOT_FOUND = 3014 +NEU_ERR_PLUGIN_DEVICE_NOT_RESPONSE = 3015 +NEU_ERR_PLUGIN_NOT_SUPPORT_TEMPLATE = 3016 +NEU_ERR_PLUGIN_NOT_SUPPORT_WRITE_TAGS = 3017 diff --git a/tests/ft/neuron/process.py b/tests/ft/neuron/process.py index d3925423..82e4dc76 100644 --- a/tests/ft/neuron/process.py +++ b/tests/ft/neuron/process.py @@ -2,6 +2,7 @@ import os import time import pytest import subprocess +import random def remove_persistence(dir='build/'): @@ -21,3 +22,19 @@ def stop_neuron(process): result = process.terminate() stderr = process.stderr.read().decode() assert stderr == '', "Neuron process has errors: " + stderr + + +def start_simulator(args, dir='build/simulator'): + process = subprocess.Popen( + args, stderr=subprocess.PIPE, cwd=dir) + time.sleep(1) + assert process.poll() is None + return process + + +def stop_simulator(process): + process.terminate() + + +def random_port(): + return random.randint(30000, 65535) diff --git a/tests/ft/setup.py b/tests/ft/setup.py index ebc03e8d..4288fce8 100644 --- a/tests/ft/setup.py +++ b/tests/ft/setup.py @@ -1,4 +1,4 @@ from distutils.core import setup setup(name='neuronft', version="0.0.1", - description='ft module', author='neuron', py_modules=['neuron', 'neuron.api', 'neuron.common', 'neuron.config', 'neuron.process']) + description='ft module', author='neuron', py_modules=['neuron.api', 'neuron.common', 'neuron.config', 'neuron.process', 'neuron.error'])