Пример #1
0
 def setUp(self):
     # Create User
     user = GeneralUser.objects.create_user(username='******',
                                            password="******",
                                            email='*****@*****.**')
     self.user = user
     # Create and save project token
     token = CustomAccessTokens(user=user, name="testToken")
     self.zone_token = token.uuid_token
     token.save()
     # Create project
     project = models.Projects.objects.create(
         user=user,
         name='Test',
         description='Test project',
         snippet_title='Test Snippet',
         snippet_image='image.png',
     )
     zone = models.Zones.objects.create(
         project=project,
         name='Test zone',
         description='Test zone for node management',
     )
     self.zone_id = zone.id
     zone.access_keys.add(token)
     zone.save()
Пример #2
0
 def test_create_delete_node(self):
     # Create User
     user = GeneralUser.objects.create_user(username='******',
                                            password="******",
                                            email='*****@*****.**')
     # Create and save project token
     token = CustomAccessTokens(user=user, name="testToken")
     project_token = token.uuid_token
     token.save()
     # Create project
     project = models.Projects.objects.create(
         user=user,
         name='Test',
         description='Test project',
         snippet_title='Test Snippet',
         snippet_image='image.png',
     )
     # Create zone
     zone = models.Zones.objects.create(
         name="Updated name zone 1",
         description="New updated zone 1 description",
         project=project,
     )
     zone.access_keys.add(token)
     zone.save()
     # Create url
     url_zone_nodes = reverse('iot_api:iot_general_api-zone-nodes',
                              args=(zone.id, ))
     # Create headers
     header = {'HTTP_CA_TOKEN': project_token}
     # Count existing nodes
     number_nodes = len(models.Node.objects.all())
     # Create node
     node_data = {
         'nodes': [{
             "name": "Test Node",
             "description": "A newly created node"
         }]
     }
     post_response = self.client_api.post(url_zone_nodes,
                                          node_data,
                                          format='json',
                                          **header)
     self.assertEqual(post_response.status_code, 201)  # New node created
     node_id = post_response.data['nodes'][0]['id']
     delete_list = {
         "nodes": [{
             "id_node": node_id,
         }]
     }
     delete_response = self.client_api.delete(url_zone_nodes,
                                              delete_list,
                                              format='json',
                                              **header)
     self.assertEqual(delete_response.status_code, 200)  # Node deleted
     self.assertEqual(number_nodes, len(models.Node.objects.all()))
     user.delete()
Пример #3
0
 def setUp(self):
     # Create User
     user = GeneralUser.objects.create_user(username='******',
                                            password="******",
                                            email='*****@*****.**')
     self.user = user
     # Create and save project token
     token = CustomAccessTokens(user=user, name="testToken")
     self.token = token.uuid_token
     self.token_obj = token
     token.save()
Пример #4
0
 def setUp(self):
     # Create User
     user = GeneralUser.objects.create_user(username='******',
                                            password="******",
                                            email='*****@*****.**')
     # Create project
     project = models.Projects.objects.create(
         user=user,
         name='Test',
         description='Test project',
         snippet_title='Test Snippet',
         snippet_image='image.png',
     )
     # Create and save zone token
     token = CustomAccessTokens(user=user, name="testToken")
     self.zone_token = token.uuid_token
     zone = models.Zones.objects.create(
         project=project,
         name='Test zone',
         description='Test zone for node management',
     )
     self.zone = zone
     token.save()
     zone.access_keys.add(token)
     zone.save()
     # Create and save node token
     token = CustomAccessTokens(user=user, name="testToken")
     self.node_token = token.uuid_token
     node = models.Node.objects.create(
         zone=zone,
         name="Test node",
         description="Test node for test cases")
     self.node = node
     token.save()
     node.access_keys.add(token)
     node.save()
