Exemplo n.º 1
0
    def test_delete_encoding(self):
        self.__save_records()
        encoding = Observation.encoding(self.dataset)

        self.assertTrue(isinstance(encoding, dict))

        Observation.delete_encoding(self.dataset)
        encoding = Observation.encoding(self.dataset)

        self.assertEqual(encoding, None)
Exemplo n.º 2
0
    def test_delete(self):
        for dataset_name in self.TEST_DATASETS:
            dataset = Dataset.create(self.test_dataset_ids[dataset_name])
            records = Dataset.find(self.test_dataset_ids[dataset_name])
            self.assertNotEqual(records, [])
            dataset.delete()
            records = Dataset.find(self.test_dataset_ids[dataset_name])

            self.assertEqual(records, [])
            self.assertEqual(Observation.encoding(dataset), None)
Exemplo n.º 3
0
    def test_delete(self):
        for dataset_name in self.TEST_DATASETS:
            dataset = Dataset.create(self.test_dataset_ids[dataset_name])
            records = Dataset.find(self.test_dataset_ids[dataset_name])
            self.assertNotEqual(records, [])
            dataset.delete()
            records = Dataset.find(self.test_dataset_ids[dataset_name])

            self.assertEqual(records, [])
            self.assertEqual(Observation.encoding(dataset), None)
Exemplo n.º 4
0
    def test_encoding(self):
        self.__save_records()
        encoding = Observation.encoding(self.dataset)

        for column in self.dataset.dframe().columns:
            if column == MONGO_ID:
                column = MONGO_ID_ENCODED

            self.assertTrue(column in encoding.keys())

        for v in encoding.values():
            self.assertTrue(isinstance(int(v), int))
Exemplo n.º 5
0
 def get_value(self, period):
     value = None
     if self.dataset:
         fields = Observation.encoding(self.dataset)
         fields["dataset"] = self.dataset
         fields['dataset_id_field'] = fields[DATASET_ID]
         fields['period'] = period
         query = json.loads(Template(self.final_str).render(fields))
         form_meta_timeend = '%(form_meta_timeend)s' % fields
         query[0]['$match'][form_meta_timeend]['$gte'] = period.start
         query[0]['$match'][form_meta_timeend]['$lte'] = period.end
         aggregate_value = self._db.observations.aggregate(query)
         if not aggregate_value['result']:
             return 0
         value = aggregate_value['result'][0]['total_num']
     return value
Exemplo n.º 6
0
 def get_value(self, period):
     value = None
     if self.dataset:
         fields = Observation.encoding(self.dataset)
         fields["dataset"] = self.dataset
         fields['dataset_id_field'] = fields[DATASET_ID]
         fields['period'] = period
         query = json.loads(Template(self.final_str).render(fields))
         form_meta_timeend = '%(form_meta_timeend)s' % fields
         query[0]['$match'][form_meta_timeend]['$gte'] = period.start
         query[0]['$match'][form_meta_timeend]['$lte'] = period.end
         aggregate_value = self._db.observations.aggregate(query)
         if not aggregate_value['result']:
             return 0
         value = aggregate_value['result'][0]['total_num']
     return value
Exemplo n.º 7
0
 def get_value(self, period):
     value = None
     if self.dataset:
         fields = Observation.encoding(self.dataset)
         fields["dataset"] = self.dataset
         fields['dataset_id_field'] = fields[DATASET_ID]
         fields['period'] = period
         mapper = Code(Template(self.mapper_str).render(fields))
         reducer = Code(Template(self.reducer_str).render(fields))
         query = json.loads(Template(self.query_str).render(fields))
         query['%(form_meta_timeend)s' % fields]['$gte'] = period.start
         query['%(form_meta_timeend)s' % fields]['$lte'] = period.end
         aggregate = json.loads(Template(self.aggregate_str).render(fields))
         results = self._db.observations.map_reduce(
             mapper, reducer, 'myresults_malaria', query=query)
         value = None
         if results.count():
             aggregate_value = results.aggregate(aggregate)
             value = aggregate_value['result'][0]['total']
         self._db.myresults_malaria.drop()
     return value
