diff --git a/access-node/test/config.py b/access-node/test/config.py index 7067423c148ed49bd52bf59e42b14e964d9d59d0..d807a09a533d63c159b4c160db85402d9b3d62eb 100644 --- a/access-node/test/config.py +++ b/access-node/test/config.py @@ -21,6 +21,14 @@ class JSON_KEYS(Enum): firstId = "firstId" model = "model" count = "count" + attributes = 'attributes' + multimeterId = 'multimeterId' + num_processes = 'num_processes' + local_num_threads = 'local_num_threads' + gid = "gid" + properties = "properties" + population = "population" + position = "position" class NEST_API_ENDPOINTS(Enum): spikes = "spikes" @@ -31,4 +39,7 @@ class NEST_API_PARAMS (Enum): toTime = "toTime" nodeIds = "nodeIds" skip = "skip" - top = "top" \ No newline at end of file + top = "top" + +#Base URL and prefix for HTTP-queries +BASE_REQUEST_URL_NEST = "http://localhost:9000" \ No newline at end of file diff --git a/nest-module/general_config/helper_functions.py b/nest-module/general_config/helper_functions.py deleted file mode 100644 index 0b2e05e94731dadb45cf25e029dbcfb14d3ae15c..0000000000000000000000000000000000000000 --- a/nest-module/general_config/helper_functions.py +++ /dev/null @@ -1,60 +0,0 @@ -from copy import deepcopy -import enum -import itertools -import json -from nturl2path import url2pathname -import time -import numbers -import math -import pytest -from enum import Enum -import requests -import random -from test_config import * - - -#Receives an enum or a string and converts it to a string. Throws an error if its neither a string nor an enum with a string. -def convert_enum_or_string_to_string(input): - if isinstance(input, Enum): - input = input.value - - if isinstance(input, str): - return input - else: - return ValueError("Dict key is neither of type String nor Enum!") - -#Builds and returns a HTTP-Query String including the given parameters and values -def build_query_string(prefix_string, query_params = None): - query_string = prefix_string - - if (query_params == None) or (len(query_params) == 0): - return prefix_string - - is_first_parameter = True - for param_name, (param_value, param_enabled) in query_params.parameters.items(): - if not param_enabled: - continue - - if is_first_parameter: - query_string += "?" - is_first_parameter = False - else: - query_string += "&" - - query_string += param_name + "=" - - if (isinstance(param_value,list)): - query_string += ','.join(map(str,param_value)) - else: - query_string += str(param_value) - - return query_string - -#Builds a request URL from the baseurl and the optional query parameters -#Returns the data in Json format if request is valid -def get_json_from_url(base_url, query_params = None): - query_url = build_query_string(base_url, query_params) - response = requests.get(query_url) - - assert(response.status_code == requests.codes.ok) - return response.json() diff --git a/nest-module/general_config/test_config.py b/nest-module/general_config/test_config.py deleted file mode 100644 index 7dbdfdbb7a8b48eaa90e79602e55031acb9086ad..0000000000000000000000000000000000000000 --- a/nest-module/general_config/test_config.py +++ /dev/null @@ -1,21 +0,0 @@ -from enum import Enum - -#Base URL and prefix for HTTP-queries -BASE_REQUEST_URL = "http://localhost:9000" - -#Relates every value to its corresponding name -class JSON_QUERY_KEYS(Enum): - spikedetectorId = 'spikedetectorId' - nodeIds = 'nodeIds' - attributes = 'attributes' - multimeterId = 'multimeterId' - num_processes = 'num_processes' - local_num_threads = 'local_num_threads' - stepSize = "stepSize" - current = "current" - begin = "begin" - end = "end" - gid = "gid" - properties = "properties" - population = "population" - position = "position" diff --git a/nest-module/test/test_get_multimeters.py b/nest-module/test/test_get_multimeters.py index 8d5be10c2d54dc771bce0572d4d6f6084b94c5d1..4838b80944b65ae2716917103b1c34a0e93c55d7 100644 --- a/nest-module/test/test_get_multimeters.py +++ b/nest-module/test/test_get_multimeters.py @@ -1,9 +1,11 @@ import requests import numbers -from ..general_config.helper_functions import * -from ..general_config.test_config import * +import sys +sys.path.insert(1, '.../access-node/test') +from utility_functions import * +from config import * -REQUEST_URL = BASE_REQUEST_URL + "/multimeters" +REQUEST_URL = BASE_REQUEST_URL_NEST + "/multimeters" def test_get_multimeters(nest_simulation): multimeters = get_json_from_url(REQUEST_URL) @@ -11,17 +13,17 @@ def test_get_multimeters(nest_simulation): assert(isinstance(multimeters, list)) for multimeter in multimeters: - assert(JSON_QUERY_KEYS.multimeterId.value in multimeter) - assert(isinstance(multimeter[JSON_QUERY_KEYS.multimeterId.value], int)) + assert(JSON_KEYS.multimeterId.value in multimeter) + assert(isinstance(multimeter[JSON_KEYS.multimeterId.value], int)) - assert(JSON_QUERY_KEYS.attributes.value in multimeter) - assert(isinstance(multimeter[JSON_QUERY_KEYS.attributes.value], list)) + assert(JSON_KEYS.attributes.value in multimeter) + assert(isinstance(multimeter[JSON_KEYS.attributes.value], list)) - for attribute in multimeter[JSON_QUERY_KEYS.attributes.value]: + for attribute in multimeter[JSON_KEYS.attributes.value]: assert(isinstance(attribute, str)) - assert(JSON_QUERY_KEYS.nodeIds.value in multimeter) - assert(isinstance(multimeter[JSON_QUERY_KEYS.nodeIds.value], list)) + assert(JSON_KEYS.nodeIds.value in multimeter) + assert(isinstance(multimeter[JSON_KEYS.nodeIds.value], list)) - for node_id in multimeter[JSON_QUERY_KEYS.nodeIds.value]: + for node_id in multimeter[JSON_KEYS.nodeIds.value]: assert(isinstance(node_id, int)) diff --git a/nest-module/test/test_get_neuron_properties.py b/nest-module/test/test_get_neuron_properties.py index 6ef158e1eaff76df661b3fc40df6cbb00e2c4474..2f23e3461c9a7540ae164ab72c6588e7e7a1b08c 100644 --- a/nest-module/test/test_get_neuron_properties.py +++ b/nest-module/test/test_get_neuron_properties.py @@ -1,7 +1,9 @@ import requests import numbers -from ..general_config.helper_functions import * -from ..general_config.test_config import * +import sys +sys.path.insert(1, '.../access-node/test') +from utility_functions import * +from config import * #Currently, this endpoint does not behave according to the specs, remove early return statements if they do @@ -14,14 +16,14 @@ def test_get_neuron_properties(nest_simulation): assert(isinstance(neurons_properties, list)) for neuron_properties in neurons_properties: - assert(JSON_QUERY_KEYS.gid.value in neuron_properties) - assert(isinstance(neuron_properties[JSON_QUERY_KEYS.gid.value], numbers.Number)) + assert(JSON_KEYS.gid.value in neuron_properties) + assert(isinstance(neuron_properties[JSON_KEYS.gid.value], numbers.Number)) - assert(JSON_QUERY_KEYS.properties.value in neuron_properties) - assert(JSON_QUERY_KEYS.population.value in neuron_properties[JSON_QUERY_KEYS.properties.value]) + assert(JSON_KEYS.properties.value in neuron_properties) + assert(JSON_KEYS.population.value in neuron_properties[JSON_KEYS.properties.value]) - assert(isinstance(neuron_properties[JSON_QUERY_KEYS.properties.value][JSON_QUERY_KEYS.population.value], numbers.Integral)) - assert(JSON_QUERY_KEYS.population.value in neuron_properties[JSON_QUERY_KEYS.properties.value]) - assert(isinstance(neuron_properties[JSON_QUERY_KEYS.properties.value][JSON_QUERY_KEYS.population.value], list)) + assert(isinstance(neuron_properties[JSON_KEYS.properties.value][JSON_KEYS.population.value], numbers.Integral)) + assert(JSON_KEYS.population.value in neuron_properties[JSON_KEYS.properties.value]) + assert(isinstance(neuron_properties[JSON_KEYS.properties.value][JSON_KEYS.population.value], list)) diff --git a/nest-module/test/test_get_populations.py b/nest-module/test/test_get_populations.py index 6aed870f56d6e3e57b2d8b97e154382130dea794..08abda39af06b8b554272306cd7613be189c9e39 100644 --- a/nest-module/test/test_get_populations.py +++ b/nest-module/test/test_get_populations.py @@ -1,7 +1,9 @@ import requests import numbers -from ..general_config.helper_functions import * -from ..general_config.test_config import * +import sys +sys.path.insert(1, '.../access-node/test') +from utility_functions import * +from config import * #Currently, this endpoint does not behave according to the specs, remove early return statements if they do diff --git a/nest-module/test/test_get_simulation_time_info.py b/nest-module/test/test_get_simulation_time_info.py index 9ed4ec8272847824c1f6fd8f60aa692f2ac374dd..569d91d31622f6194e77c601ea86b11b6ba4483d 100644 --- a/nest-module/test/test_get_simulation_time_info.py +++ b/nest-module/test/test_get_simulation_time_info.py @@ -3,10 +3,12 @@ import pytest import time import numbers import math -from ..general_config.helper_functions import * -from ..general_config.test_config import * +import sys +sys.path.insert(1, '.../access-node/test') +from utility_functions import * +from config import * -REQUEST_URL = BASE_REQUEST_URL + "/simulationTimeInfo" +REQUEST_URL = BASE_REQUEST_URL_NEST + "/simulationTimeInfo" class NestSimulationTime: def __init__(self): @@ -19,23 +21,23 @@ def simulation_time(request): def test_simulation_time_info(nest_simulation, simulation_time): simulation_time_info = get_json_from_url(REQUEST_URL) - assert(JSON_QUERY_KEYS.stepSize.value in simulation_time_info) - assert(isinstance(simulation_time_info[JSON_QUERY_KEYS.stepSize.value], numbers.Number)) - assert(JSON_QUERY_KEYS.current.value in simulation_time_info) - assert(isinstance(simulation_time_info[JSON_QUERY_KEYS.current.value], numbers.Number)) - assert(JSON_QUERY_KEYS.begin.value in simulation_time_info) - assert(isinstance(simulation_time_info[JSON_QUERY_KEYS.begin.value], numbers.Number)) - assert(JSON_QUERY_KEYS.end.value in simulation_time_info) - assert(isinstance(simulation_time_info[JSON_QUERY_KEYS.end.value], numbers.Number)) + assert(JSON_KEYS.stepSize.value in simulation_time_info) + assert(isinstance(simulation_time_info[JSON_KEYS.stepSize.value], numbers.Number)) + assert(JSON_KEYS.current.value in simulation_time_info) + assert(isinstance(simulation_time_info[JSON_KEYS.current.value], numbers.Number)) + assert(JSON_KEYS.begin.value in simulation_time_info) + assert(isinstance(simulation_time_info[JSON_KEYS.begin.value], numbers.Number)) + assert(JSON_KEYS.end.value in simulation_time_info) + assert(isinstance(simulation_time_info[JSON_KEYS.end.value], numbers.Number)) - assert(simulation_time_info[JSON_QUERY_KEYS.begin.value] <= simulation_time_info[JSON_QUERY_KEYS.current.value]) - assert(simulation_time_info[JSON_QUERY_KEYS.end.value] >= simulation_time_info[JSON_QUERY_KEYS.current.value]) + assert(simulation_time_info[JSON_KEYS.begin.value] <= simulation_time_info[JSON_KEYS.current.value]) + assert(simulation_time_info[JSON_KEYS.end.value] >= simulation_time_info[JSON_KEYS.current.value]) # In theory these should be true but due to floating point inaccuracies and bad default values for 'step_size' it is not # assert(math.fmod(simulation_time_info['current'], simulation_time_info['step_size']) == 0.0) # assert(math.fmod(simulation_time_info['begin'], simulation_time_info['step_size']) == 0.0) # assert(math.fmod(simulation_time_info['end'], simulation_time_info['step_size']) == 0.0) - new_time = simulation_time_info[JSON_QUERY_KEYS.current.value] + new_time = simulation_time_info[JSON_KEYS.current.value] assert(simulation_time.current_time <= new_time) simulation_time.current_time = new_time diff --git a/nest-module/test/test_get_spikedetectors.py b/nest-module/test/test_get_spikedetectors.py index 468cc8fd2885d1ea2d3c9b7c1de23901552b735d..c2d56913fc2339145917f025ae373ea13adb8c97 100644 --- a/nest-module/test/test_get_spikedetectors.py +++ b/nest-module/test/test_get_spikedetectors.py @@ -1,10 +1,12 @@ from distutils.command.config import config import requests import numbers -from ..general_config.helper_functions import * -from ..general_config.test_config import * +import sys +sys.path.insert(1, '.../access-node/test') +from utility_functions import * +from config import * -REQUEST_URL = BASE_REQUEST_URL + "/spikedetectors" +REQUEST_URL = BASE_REQUEST_URL_NEST + "/spikedetectors" def test_get_spikedetectors(nest_simulation): spike_detectors = get_json_from_url(REQUEST_URL) @@ -12,11 +14,11 @@ def test_get_spikedetectors(nest_simulation): assert(isinstance(spike_detectors, list)) for spike_detector in spike_detectors: - assert(JSON_QUERY_KEYS.spikedetectorId.value in spike_detector) - assert(isinstance(spike_detector[JSON_QUERY_KEYS.spikedetectorId.value], int)) + assert(JSON_KEYS.spikedetectorId.value in spike_detector) + assert(isinstance(spike_detector[JSON_KEYS.spikedetectorId.value], int)) - assert(JSON_QUERY_KEYS.nodeIds.value in spike_detector) - assert(isinstance(spike_detector[JSON_QUERY_KEYS.nodeIds.value], list)) + assert(JSON_KEYS.nodeIds.value in spike_detector) + assert(isinstance(spike_detector[JSON_KEYS.nodeIds.value], list)) - for node_id in spike_detector[JSON_QUERY_KEYS.nodeIds.value]: + for node_id in spike_detector[JSON_KEYS.nodeIds.value]: assert(isinstance(node_id, int)) diff --git a/nest-module/test/test_kernel_status.py b/nest-module/test/test_kernel_status.py index c27a123ebc2fa5a7649e948e2a24a6bc9566031f..a377eda21ed843d94735e676a4d9aa975134a62c 100644 --- a/nest-module/test/test_kernel_status.py +++ b/nest-module/test/test_kernel_status.py @@ -1,17 +1,19 @@ import requests import numbers -from ..general_config.helper_functions import * -from ..general_config.test_config import * +import sys +sys.path.insert(1, '.../access-node/test') +from utility_functions import * +from config import * -REQUEST_URL = BASE_REQUEST_URL + "/kernelStatus" +REQUEST_URL = BASE_REQUEST_URL_NEST + "/kernelStatus" def test_get_kernel_status(nest_simulation): kernel_status = get_json_from_url(REQUEST_URL) assert(isinstance(kernel_status, dict)) - assert(JSON_QUERY_KEYS.num_processes.value in kernel_status) - assert(isinstance(kernel_status[JSON_QUERY_KEYS.num_processes.value],numbers.Number)) + assert(JSON_KEYS.num_processes.value in kernel_status) + assert(isinstance(kernel_status[JSON_KEYS.num_processes.value],numbers.Number)) - assert(JSON_QUERY_KEYS.local_num_threads.value in kernel_status) - assert(isinstance(kernel_status[JSON_QUERY_KEYS.local_num_threads.value],numbers.Number)) + assert(JSON_KEYS.local_num_threads.value in kernel_status) + assert(isinstance(kernel_status[JSON_KEYS.local_num_threads.value],numbers.Number))