Commits

Jannis Leidel committed cddf553

Comments (0)

Files changed (1)

storages/tests/s3boto.py

     def test_suspicious_operation(self):
         self.assertRaises(ValueError,
             s3boto.safe_join, "base", "../../../../../../../etc/passwd")
-    
+
 class S3BotoStorageTests(S3BotoTestCase):
 
     def test_storage_save(self):
         content = ContentFile('new content')
         self.storage.save(name, content)
         self.storage.bucket.get_key.assert_called_once_with(name)
-        
+
         key = self.storage.bucket.get_key.return_value
         key.set_metadata.assert_called_with('Content-Type', 'text/plain')
         key.set_contents_from_file.assert_called_with(
             policy=self.storage.acl,
             reduced_redundancy=self.storage.reduced_redundancy,
         )
-    
+
+    def test_storage_save_gzip(self):
+        """
+        Test saving a file with gzip enabled.
+        """
+        if not s3boto.IS_GZIPPED:  # Gzip not available.
+            return
+        name = 'test_storage_save.css'
+        content = ContentFile("I should be gzip'd")
+        self.storage.save(name, content)
+        key = self.storage.bucket.get_key.return_value
+        key.set_metadata.assert_called_with('Content-Type', 'text/css')
+        key.set_contents_from_file.assert_called_with(
+            content,
+            headers={'Content-Encoding': 'gzip'},
+            policy=self.storage.acl,
+            reduced_redundancy=self.storage.reduced_redundancy,
+        )
+
+    def test_compress_content_len(self):
+        """
+        Test that file returned by _compress_content() is readable.
+        """
+        if not s3boto.IS_GZIPPED:  # Gzip not available.
+            return
+        content = ContentFile("I should be gzip'd")
+        content = self.storage._compress_content(content)
+        self.assertGreater(len(content.read()), 0)
+
     def test_storage_open_write(self):
         """
         Test opening a file in write mode
         # Set the mocked key's bucket
         self.storage.bucket.get_key.return_value.bucket = self.storage.bucket
         # Set the name of the mock object
-        self.storage.bucket.get_key.return_value.name = name 
+        self.storage.bucket.get_key.return_value.name = name
 
         file = self.storage.open(name, 'w')
         self.storage.bucket.get_key.assert_called_with(name)
             _file, 1, headers=self.storage.headers,
         )
         file._multipart.complete_upload.assert_called_once()
-    
+
     #def test_storage_exists_and_delete(self):
     #    # show file does not exist
     #    name = self.prefix_path('test_exists.txt')
     #    self.assertFalse(self.storage.exists(name))
-    #    
+    #
     #    # create the file
     #    content = 'new content'
     #    file = self.storage.open(name, 'w')
     #    file.write(content)
     #    file.close()
-    #    
+    #
     #    # show file exists
     #    self.assertTrue(self.storage.exists(name))
-    #    
+    #
     #    # delete the file
     #    self.storage.delete(name)
-    #    
+    #
     #    # show file does not exist
     #    self.assertFalse(self.storage.exists(name))
 
 
         self.assertEqual(len(dirs), 2)
         for directory in ["some", "other"]:
-            self.assertTrue(directory in dirs, 
+            self.assertTrue(directory in dirs,
                             """ "%s" not in directory list "%s".""" % (
                                 directory, dirs))
-            
+
         self.assertEqual(len(files), 2)
         for filename in ["2.txt", "4.txt"]:
-            self.assertTrue(filename in files, 
+            self.assertTrue(filename in files,
                             """ "%s" not in file list "%s".""" % (
                                 filename, files))
 
 
         dirs, files = self.storage.listdir("some/")
         self.assertEqual(len(dirs), 1)
-        self.assertTrue('path' in dirs, 
+        self.assertTrue('path' in dirs,
                         """ "path" not in directory list "%s".""" % (dirs,))
-            
+
         self.assertEqual(len(files), 1)
-        self.assertTrue('2.txt' in files, 
+        self.assertTrue('2.txt' in files,
                         """ "2.txt" not in files list "%s".""" % (files,))
 
     #def test_storage_size(self):
     #    f = ContentFile(content)
     #    self.storage.save(name, f)
     #    self.assertEqual(self.storage.size(name), f.size)
-    #    
+    #
     #def test_storage_url(self):
     #    name = self.prefix_path('test_storage_size.txt')
     #    content = 'new content'
     #    f = ContentFile(content)
     #    self.storage.save(name, f)
     #    self.assertEqual(content, urlopen(self.storage.url(name)).read())
-        
+
 #class S3BotoStorageFileTests(S3BotoTestCase):
 #    def test_multipart_upload(self):
 #        nparts = 2
 #        f = s3boto.S3BotoStorageFile(name, mode, self.storage)
 #        content_length = 1024 * 1024# 1 MB
 #        content = 'a' * content_length
-#        
+#
 #        bytes = 0
 #        target = f._write_buffer_size * nparts
 #        while bytes < target:
 #            f.write(content)
 #            bytes += content_length
-#            
+#
 #        # make the buffer roll over so f._write_counter
 #        # is incremented
 #        f.write("finished")
-#        
+#
 #        # verify upload was multipart and correctly partitioned
 #        self.assertEqual(f._write_counter, nparts)
-#        
+#
 #        # complete the upload
 #        f.close()
-#        
+#
 #        # verify that the remaining buffered bytes were
 #        # uploaded when the file was closed.
 #        self.assertEqual(f._write_counter, nparts+1)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.