def test_link_or_page(self): """Test a validator: you can enter a url or a page_link, but not both.""" page_data = self.get_new_page_data() response = self.client.post(URL_CMS_PAGE_ADD, page_data) page = Page.objects.all()[0] picture = Picture(url="test") # Note: don't call full_clean as it will check ALL fields - including # the image, which we haven't defined. Call clean() instead which # just validates the url and page_link fields. picture.clean() picture.page_link = page picture.url = None picture.clean() picture.url = "test" self.assertRaises(ValidationError, picture.clean)
def create_picture_plugin(filename, file, parent_plugin, **kwargs): from cms.plugins.picture.models import Picture pic = Picture() pic.placeholder = parent_plugin.placeholder pic.parent = parent_plugin pic.position = CMSPlugin.objects.filter(parent=parent_plugin).count() pic.language = parent_plugin.language pic.plugin_type = 'PicturePlugin' path = pic.get_media_path(filename) full_path = os.path.join(settings.MEDIA_ROOT, path) if not os.path.exists(os.path.dirname(full_path)): os.makedirs(os.path.dirname(full_path)) pic.image = path f = open(full_path, "wb") f.write(file.read()) f.close() pic.save() return pic