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()
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()
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()
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()
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()
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()