def test_GET_nodes_HTTP_response_status(self): """ Tests that GET /node/all gives a valid HTTP 200 response """ NodeSeeder.seed_node('ricefield') url = UrlHelper.get_url(flapp, 'nodes') response = requests.get(url) assert response.ok
def test_POST_nodes_populate(self): """ Test that populate options creates the valid number of readings data """ populate_number = 3 site = SiteSeeder.seed_empty_site() args = { 'site_id': site.id, 'latitude': 13.2, 'longitude': 23.2, 'populate': populate_number } node = NodeSeeder.seed_node('ricefield', **args) url = UrlHelper.get_url(flapp, 'nodes') r = requests.get(url) api_response = ApiResponseHelper.assert_api_response(r) assert api_response.ok nodes = map(lambda n: n.json(), Node.query.all()) # get readings?sensor_id=xxxx and check whether the number of the value of readings is equal to 3 for n in nodes: for s in n['sensors']: url = UrlHelper.get_url(flapp, 'readings', sensor_id=s['id']) response = requests.get(url) assert response.ok api_response = ApiResponseHelper.assert_api_response(response) assert api_response.ok assert len(api_response.objects) == populate_number
def test_add_obj_with_json_method(self): # node_dict = {'node_type_str': 'empty', 'alias': 'supernode'} node = NodeSeeder.seed_node('ricefield', alias='mynode') # node = Node.create(**node_dict) self.r += node assert len(self.r.objects) == 1 assert self.r.objects[0] == node.json()
def post(self): """ Use a HTTP POST request to /node to create a new node inside the network Example in Python: >>> import requests >>> r = requests.post('http://localhost:8080/node', data = {'alias':'mynode', 'site_id':'1', 'latitude':'13.24234234', 'longitude':23.222, 'populate':3, 'node_type':'ricefield'}) """ response = ApiResponse(request) # RequestHelper.filter_valid_parameters(Node, response, request) node_alias = RequestHelper.get_form_data(response, 'alias', str) node_type = RequestHelper.get_form_data(response, 'node_type', str, default = 'empty') site_id = RequestHelper.get_form_data(response, 'site_id', int) longitude = RequestHelper.get_form_data(response, 'longitude', float) latitude = RequestHelper.get_form_data(response, 'latitude', float) populate = RequestHelper.get_form_data(response, 'populate', int, default = 0) site = Site.query.filter_by(id = site_id).first() if site: node = NodeSeeder.seed_node(node_type, alias = node_alias, site_id = site_id, latitude = latitude, longitude = longitude, populate = populate) response += node else: response += exc.MissingSiteException(site_id) return response.json()
def test_add_obj_with_json_method(self): # node_dict = {'node_type_str': 'empty', 'alias': 'supernode'} node = NodeSeeder.seed_node('ricefield', alias = 'mynode') # node = Node.create(**node_dict) self.r += node assert len(self.r.objects) == 1 assert self.r.objects[0] == node.json()
def test_DELETE_node_by_id(self): node = NodeSeeder.seed_node('empty') url = UrlHelper.get_url(flapp, 'node', node.id) response = requests.delete(url) assert response.ok response = requests.get(url) assert response.ok ApiResponseHelper.assert_api_response(response, expect_success = False)
def test_DELETE_node_by_id(self): node = NodeSeeder.seed_node('empty') url = UrlHelper.get_url(flapp, 'node', node.id) response = requests.delete(url) assert response.ok response = requests.get(url) assert response.ok ApiResponseHelper.assert_api_response(response, expect_success=False)
def test_GET_existing_node_by_id(self): """ GET /node/1 This call should return the node with id=1 """ node = NodeSeeder.seed_node('empty') url = UrlHelper.get_url(flapp, 'node', node.id) response = requests.get(url) assert response.ok api_response = ApiResponseHelper.assert_api_response(response) assert api_response.first() == node.json()
def test_ApiResponse_json_method(self): try: ### Empty ApiResponse json.dumps(self.r.json()) except Exception: assert False try: ### ApiResponse with object self.r += NodeSeeder.seed_node('ricefield') json.dumps(self.r.json()) except Exception, e: print e assert False
def test_POST_nodes_populate(self): """ Test that populate options creates the valid number of readings data """ populate_number = 3 site = SiteSeeder.seed_empty_site() args = {'site_id': site.id, 'latitude': 13.2, 'longitude': 23.2, 'populate': populate_number} node = NodeSeeder.seed_node('ricefield', **args) url = UrlHelper.get_url(flapp, 'nodes') r = requests.get(url) api_response = ApiResponseHelper.assert_api_response(r) assert api_response.ok nodes = map(lambda n: n.json(), Node.query.all()) # get readings?sensor_id=xxxx and check whether the number of the value of readings is equal to 3 for n in nodes: for s in n['sensors']: url = UrlHelper.get_url(flapp, 'readings', sensor_id = s['id']) response = requests.get(url) assert response.ok api_response = ApiResponseHelper.assert_api_response(response) assert api_response.ok assert len(api_response.objects) == populate_number
def post(self): """ Use a HTTP POST request to /node to create a new node inside the network Example in Python: >>> import requests >>> r = requests.post('http://localhost:8080/node', data = {'alias':'mynode', 'site_id':'1', 'latitude':'13.24234234', 'longitude':23.222, 'populate':3, 'node_type':'ricefield'}) """ response = ApiResponse(request) # RequestHelper.filter_valid_parameters(Node, response, request) node_alias = RequestHelper.get_form_data(response, 'alias', str) node_type = RequestHelper.get_form_data(response, 'node_type', str, default='empty') site_id = RequestHelper.get_form_data(response, 'site_id', int) longitude = RequestHelper.get_form_data(response, 'longitude', float) latitude = RequestHelper.get_form_data(response, 'latitude', float) populate = RequestHelper.get_form_data(response, 'populate', int, default=0) site = Site.query.filter_by(id=site_id).first() if site: node = NodeSeeder.seed_node(node_type, alias=node_alias, site_id=site_id, latitude=latitude, longitude=longitude, populate=populate) response += node else: response += exc.MissingSiteException(site_id) return response.json()
def test_sensor_insert(self): alias = uuid4().hex node = NodeSeeder.seed_node('ricefield') n_sensors_expected = nodetypes['ricefield']['sensors'].__len__() assert Sensor.all().__len__() == n_sensors_expected
def test_add_sensors_to_node(self): node_inserted = NodeSeeder.seed_node('empty') sensortype = SensorType(name = 'Sonar', unit = 'm') for i in range(3): Sensor.create(sensortype = sensortype, node = node_inserted) node_retrieved = Node.query.first() assert node_inserted.sensors == node_retrieved.sensors
def test_node_insert(self): node_inserted = NodeSeeder.seed_node('ricefield', alias = uuid4().hex) node_retrieved = Node.query.first() assert node_inserted.id == node_retrieved.id assert node_inserted.alias == node_retrieved.alias