def test_combination(self):
     self.assertTrue(query_datetime(self.now, {
         '$lt': self.future,
         '$gt': self.past
     }))
     self.assertFalse(query_datetime(self.past, {
         '$lt': self.future,
         '$gt': self.now
     }))
示例#2
0
 def test_combination(self):
     self.assertTrue(
         query_datetime(self.now, {
             '$lt': self.future,
             '$gt': self.past
         }))
     self.assertFalse(
         query_datetime(self.past, {
             '$lt': self.future,
             '$gt': self.now
         }))
示例#3
0
 def _find(self, folder=None, upload_date=None):
     files = []
     for file in self.files.values():
         if (upload_date is not None and not query_datetime(file['upload_date'], upload_date)) \
                 or not file['filename'].startswith(folder):
             continue
         files.append(file)
     return files
    def find(self, folder=None, upload_date=None, resource=None):
        """Search for files in the S3 bucket

        Searches for files in the S3 bucket using a combination of folder name and/or upload date
        comparisons. Also uses the `superdesk.utc.query_datetime` method to compare the upload_date provided
        and the upload_date of the file.

        :param str folder: Folder name
        :param dict upload_date: Upload date with comparison operator (i.e. $lt, $lte, $gt or $gte)
        :param resource: The resource type to use
        :return list: List of files that matched the provided parameters
        """

        files = []
        next_marker = ''
        folder = '{}/'.format(folder) if folder else None
        while True:
            result = self.call(
                'list_objects',
                Marker=next_marker,
                MaxKeys=MAX_KEYS,
                Prefix=folder
            )

            if not result or len(result.get('Contents', [])) <= 0:
                break

            objects = result.get('Contents', [])
            for file in objects:
                if upload_date is not None and not query_datetime(file.get('LastModified'), upload_date):
                    continue
                files.append({
                    '_id': file.get('Key'),
                    'filename': file.get('Key'),
                    'upload_date': file.get('LastModified'),
                    'size': file.get('Size'),
                    '_etag': file.get('ETag')
                })

            next_marker = objects[-1]['Key']

        return files
    def find(self, folder=None, upload_date=None, resource=None):
        """Search for files in the S3 bucket

        Searches for files in the S3 bucket using a combination of folder name and/or upload date
        comparisons. Also uses the `superdesk.utc.query_datetime` method to compare the upload_date provided
        and the upload_date of the file.

        :param str folder: Folder name
        :param dict upload_date: Upload date with comparison operator (i.e. $lt, $lte, $gt or $gte)
        :param resource: The resource type to use
        :return list: List of files that matched the provided parameters
        """

        files = []
        next_marker = ''
        folder = '{}/'.format(folder) if folder else None
        while True:
            result = self.call('list_objects',
                               Marker=next_marker,
                               MaxKeys=MAX_KEYS,
                               Prefix=folder)

            if not result or len(result.get('Contents', [])) <= 0:
                break

            objects = result.get('Contents', [])
            for file in objects:
                if upload_date is not None and not query_datetime(
                        file.get('LastModified'), upload_date):
                    continue
                files.append({
                    '_id': file.get('Key'),
                    'filename': file.get('Key'),
                    'upload_date': file.get('LastModified'),
                    'size': file.get('Size'),
                    '_etag': file.get('ETag')
                })

            next_marker = objects[-1]['Key']

        return files
示例#6
0
 def test_neq(self):
     self.assertTrue(query_datetime(self.past, {"$ne": self.now}))
     self.assertFalse(query_datetime(self.now, {"$ne": self.now}))
     self.assertTrue(query_datetime(self.future, {"$ne": self.now}))
示例#7
0
 def test_eq(self):
     self.assertFalse(query_datetime(self.past, {'$eq': self.now}))
     self.assertTrue(query_datetime(self.now, {'$eq': self.now}))
     self.assertFalse(query_datetime(self.future, {'$eq': self.now}))
 def test_neq(self):
     self.assertTrue(query_datetime(self.past, {'$ne': self.now}))
     self.assertFalse(query_datetime(self.now, {'$ne': self.now}))
     self.assertTrue(query_datetime(self.future, {'$ne': self.now}))