Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
	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
Ejemplo n.º 3
0
    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
Ejemplo n.º 4
0
 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()
Ejemplo n.º 5
0
	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()
Ejemplo n.º 6
0
	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()
Ejemplo n.º 7
0
	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)
Ejemplo n.º 8
0
 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)
Ejemplo n.º 9
0
	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()
Ejemplo n.º 10
0
    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()
Ejemplo n.º 11
0
	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
Ejemplo n.º 12
0
    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
Ejemplo n.º 13
0
	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		
Ejemplo n.º 14
0
    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