Exemple #1
0
class GetVariableDetail(TestCase):

  def setUp(self):
    self.user = User.objects.create_user(username='******', email='*****@*****.**', password='******')
    self.token = Token.objects.get(user=self.user.id)
    self.client = APIClient()
    self.client.credentials(HTTP_AUTHORIZATION='Token ' + self.token.key)
    self.dataset = Dataset(name='test_set', owner=self.user)
    self.dataset.save()
    self.variable = Variable(name='variable', dataset=self.dataset, datatype='string', values=['one', 'two', 'three'])
    self.variable.save()
    self.url = reverse('api:variable_by_dataset_detail', kwargs={'dataset_pk': self.dataset.id, 'pk':self.variable.id})
    
  def test_get_variable_detail(self):
    response = self.client.get(self.url)
    self.assertEqual(response.status_code, status.HTTP_200_OK)
    self.assertEqual(response.data['name'], self.variable.name)
    self.assertEqual(response.data['dataset'], self.variable.dataset.id)
    self.assertEqual(response.data['datatype'], self.variable.datatype)
    self.assertEqual(response.data['values'], self.variable.values)

  def test_modify_variable(self):
    data = {'name': 'changed_name', 'dataset':'changed_dataset', 'datatype':'float', 'subtype': 'continuous', 'values':[1, 2 , 3]}
    response = self.client.put(self.url, data)
    self.assertEqual(response.status_code, status.HTTP_200_OK)
    self.assertEqual(response.data['name'], data['name'])
    self.assertEqual(response.data['dataset'], self.variable.dataset.id)
    self.assertEqual(response.data['datatype'], self.variable.datatype)
    self.assertEqual(response.data['values'], self.variable.values)
    self.assertEqual(response.data['subtype'], data['subtype'])

  def test_delete_variable(self):
    response = self.client.delete(self.url)
    self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
Exemple #2
0
 def setUp(self):
   self.user = User.objects.create_user(username='******', email='*****@*****.**', password='******')
   self.token = Token.objects.get(user=self.user.id)
   self.client = APIClient()
   self.client.credentials(HTTP_AUTHORIZATION='Token ' + self.token.key)
   self.dataset = Dataset(name='test_set', owner=self.user)
   self.dataset.save()
   self.url = reverse('api:variable_by_dataset_list', kwargs={'dataset_pk': self.dataset.id})
   self.variable1 = Variable(name='variable1', dataset=self.dataset, datatype='string', values=['one', 'two', 'three'])
   self.variable1.save()
   self.variable2 = Variable(name='variable2', dataset=self.dataset, datatype='integer', values=[1, 2, 3])
   self.variable2.save()
Exemple #3
0
class GetVariableList(TestCase):

  def setUp(self):
    self.user = User.objects.create_user(username='******', email='*****@*****.**', password='******')
    self.token = Token.objects.get(user=self.user.id)
    self.client = APIClient()
    self.client.credentials(HTTP_AUTHORIZATION='Token ' + self.token.key)
    self.dataset = Dataset(name='test_set', owner=self.user)
    self.dataset.save()
    self.url = reverse('api:variable_by_dataset_list', kwargs={'dataset_pk': self.dataset.id})
    self.variable1 = Variable(name='variable1', dataset=self.dataset, datatype='string', values=['one', 'two', 'three'])
    self.variable1.save()
    self.variable2 = Variable(name='variable2', dataset=self.dataset, datatype='integer', values=[1, 2, 3])
    self.variable2.save()

  def test_get_variable_list(self):
    response = self.client.get(self.url)
    self.assertEqual(response.status_code, status.HTTP_200_OK)
    self.assertEqual(response.data.__len__(), 2)
Exemple #4
0
 def setUp(self):
     self.client = APIClient()
     self.user = User.objects.create_user(username='******', email='*****@*****.**', password='******')
     self.url = reverse('analysis:one_sample_ttest')
     self.token = Token.objects.get(user=self.user.id)
     self.client.credentials(HTTP_AUTHORIZATION='Token ' + self.token.key)
     #create dataset and variables from test file
     this_dir = os.getcwd()
     self.dataset = Dataset(name='test_set', owner=self.user)
     self.dataset.save()
     with open(this_dir + '/analysis/tests/test_files/ttest_test_data.csv') as file_obj:
       file_obj = read_csv(file_obj, sep=',', header=0)
       for column in file_obj:
         (datatype, values) = return_type_and_format_values(file_obj[column])
         values = values if values is not None else file_obj[column]
         datatype = datatype if datatype else 'undefined'
         subtype = return_default_subtype(datatype)
         v = Variable(name=column, dataset=self.dataset, datatype=datatype, subtype=subtype, values=values)
         v.save()
         self.variable_id = v.id
     self.mean = 46
