def mvaultentry(request): height_filter = ThingFilter() height_format = ThingFormat() height_format.sections.append('core') height_format.sections.append('xml') height_filter.typeids.append('40750a6a-89b2-455c-bd8d-b420a4cb500b') height_group = ThingGroup() height_group.filters = [height_filter] height_group.format = height_format height_group.max = 10 basic_filter = ThingFilter() basic_format = ThingFormat() basic_format.sections.append('core') basic_filter.typeids.append('3b3e6b16-eb69-483c-8d7e-dfe116ae6092') basic_group = ThingGroup() basic_group.filters = [basic_filter] basic_group.format = basic_format method = GetThings([height_group, basic_group]) method.execute(request.session['connection']) args = {} keys = [] args['demographic'] = method.response.groups[1].healthrecorditems[0] args['heights'] = method.response.groups[0].healthrecorditems return render_to_response('hvdata.html', args)
def test_getthings_max(self): typeid = '40750a6a-89b2-455c-bd8d-b420a4cb500b' height_filter = ThingFilter() height_format = ThingFormat() height_format.sections.append('core') height_format.sections.append('xml') height_filter.typeids.append(typeid) group = ThingGroup() group.filters = [height_filter] group.format = height_format group.max = 5 group.max_full = 3 method = GetThings([group]) method.execute(self.connection) self.assertEqual(len(method.response.groups), 1) if method.response.groups[0].healthrecorditems: items = method.response.groups[0].healthrecorditems self.assertEqual(typeid, items[0].type_id) self.assertTrue(len(items) <= 5) if len(items) > 3: self.assertIsNotNone(items[2].value_m) self.assertIsNone(items[3].value_m) self.assertTrue(items[3].is_partial)
def test_getthings_order_by(self): # Height does not support sorting, hence weight typeid = '3d34d87e-7fc1-4153-800f-f56592cb0d17' weight_filter = ThingFilter() weight_format = ThingFormat() weight_format.sections.append('core') weight_format.sections.append('xml') weight_filter.typeids.append(typeid) order_by = ThingOrderBySpecs(typeid, 'When') order_by.direction = 'Desc' group = ThingGroup() group.filters = [weight_filter] group.format = weight_format group.order_by = order_by method = GetThings([group]) method.execute(self.connection) self.assertEqual(len(method.response.groups), 1) if method.response.groups[0].healthrecorditems: items = method.response.groups[0].healthrecorditems self.assertEqual(typeid, items[0].type_id) self.assertIsNotNone(items[0].value_kg) self.assertTrue(items[0].when > items[1].when)
def test_getthings_validations_and_intents(self): typeid = '40750a6a-89b2-455c-bd8d-b420a4cb500b' height_filter = ThingFilter() height_format = ThingFormat() height_format.sections.append('core') height_format.sections.append('xml') height_filter.typeids.append(typeid) group = ThingGroup() group.filters = [height_filter] method = GetThings([group]) with self.assertRaises(HealthServiceException): method.execute(self.connection) group.format = height_format group.intents = ThingIntentsSpec(['view', 'pingu']) method = GetThings([group]) with self.assertRaises(HealthServiceException): method.execute(self.connection) group.intents = ThingIntentsSpec(['view', 'download']) method = GetThings([group]) method.execute(self.connection) self.assertEqual(len(method.response.groups), 1) if method.response.groups[0].healthrecorditems: items = method.response.groups[0].healthrecorditems self.assertEqual(typeid, items[0].type_id)
def test_getthings_coreonly(self): typeid = '40750a6a-89b2-455c-bd8d-b420a4cb500b' height_filter = ThingFilter() height_format = ThingFormat() height_format.sections.append('core') height_filter.typeids.append(typeid) group = ThingGroup() group.filters = [height_filter] group.format = height_format method = GetThings([group]) method.execute(self.connection) self.assertEqual(len(method.response.groups), 1) if method.response.groups[0].healthrecorditems: item = method.response.groups[0].healthrecorditems[0] self.assertEqual(typeid, item.type_id) self.assertIsNone(item.value_m)