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 }))
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 }))
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
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}))
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}))