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