def test_basic_actions(self): storage = BlobstoreStorage() # Save a new file f = ContentFile('content', name='my_file') filename = storage.save('tmp', f) self.assertIsInstance(filename, basestring) self.assertTrue(filename.endswith('tmp')) # Check .exists(), .size() and .url() self.assertTrue(storage.exists(filename)) self.assertEqual(storage.size(filename), len('content')) url = storage.url(filename) self.assertIsInstance(url, basestring) self.assertNotEqual(url, '') # Check URL can be fetched abs_url = urlparse.urlunparse( ('http', os.environ['HTTP_HOST'], url, None, None, None)) response = urlfetch.fetch(abs_url) self.assertEqual(response.status_code, httplib.OK) self.assertEqual(response.content, 'content') # Open it, read it # NOTE: Blobstore doesn’t support updating existing files. f = storage.open(filename) self.assertIsInstance(f, File) self.assertEqual(f.read(), 'content') # Delete it storage.delete(filename) self.assertFalse(storage.exists(filename))
def test_basic_actions(self): storage = BlobstoreStorage() # Save a new file f = ContentFile("content", name="my_file") filename = storage.save("tmp", f) self.assertIsInstance(filename, basestring) self.assertTrue(filename.endswith("tmp")) # Check .exists(), .size() and .url() self.assertTrue(storage.exists(filename)) self.assertEqual(storage.size(filename), len("content")) url = storage.url(filename) self.assertIsInstance(url, basestring) self.assertNotEqual(url, "") # Check URL can be fetched abs_url = urlparse.urlunparse(("http", os.environ["HTTP_HOST"], url, None, None, None)) response = urlfetch.fetch(abs_url) self.assertEqual(response.status_code, httplib.OK) self.assertEqual(response.content, "content") # Open it, read it # NOTE: Blobstore doesn’t support updating existing files. f = storage.open(filename) self.assertIsInstance(f, File) self.assertEqual(f.read(), "content") # Delete it storage.delete(filename) self.assertFalse(storage.exists(filename))
def test_basic_actions(self): storage = BlobstoreStorage() # Save a new file f = ContentFile('content', name='my_file') filename = storage.save('tmp', f) self.assertIsInstance(filename, six.string_types) self.assertTrue(filename.endswith('tmp')) # Check .exists(), .size() and .url() self.assertTrue(storage.exists(filename)) self.assertEqual(storage.size(filename), len('content')) url = storage.url(filename) self.assertIsInstance(url, six.string_types) self.assertNotEqual(url, '') # Check URL can be fetched abs_url = six.moves.urllib.parse.urlunparse( ('http', os.environ['HTTP_HOST'], url, None, None, None) ) response = urlfetch.fetch(abs_url) self.assertEqual(response.status_code, six.moves.http_client.OK) self.assertEqual(response.content, 'content') # Open it, read it # NOTE: Blobstore doesn’t support updating existing files. f = storage.open(filename) self.assertIsInstance(f, File) self.assertEqual(f.read(), 'content') # Delete it storage.delete(filename) self.assertFalse(storage.exists(filename))
def test_image_serving_url_is_secure(self): """ When we get a serving URL for an image, it should be https:// not http:// """ storage = BlobstoreStorage() # Save a new file f = ContentFile('content', name='my_file') filename = storage.save('tmp', f) # Because we're not on production, get_serving_url() actually just returns a relative URL, # so we can't check the result, so instead we check the call to get_serving_url with sleuth.watch("djangae.storage.get_serving_url") as watcher: storage.url(filename) # access the URL to trigger the call to get_serving_url self.assertTrue(watcher.calls[0].kwargs['secure_url'])
def test_image_serving_url_is_secure(self): """ When we get a serving URL for an image, it should be https:// not http:// """ storage = BlobstoreStorage() # Save a new file f = ContentFile('content', name='my_file') filename = storage.save('tmp', f) # Because we're not on production, get_serving_url() actually just returns a relative URL, # so we can't check the result, so instead we check the call to get_serving_url with sleuth.watch("djangae.storage.get_serving_url") as watcher: storage.url( filename ) # access the URL to trigger the call to get_serving_url self.assertTrue(watcher.calls[0].kwargs['secure_url'])
def test_transformation_error(self): storage = BlobstoreStorage() with sleuth.detonate("djangae.storage.get_serving_url", TransformationError): self.assertEqual("thing", storage.url("thing"))
def test_supports_nameless_files(self): storage = BlobstoreStorage() f2 = ContentFile("nameless-content") storage.save("tmp2", f2)
def test_supports_nameless_files(self): storage = BlobstoreStorage() f2 = ContentFile('nameless-content') storage.save('tmp2', f2)
def test_transformation_error(self): storage = BlobstoreStorage() with sleuth.detonate('djangae.storage.get_serving_url', TransformationError): self.assertIsNone(storage.url('thing'))
def test_large_image_error(self): storage = BlobstoreStorage() with sleuth.detonate('djangae.storage.get_serving_url', LargeImageError): self.assertEqual('thing', storage.url('thing'))