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)
Example #2
0
    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}))