Пример #5
0
 def test_create_delete_sensor(self):
     # Create User
     user = GeneralUser.objects.create_user(username='******',
                                            password="******",
                                            email='*****@*****.**')
     # Create and save project token
     token = CustomAccessTokens(user=user, name="testToken")
     project_token = token.uuid_token
     token.save()
     # Create project
     project = models.Projects.objects.create(
         user=user,
         name='Test',
         description='Test project',
         snippet_title='Test Snippet',
         snippet_image='image.png',
     )
     # Create zone
     zone = models.Zones.objects.create(
         name="Updated name zone 1",
         description="New updated zone 1 description",
         project=project,
     )
     zone.access_keys.add(token)
     zone.save()
     # Create url
     url_zone_sensors = reverse('iot_api:iot_general_api-zone-sensors',
                                args=(zone.id, ))
     # Create headers
     header = {'HTTP_CA_TOKEN': project_token}
     # Count existing nodes
     number_sensors = len(models.Sensors.objects.all())
     # Create node
     sensors_data = {
         'sensors': [{
             "sensor_type": choices.DHT22,
         }, {
             "sensor_type": choices.DHT11,
         }]
     }
     post_response = self.client_api.post(url_zone_sensors,
                                          sensors_data,
                                          format='json',
                                          **header)
     self.assertEqual(post_response.status_code, 201)  # New sensors created
     self.assertEqual(len(models.Sensors.objects.all()), number_sensors + 2)
     # Get sensor ids
     f_sensor_id = post_response.data['sensors'][0]['id']
     s_sensor_id = post_response.data['sensors'][1]['id']
     # Validate created sensors are ambiental
     f_sensor = models.Sensors.objects.get(pk=f_sensor_id)
     self.assertEqual(f_sensor.ambiental, True)
     s_sensor = models.Sensors.objects.get(pk=s_sensor_id)
     self.assertEqual(s_sensor.ambiental, True)
     # Delete sensors
     delete_list = {
         "sensors": [
             {
                 "id_sensor": f_sensor_id,
             },
             {
                 "id_sensor": s_sensor_id,
             },
         ]
     }
     delete_response = self.client_api.delete(url_zone_sensors,
                                              delete_list,
                                              format='json',
                                              **header)
     self.assertEqual(delete_response.status_code, 200)  # Node deleted
     self.assertEqual(len(models.Sensors.objects.all()), number_sensors)
     # Delete second sensor
     user.delete()
Пример #6
0
 def test_create_get_delete_node_sensors(self):
     """
     Test creation of node sensors
     """
     # Create User
     user = GeneralUser.objects.create_user(username='******',
                                            password="******",
                                            email='*****@*****.**')
     # Create and save project token
     token = CustomAccessTokens(user=user, name="testToken")
     node_token = token.uuid_token
     token.save()
     # Create project
     project = models.Projects.objects.create(
         user=user,
         name='Test',
         description='Test project',
         snippet_title='Test Snippet',
         snippet_image='image.png',
     )
     zone = models.Zones.objects.create(
         project=project,
         name='Test zone',
         description='Test zone for node management',
     )
     node = models.Node.objects.create(
         zone=zone,
         name="Test node",
         description="Test node for management")
     node.access_keys.add(token)
     node.save()
     # Create node url
     url_node = reverse('iot_api:iot_general_api-node-sensors',
                        args=(node.id, ))
     # Count sensors
     number_sensors = len(models.Sensors.objects.all())
     # Create header =
     header = {'HTTP_CA_TOKEN': node_token}
     # Create sensors
     sensor_data = {
         'sensors': [{
             'sensor_type': choices.DHT22
         }, {
             'sensor_type': choices.DHT11
         }, {
             'sensor_type': choices.LDR
         }]
     }
     post_response = self.client_api.post(url_node,
                                          sensor_data,
                                          format='json',
                                          **header)
     self.assertEqual(post_response.status_code, 201)  # Sensors created
     sensors = post_response.data['sensors']
     for sensor in sensors:
         self.assertEqual(sensor['ambiental'], False)
     # Get sensors
     get_response = self.client_api.get(url_node, format='json', **header)
     self.assertEqual(get_response.status_code, 200)  # Sensors retrived
     self.assertEqual(get_response.data['node_sensors'], sensors)
     # Delete sensors
     sensors_ids = [{'id_sensor': i['id']} for i in sensors]
     delete_list = {'sensors': sensors_ids}
     delete_response = self.client_api.delete(url_node,
                                              delete_list,
                                              format='json',
                                              **header)
     self.assertEqual(delete_response.status_code, 200)  # Sensors deleted
     self.assertEqual(number_sensors, len(models.Sensors.objects.all()))
     user.delete()