Exemplo n.º 8
0
 def get_value(self, period):
     value = None
     if self.dataset:
         fields = Observation.encoding(self.dataset)
         fields["dataset"] = self.dataset
         fields['dataset_id_field'] = fields[DATASET_ID]
         fields['period'] = period
         mapper = Code(Template(self.mapper_str).render(fields))
         reducer = Code(Template(self.reducer_str).render(fields))
         query = json.loads(Template(self.query_str).render(fields))
         query['%(form_meta_timeend)s' % fields]['$gte'] = period.start
         query['%(form_meta_timeend)s' % fields]['$lte'] = period.end
         aggregate = json.loads(Template(self.aggregate_str).render(fields))
         results = self._db.observations.map_reduce(mapper,
                                                    reducer,
                                                    'myresults_malaria',
                                                    query=query)
         value = None
         if results.count():
             aggregate_value = results.aggregate(aggregate)
             value = aggregate_value['result'][0]['total']
         self._db.myresults_malaria.drop()
     return value
Exemplo n.º 9
0
{"{{dataset_id_field}}": "{{dataset.dataset_id}}",
"{{form_meta_timeend}}": {
              "$gte": "{{period.start}}", 
              "$lte": "{{period.end}}"
            }
}
"""
aggregate_str = """
{"$group": {"_id": 0, "total": {"$sum": "$value.{{num_using_fp}}"}}}
"""
dataset_id = "5791793ac29b4d77b20cf1a04d8e7161"
dataset = Dataset.find_one(dataset_id)
period = Period.month_period(2013, 3)

if dataset:
    fields = Observation.encoding(dataset)
    fields["dataset"] = dataset
    fields['dataset_id_field'] = fields[DATASET_ID]
    fields['period'] = Period.month_period(2013, 3)
    mapper = Code(Template(mapper_str).render(fields))
    reducer = Code(Template(reducer_str).render(fields))
    query = json.loads(Template(query_str).render(fields))
    query['%(form_meta_timeend)s' % fields]['$gte'] = period.start
    query['%(form_meta_timeend)s' % fields]['$lte'] = period.end
    aggregate = json.loads(Template(aggregate_str).render(fields))
    results = db.observations.map_reduce(mapper,
                                         reducer,
                                         'myresults_fp',
                                         query=query)
    if results.count():
        value = results.aggregate(aggregate)
Exemplo n.º 10
0
{"{{dataset_id_field}}": "{{dataset.dataset_id}}",
"{{form_meta_timeend}}": {
              "$gte": "{{period.start}}", 
              "$lte": "{{period.end}}"
            }
}
"""
aggregate_str = """
{"$group": {"_id": 0, "total": {"$sum": "$value.{{num_using_fp}}"}}}
"""
dataset_id = "5791793ac29b4d77b20cf1a04d8e7161"
dataset = Dataset.find_one(dataset_id)
period = Period.month_period(2013, 3)

if dataset:
    fields = Observation.encoding(dataset)
    fields["dataset"] = dataset
    fields['dataset_id_field'] = fields[DATASET_ID]
    fields['period'] = Period.month_period(2013, 3)
    mapper = Code(Template(mapper_str).render(fields))
    reducer = Code(Template(reducer_str).render(fields))
    query = json.loads(Template(query_str).render(fields))
    query['%(form_meta_timeend)s' % fields]['$gte'] = period.start
    query['%(form_meta_timeend)s' % fields]['$lte'] = period.end
    aggregate = json.loads(Template(aggregate_str).render(fields))
    results = db.observations.map_reduce(mapper, reducer, 'myresults_fp', query=query)
    if results.count():
        value = results.aggregate(aggregate)
        print  value['result'][0]['total']
        assert value['result'][0]['total'] == 1641
    db.myresults_fp.drop()