def test_save(self): for dataset_name in self.TEST_DATASETS: dataset = Dataset().save(self.test_dataset_ids[dataset_name]) record = dataset.record self.assertTrue(isinstance(record, dict)) self.assertTrue('_id' in record.keys())
def setUp(self): TestBase.setUp(self) self.dataset = Dataset() self.dataset.save( self.test_dataset_ids['good_eats_with_calculations.csv']) dframe = recognize_dates( self.get_data('good_eats_with_calculations.csv')) self.dataset.save_observations(dframe) self.group = None self.places = 5
def test_aggregations_datasets_with_multigroup(self): self.dataset_id = self._post_file() group = 'food_type,rating' self._post_calculations(self.default_formulae + ['sum(amount)'], group) results = self._test_aggregations([group]) # only so we can split dataset = Dataset() row_keys = (dataset.split_groups(group) + ['sum_amount_']).sort() for row in results: sorted_row_keys = row.keys().sort() self.assertEqual(sorted_row_keys, row_keys) self.assertTrue(isinstance(row.values()[0], basestring)) self.assertTrue(isinstance(row.values()[1], basestring)) self.assertTrue(isinstance(row.values()[2], float))
def test_summary_with_multigroup(self): dataset_id = self._post_file() group_columns = 'rating,food_type' results = self.controller.summary( dataset_id, group=group_columns, select=self.controller.SELECT_ALL_FOR_SUMMARY) results = self._test_summary_results(results) self.assertFalse(Datasets.ERROR in results.keys()) self.assertTrue(group_columns in results.keys()) # for split dataset = Dataset() self.assertEqual( len(dataset.split_groups(results[group_columns].keys()[0])), len(dataset.split_groups(group_columns)))
def __create_or_update(self, url=None, csv_file=None, json_file=None, schema=None, na_values=[], perish=0, dataset_id=None): result = None error = 'url, csv_file or schema required' try: if schema or url or csv_file or json_file: if dataset_id is None: dataset = Dataset() dataset.save() else: dataset = Dataset.find_one(dataset_id) Observation.delete_all(dataset) if schema: dataset.import_schema(schema) na_values = safe_json_loads(na_values) if url: dataset.import_from_url(url, na_values=na_values) elif csv_file: dataset.import_from_csv(csv_file, na_values=na_values) elif json_file: dataset.import_from_json(json_file) result = {Dataset.ID: dataset.dataset_id} perish = parse_int(perish) perish and dataset.delete(countdown=perish) except urllib2.URLError: error = 'could not load: %s' % url except IOError: error = 'could not get a filehandle for: %s' % csv_file except JSONError as e: error = e.__str__() self.set_response_params(result, success_status_code=201) return self._dump_or_error(result, error)
def setUp(self): TestBase.setUp(self) self.dataset = Dataset() self.dataset.save(self.test_dataset_ids['good_eats.csv']) self.formula = 'rating' self.name = 'test'
def setUp(self): TestBase.setUp(self) self.dataset = Dataset() self.dataset.save(self.test_dataset_ids['good_eats.csv']) self.query_args = QueryArgs({"rating": "delectible"})