예제 #1
0
 def setUp(self):
     self.storage = DatabaseStoragePostgres()
예제 #2
0
class DBStoragePostgresTest(TestCase):
    def setUp(self):
        self.storage = DatabaseStoragePostgres()

    def test_storage_save(self):
        """
        Test saving a file
        """
        name = "test_storage_save.txt"
        content = ContentFile("new content")
        self.storage.save(name, content)
        self.assertTrue(FileStorage.objects.filter(file_name=name).exists())

    def test_storage_open(self):
        """
        Test opening a file
        """
        name_file = "test_open_file.txt"
        content_file = ContentFile("test! test! test!")
        content_type, encoding = mimetypes.guess_type(name_file)
        content_type = content_type or "application/octet-stream"
        binary = content_file.read()
        size = content_file.size
        FileStorage.objects.create(file_name=name_file, blob=binary, content_type=content_type, size=size)
        open_file = self.storage.open(name_file, "rb")
        content_file.open()
        self.assertEqual(content_file.read(), open_file.read())
        file_name = "test_nonexistent_file.txt"
        open_file = self.storage.open(file_name, "rb")
        self.assertIsNone(open_file)

    def test_storage_delete(self):
        """
        Test deleting a file
        """
        name_file = "test_delete_file.txt"
        content_file = ContentFile("test! test! test!")
        content_type, encoding = mimetypes.guess_type(name_file)
        content_type = content_type or "application/octet-stream"
        binary = content_file.read()
        size = content_file.size
        FileStorage.objects.create(file_name=name_file, blob=binary, content_type=content_type, size=size)
        self.storage.delete(name_file)
        queryset = FileStorage.objects.filter(file_name=name_file).exists()
        self.assertFalse(queryset)
        file_name = "test_nonexistent_file.txt"
        delete_file = self.storage.delete(file_name)
        self.assertIsNone(delete_file)

    def test_storage_exist_true(self):
        """
        Test existing a file
        """
        name_file = "test_exist_file.txt"
        content_file = ContentFile("test! test! test!")
        content_type, encoding = mimetypes.guess_type(name_file)
        content_type = content_type or "application/octet-stream"
        binary = content_file.read()
        size = content_file.size
        FileStorage.objects.create(file_name=name_file, blob=binary, content_type=content_type, size=size)
        self.assertTrue(self.storage.exists(name_file))

    def test_storage_exist_false(self):
        """
        Test existing a file if is not exist
        """
        name_file = "test_not_exist_file.txt"
        self.assertFalse(self.storage.exists(name_file))

    def test_storage_url(self):
        """
        Test correct url
        """
        base_url = self.storage.base_url
        name_file = "test_url_file.txt"
        full_url = urlparse.urljoin(base_url, name_file).replace("\\", "/")
        self.assertEqual(self.storage.url(name_file), full_url)

    def test_storage_get_available_name(self):
        """
        Test available name of file
        """
        name_file = "test_available_name_file.txt"
        self.assertEqual(self.storage.get_available_name(name_file), name_file)