def testLimit(self): "Use client API to store and limit search results" doc_id = document_store(document=self.tempfile.name, document_type='longitudinal') duplicate_id = document_store(document=self.tempfile.name, document_type='longitudinal', allow_duplicate_filename=True) self.doc_list.append(doc_id) self.doc_list.append(duplicate_id) criteria = {'filename': os.path.basename(self.tempfile.name)} results = document_find(criteria) self.assertEquals(len(results), 2) result = document_find(criteria, limit=1) # single result returns doc contents self.assertEquals(result, self.test_text)
def _transmit_differences(self, report): """Compute differences from yesterday's like report; transport""" # This option really only makes sense on date range reports, # as updates hit older data than just 'yesterday'. if self.criteria.start_date == self.criteria.end_date: raise ValueError("difference calculation not supported on "\ "single day reports") # See if we can find a similar report in the archive from # yesterday search_criteria = { 'report_method': self.criteria.report_method, 'start_date': self.criteria.start_date - timedelta(days=1), 'end_date': self.criteria.end_date - timedelta(days=1) } old_doc = document_find(search_criteria, limit=1) if old_doc is None: logging.info("No comparable report found for difference "\ "generation") self._transmit_report(report) else: target_filename = self.\ _generate_output_filename(start_date=self.criteria.start_date, end_date=self.criteria.end_date) # RemoveDuplicates not yet ported!! raise ValueError("RemoveDuplicates not ported")
def _transmit_differences(self, report): """Compute differences from yesterday's like report; transport""" # This option really only makes sense on date range reports, # as updates hit older data than just 'yesterday'. if self.criteria.start_date == self.criteria.end_date: raise ValueError("difference calculation not supported on "\ "single day reports") # See if we can find a similar report in the archive from # yesterday search_criteria = {'report_method': self.criteria.report_method, 'start_date': self.criteria.start_date - timedelta(days=1), 'end_date': self.criteria.end_date - timedelta(days=1)} old_doc = document_find(search_criteria, limit=1) if old_doc is None: logging.info("No comparable report found for difference "\ "generation") self._transmit_report(report) else: target_filename = self.\ _generate_output_filename(start_date=self.criteria.start_date, end_date=self.criteria.end_date) # RemoveDuplicates not yet ported!! raise ValueError("RemoveDuplicates not ported")
def testFindOne(self): "Use client API to find a single doc after storing" doc_id = document_store(document=self.tempfile.name, document_type='longitudinal') self.doc_list.append(doc_id) # Pull from the store and see if compressed filename = os.path.basename(self.tempfile.name) criteria = {'filename': filename} document = document_find(criteria) self.assertEquals(document, self.test_text)
def testDuplicate(self): "Use client API to store near duplicates and find" doc_id = document_store(document=self.tempfile.name, document_type='longitudinal') duplicate_id = document_store(document=self.tempfile.name, document_type='longitudinal', allow_duplicate_filename=True) self.doc_list.append(doc_id) self.doc_list.append(duplicate_id) criteria = {'filename': os.path.basename(self.tempfile.name)} results = document_find(criteria) self.assertEquals(len(results), 2) self.assertNotEquals(results[0]['_id'], results[1]['_id'])
def testZipCompression(self): "Use client API to compress and store a doc" doc_id = document_store(document=self.tempfile.name, document_type='longitudinal', compress_with='zip') self.doc_list.append(doc_id) # Pull from the store and see if compressed metadata = document_fetch_metadata(doc_id) self.assertEqual(metadata.get('compression', None), 'zip') filename = os.path.basename(self.tempfile.name) + '.zip' self.assertEqual(self.test_text, document_find({'filename': filename}))