def test_create_and_update(self): delete_all_datasets_by_name(self.api, self.dataset_name) filters = {"rp_entity_id": {"$in": ['AAAAAA']}} dataset = Dataset( name=self.dataset_name, filters=filters, # a dataset with a filter ) dataset = self.api.create_dataset(dataset) assert dataset.id is not None dataset_id = dataset.id # change the dataset new_filters = {"rp_entity_id": {"$in": ['BBBBBB']}} dataset.filters = new_filters dataset.save() # get the dataset again dataset = self.api.get_dataset(dataset_id) assert dataset.filters == new_filters new_filters = {"rp_entity_id": {"$in": ['CCCCCC']}} dataset.filters = new_filters dataset.save() dataset.delete() assert delete_all_datasets_by_name(self.api, self.dataset_name) == 0
def test_granular_dataset(self): self.api.log_curl_commands = True granular_dataset = Dataset( name='Test-granular-dataset', filters={"$and": [{"rp_entity_id": {"$in": ["D8442A"]}}, {"relevance": 90}]}, ) granular_dataset = self.api.create_dataset(granular_dataset) try: granular_dataset.json('2018-01-01 00:00', '2018-01-02 00:00') finally: granular_dataset.delete()
def test_dataset_copy_updated(self): source_dataset = Dataset(api=self.api, id='us30') new_dataset = Dataset( api=self.api, name="copy of the us30 dataset", filters=source_dataset.filters, fields=['timestamp_utc', 'rp_entity_id', 'avg_sentiment'], custom_fields=[{ "avg_sentiment": { "avg": { "field": "EVENT_SENTIMENT_SCORE", } } }], frequency='daily', tags=['copy', 'test']) new_dataset.save() new_dataset.delete()
def test_indicator_dataset(self): indicator_dataset = Dataset( name='Test-indicator-dataset', filters={"$and": [{ "rp_entity_id": { "$in": ["D8442A"] } }]}, fields=[{ "average": { "avg": { "field": "EVENT_SENTIMENT_SCORE" } } }], frequency='daily', ) indicator_dataset = self.api.create_dataset(indicator_dataset) try: # ask the indicator dataset for its data response = indicator_dataset.json('2018-01-01 00:00', '2018-01-02 00:00') assert len(response) == 2 # we should get 2 rows assert {r['rp_entity_id'] for r in response} == {'D8442A', 'ROLLUP'} # do a request overriding fields and frequency to see the underlying data response = indicator_dataset.json( '2018-01-01 00:00', '2018-01-02 00:00', fields=['rp_story_id', 'rp_entity_id'], frequency='granular') assert len( response) > 200, "We should have many granular analytics rows" assert {r['rp_entity_id'] for r in response} == {'D8442A' }, "All rows should be D8442A" finally: indicator_dataset.delete()