def test_bulk_create(self):
     fields = {
         'time': 'timestamp',
         'value': 'float',
         'flags': 'integer',
         'note': 'string'
     }
     output = models.AppOutput.objects.create(pk=400)
     model = sensorstore.get_data_model(output, 5, fields)
     self.assertTrue(dyn.table_exists(model))
     items = [
         model(time=now(), value=float(i), note='Testing {}'.format(i))
         for i in range(5)
     ]
     model.objects.bulk_create(items)
     self.assertEqual(model.objects.count(), 5)
     output = models.AppOutput.objects.create(pk=401)
     model = sensorstore.get_data_model(output, 5, fields)
     self.assertTrue(dyn.table_exists(model))
     items = [
         model(time=now(), value=float(i), note='Testing {}'.format(i))
         for i in range(5)
     ]
     model.objects.bulk_create(items)
     self.assertEqual(model.objects.count(), 5)
    def test_get_data_model(self):
        def tolist(objs):
            result = [(x.pk, x.source.id, x.time, x.value, x.flags, x.note)
                      for x in objs]
            result.sort()
            return result

        fields = {
            'time': 'timestamp',
            'value': 'float',
            'flags': 'integer',
            'note': 'string'
        }
        output = models.AppOutput.objects.create(pk=300)
        model = sensorstore.get_data_model(output, 5, fields)
        self.assertTrue(dyn.table_exists(model))
        items = tolist(
            model.objects.create(
                time=now(), value=float(i), note='Testing {}'.format(i))
            for i in range(5))
        objs = tolist(model.objects.all())
        self.assertEqual(objs, items)
        model = sensorstore.get_data_model(output, 5, fields)
        objs = tolist(model.objects.all())
        self.assertEqual(objs, items)
Exemple #3
0
 def clone_appOutput(self, app_output_list, analysis):
     for app_output in app_output_list:
         model_klass = sensorstore.get_data_model(app_output,
                                                      self.src_project_id,
                                                      app_output.fields)
         query_set = model_klass.objects.all()
         app_output.id = None
         app_output.analysis = analysis
         app_output.save()
         
         self.clone_appOutputData(query_set, app_output)
Exemple #4
0
 def clone_appOutputData(self, query_set, app_output):
     model_klass = sensorstore.get_data_model(app_output,
                                                      app_output.analysis.dataset.map.project.id,
                                                      app_output.fields)
     
     model_klass_instances = []
     for row in query_set:
         kwargs = dict((x,getattr(row,x)) for x in app_output.fields)
         instance = model_klass(**kwargs)          
         model_klass_instances.append(instance)
         #instance.save()
         #print(kwargs)
         
     model_klass.objects.bulk_create(model_klass_instances)
 def test_create_insert(self):
     '''Test table creation and insertion'''
     user = models.User.objects.create(username='******')
     project = models.Project.objects.create(
             name='Dynamic Model Test', owner=user)
     output = models.AppOutput.objects.create(pk=200)
     fields = {'time': 'timestamp', 'value': 'float',
               'flags': 'integer', 'note': 'string'}
     model = sensorstore.get_data_model(output, project.pk, fields)
     self.assertTrue(dyn.table_exists(model))
     model.objects.create(source=output, time=now(),
                          value=12.34, note='Testing')
     self.assertEqual(model.objects.count(), 1)
     item = model.objects.create(source=output, time=now(),
                                 value=2.345, note='Testing again')
     self.assertEqual(model.objects.count(), 2)
     item = model.objects.get(pk=item.id)
     self.assertEqual(item.value, 2.345)
     self.assertEqual(item.note, 'Testing again')