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