def run_test_signed_url(self, filename): response = self.conn.put( settings.AWS_STORAGE_BUCKET_NAME, filename, 'Lorem ipsum dolor sit amet.', {'x-amz-acl': 'private'} ) self.assertEquals(response.http_response.status, 200, 'put with a string argument') response = self.get_url(default_storage.url(filename)) self.assertEqual(response.status, 403) signed_url = create_signed_url(filename, expires=5, secure=True) response = self.get_url(signed_url) self.assertEqual( response.status, 200, 'If this is failing, try resyncing your computer\'s clock.' ) sleep(6) response = self.get_url(signed_url) self.assertEqual( response.status, 403, 'If this is failing, try resyncing your computer\'s clock.' ) default_storage.delete(filename) return signed_url
def test_encoding(self): signed_url = create_signed_url('it\'s/a/test.jpg', secure=False, private_cloudfront=True, expires_at=1258237200) self.assertTrue('/it\'s/a/test.jpg?' not in signed_url) self.assertTrue('/it%27s/a/test.jpg?' in signed_url)
def test_private_cloudfront(self): signed_url = create_signed_url('horizon.jpg?large=yes&license=yes', secure=False, private_cloudfront=True, expires_at=1258237200) self.assertEqual( signed_url, 'http://d604721fxaaqy9.cloudfront.net/horizon.jpg?large=yes&license=yes&Expires=1258237200&Signature=Nql641NHEUkUaXQHZINK1FZ~SYeUSoBJMxjdgqrzIdzV2gyEXPDNv0pYdWJkflDKJ3xIu7lbwRpSkG98NBlgPi4ZJpRRnVX4kXAJK6tdNx6FucDB7OVqzcxkxHsGFd8VCG1BkC-Afh9~lOCMIYHIaiOB6~5jt9w2EOwi6sIIqrg_&Key-Pair-Id=PK12345EXAMPLE' )
def test_signed_url_missing_file(self): signed_url = create_signed_url('testprivatemissing.txt', expires=5, secure=True) response = self.get_url(signed_url) self.assertEqual(response.status, 404)