def save(self): image = self.cleaned_data["image"] hash = hashlib.md5(image.read()).hexdigest() image.name = "".join((hash, ".", image.format)) upload_to = os.path.join('foro', 'images', str(self.user.pk)) image.url = os.path.join(settings.MEDIA_URL, upload_to, image.name).replace("\\", "/") media_path = os.path.join(settings.MEDIA_ROOT, upload_to) utils.mkdir_p(media_path) with open(os.path.join(media_path, image.name), "wb") as fh: image.seek(0) fh.write(image.read()) image.close() return image
def test_mkdir_p(self): """ mkdir -p """ # Empty path should raise an exception self.assertRaises(OSError, foro_utils.mkdir_p, "") # Try to create an existing dir should do nothing self.assertTrue(os.path.isdir(settings.BASE_DIR)) foro_utils.mkdir_p(settings.BASE_DIR) # Create path tree # setup path = os.path.join(settings.BASE_DIR, "test_foo") sub_path = os.path.join(path, "bar") self.assertFalse(os.path.isdir(sub_path)) self.assertFalse(os.path.isdir(path)) # test foro_utils.mkdir_p(sub_path) self.assertTrue(os.path.isdir(sub_path)) # clean up os.rmdir(sub_path) os.rmdir(path)