Exemplo n.º 1
0
    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))
Exemplo n.º 2
0
    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))
Exemplo n.º 3
0
    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))
Exemplo n.º 4
0
 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'])
Exemplo n.º 5
0
 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'])
Exemplo n.º 6
0
 def test_transformation_error(self):
     storage = BlobstoreStorage()
     with sleuth.detonate("djangae.storage.get_serving_url", TransformationError):
         self.assertEqual("thing", storage.url("thing"))
Exemplo n.º 7
0
 def test_supports_nameless_files(self):
     storage = BlobstoreStorage()
     f2 = ContentFile("nameless-content")
     storage.save("tmp2", f2)
Exemplo n.º 8
0
 def test_supports_nameless_files(self):
     storage = BlobstoreStorage()
     f2 = ContentFile('nameless-content')
     storage.save('tmp2', f2)
Exemplo n.º 9
0
 def test_transformation_error(self):
     storage = BlobstoreStorage()
     with sleuth.detonate('djangae.storage.get_serving_url', TransformationError):
         self.assertIsNone(storage.url('thing'))
Exemplo n.º 10
0
 def test_transformation_error(self):
     storage = BlobstoreStorage()
     with sleuth.detonate('djangae.storage.get_serving_url',
                          TransformationError):
         self.assertIsNone(storage.url('thing'))
Exemplo n.º 11
0
 def test_supports_nameless_files(self):
     storage = BlobstoreStorage()
     f2 = ContentFile('nameless-content')
     storage.save('tmp2', f2)
Exemplo n.º 12
0
 def test_large_image_error(self):
     storage = BlobstoreStorage()
     with sleuth.detonate('djangae.storage.get_serving_url',
                          LargeImageError):
         self.assertEqual('thing', storage.url('thing'))
Exemplo n.º 13
0
 def test_large_image_error(self):
     storage = BlobstoreStorage()
     with sleuth.detonate('djangae.storage.get_serving_url', LargeImageError):
         self.assertEqual('thing', storage.url('thing'))