Exemple #5
0
 def put(self, request, pk, format=None):
   dataset = self.get_object(pk)
   serializer = DatasetSerializer(dataset, data=request.DATA)
   if serializer.is_valid():
     serializer.object.owner = User.objects.get(username=request.user.username)
     if request.FILES:
       file_obj = request.FILES['file']
       file_obj = read_csv(file_obj, sep=',', header=0)
       serializer.save()
       Variable.objects.filter(dataset=dataset).delete()
       for column in file_obj:
         #todo: make this detect the datatype instead of saving everything as string.
         (datatype, values) = return_type_and_format_values(file_obj[column])
         values = values if values is not None else file_obj[column]
         datatype = datatype if datatype else 'undefined'
         subtype = return_default_subtype(datatype)
         v = Variable(name=column, dataset=serializer.object, datatype=datatype, values=values)
         v.save()
     else:
       serializer.save()
     return Response(serializer.data, status=status.HTTP_200_OK)
   else:
     return Response(status=status.HTTP_400_BAD_REQUEST)
Exemple #6
0
  def post(self, request, format=None):
    serializer = DatasetSerializer(data=request.DATA)

    if serializer.is_valid():
      serializer.object.owner = User.objects.get(username=request.user.username)
      if request.FILES:
        file_obj = request.FILES['file']
        file_obj = read_csv(file_obj, sep=',', header=0)
        serializer.save()

        for column in file_obj:
          (datatype, values) = return_type_and_format_values(file_obj[column])
          values = values if values is not None else file_obj[column]
          datatype = datatype if datatype else 'undefined'
          subtype = return_default_subtype(datatype)
          v = Variable(name=column, dataset=serializer.object, datatype=datatype, subtype=subtype, values=values)
          v.save()

      else:
        serializer.save()
      return Response(serializer.data, status=status.HTTP_201_CREATED)
    else:
      return Response(status=status.HTTP_400_BAD_REQUEST)
Exemple #7
0
    def handle(self, *args, **options):
        try:
            with open(options['estadobase']) as f:
                data = json.load(f)
        except Exception as inst:
            # print("[INFO] No se pudieron cargar las redes: {}".format(str(inst)))
            raise (Exception(
                "[INFO] No se pudo cargar el estado base: {}".format(
                    str(inst))))

        # USERS
        for user in data["users"]:
            try:
                u = User(username=user['username'], password=user["password"])
                u.save()
            except Exception as inst:
                print(str(inst))

        # GROUPS
        for group in data["groups"]:
            try:
                g = Group(name=group)
                g.save()
            except Exception as inst:
                print(str(inst))

        # VARIABLE
        for var in data["variables"]:
            try:
                v = Variable(nombre=var["nombre"],
                             descripcion=var["descripcion"])
                v.save()
            except Exception as inst:
                print(str(inst))

        # UNIDAD
        for uni in data["unidades"]:
            try:
                u = Unidad(abreviacion=uni["abreviacion"],
                           nombre=uni["nombre"])
                u.save()
            except Exception as inst:
                print(str(inst))

        # PROYECTOS
        for proj in data["proyectos"]:
            try:
                user = User.objects.get(username=proj["propietario"])
                group = Group.objects.get(name=proj["grupo"])
                p = Proyecto(propietario=user,
                             grupo=group,
                             nombre=proj["nombre"])
                p.save()
            except Exception as inst:
                print(str(inst))

        # SENSORES
        for sen in data["sensores"]:
            try:
                proj = Proyecto.objects.get(nombre=sen["proyecto"])
                var = Variable.objects.get(nombre=sen["variable"])
                unit = Unidad.objects.get(abreviacion=sen["unidad"])
                s = Sensor(nombre=sen["nombre"],
                           descripcion=sen["descripcion"],
                           uuid=sen["uuid"],
                           variable=var,
                           unidad=unit,
                           proyecto=proj)
                s.save()
            except Exception as e:
                print(str(e))

        # LECTURAS
        for s in Sensor.objects.all():
            try:
                lec = Lectura(sensor=s,
                              medido=datetime.now(),
                              valor=random.random())
                lec.save()
            except Exception as inst:
                print(str(inst))