4 changes: 2 additions & 2 deletions geonode/qgis_server/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
from django.contrib.gis.geos import GEOSGeometry, Point
from django.core.exceptions import ImproperlyConfigured
from django.core.urlresolvers import reverse
from lxml import etree
from defusedxml import lxml as dlxml
from requests import Request

from geonode import qgis_server, geoserver
Expand Down Expand Up @@ -791,7 +791,7 @@ def style_list(layer, internal=True, generating_qgis_capabilities=False):
try:
response = requests.get(url)

root_xml = etree.fromstring(response.content)
root_xml = dlxml.fromstring(response.content)
styles_xml = root_xml.xpath(
'wms:Capability/wms:Layer/wms:Layer/wms:Style',
namespaces={
Expand Down
8 changes: 5 additions & 3 deletions geonode/qgis_server/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@
from django.utils.translation import ugettext_lazy as _
from geonode.security.models import PermissionLevelMixin
from lxml import etree
from defusedxml import lxml as dlxml


from geonode import qgis_server
from geonode.layers.models import Layer
Expand Down Expand Up @@ -221,10 +223,10 @@ def from_get_capabilities_style_xml(
"""

if isinstance(style_xml, str):
style_xml = etree.fromstring(style_xml)
style_xml = dlxml.fromstring(style_xml)

elif isinstance(style_xml, ElementTree.Element):
style_xml = etree.fromstring(
style_xml = dlxml.fromstring(
ElementTree.tostring(
style_xml, encoding='utf-8', method='xml'))

Expand All @@ -248,7 +250,7 @@ def from_get_capabilities_style_xml(

response = requests.get(style_url)
style_body = etree.tostring(
etree.fromstring(response.content), pretty_print=True)
dlxml.fromstring(response.content), pretty_print=True)

default_dict = {
'title': style_xml.xpath(
Expand Down
5 changes: 3 additions & 2 deletions geonode/qgis_server/tests/test_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@

from geonode.qgis_server.models import QGISServerLayer
from lxml import etree
from defusedxml import lxml as dlxml

import gisdata
import shutil
Expand Down Expand Up @@ -157,14 +158,14 @@ def test_style_management_url(self):
self.assertEqual(response.headers.get('Content-Type'), 'text/xml')

# it has to contains qgis tags
style_xml = etree.fromstring(response.content)
style_xml = dlxml.fromstring(response.content)
self.assertTrue('qgis' in style_xml.tag)

# Add new style
# change default style slightly
self.assertTrue('WhiteToBlack' not in response.content)
self.assertTrue('BlackToWhite' in response.content)
new_style_xml = etree.fromstring(
new_style_xml = dlxml.fromstring(
response.content.replace('BlackToWhite', 'WhiteToBlack'))
new_xml_content = etree.tostring(new_style_xml, pretty_print=True)

Expand Down
4 changes: 2 additions & 2 deletions geonode/qgis_server/tests/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
from imghdr import what

import requests
from lxml import etree
from defusedxml import lxml as dlxml

import gisdata
from django.conf import settings
Expand Down Expand Up @@ -267,7 +267,7 @@ def test_ogc_specific_layer(self):

# Check xml content
self.assertEqual(response.status_code, 200, response.content)
root = etree.fromstring(response.content)
root = dlxml.fromstring(response.content)
layer_xml = root.xpath(
'wms:Capability/wms:Layer/wms:Layer/wms:Name',
namespaces={'wms': 'http://www.opengis.net/wms'})
Expand Down
7 changes: 4 additions & 3 deletions geonode/security/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -450,6 +450,7 @@ def test_layer_upload_with_time(self):
check_layer(saved_layer)

from lxml import etree
from defusedxml import lxml as dlxml
from geonode.geoserver.helpers import get_store
from geonode.geoserver.signals import gs_catalog

Expand All @@ -475,7 +476,7 @@ def test_layer_upload_with_time(self):
self.assertEquals(r.status_code, 200)
_log(r.text)

featureType = etree.ElementTree(etree.fromstring(r.text))
featureType = etree.ElementTree(dlxml.fromstring(r.text))
metadata = featureType.findall('./[metadata]')
self.assertEquals(len(metadata), 0)

Expand Down Expand Up @@ -511,7 +512,7 @@ def test_layer_upload_with_time(self):
self.assertEquals(r.status_code, 200)
_log(r.text)

featureType = etree.ElementTree(etree.fromstring(r.text))
featureType = etree.ElementTree(dlxml.fromstring(r.text))
metadata = featureType.findall('./[metadata]')
_log(etree.tostring(metadata[0], encoding='utf8', method='xml'))
self.assertEquals(len(metadata), 1)
Expand All @@ -534,7 +535,7 @@ def test_layer_upload_with_time(self):
'xlink': 'http://www.w3.org/1999/xlink',
'xsi': 'http://www.w3.org/2001/XMLSchema-instance'}

e = etree.fromstring(wms_capabilities)
e = dlxml.fromstring(wms_capabilities)
for atype in e.findall(
"./[wms:Name='%s']/wms:Dimension[@name='time']" % (saved_layer.alternate), namespaces):
dim_name = atype.get('name')
Expand Down
8 changes: 4 additions & 4 deletions geonode/tests/csw.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@

from lxml import etree

from django.conf import settings
from defusedxml import lxml as dlxml

from geonode import geoserver, qgis_server
from geonode.utils import check_ogc_backend
Expand Down Expand Up @@ -310,7 +310,7 @@ def test_csw_upload_fgdc(self):
if csw.catalogue.type == 'pycsw_http':
# upload a native FGDC metadata document
md_doc = etree.tostring(
etree.fromstring(
dlxml.fromstring(
open(
os.path.join(
gisdata.GOOD_METADATA,
Expand Down Expand Up @@ -418,7 +418,7 @@ def test_csw_bulk_upload(self):
for mfile in files:
if mfile.endswith('.xml'):
md_doc = etree.tostring(
etree.fromstring(
dlxml.fromstring(
open(
os.path.join(
root,
Expand All @@ -431,7 +431,7 @@ def test_csw_bulk_upload(self):
csw.catalogue.results['insertresults'][0])

for md in glob.glob(os.path.join(gisdata.GOOD_METADATA, 'wustl.edu', '*.xml')):
md_doc = etree.tostring(etree.fromstring(open(md).read()))
md_doc = etree.tostring(dlxml.fromstring(open(md).read()))
csw.catalogue.transaction(
ttype='insert',
typename='gmd:MD_Metadata',
Expand Down
8 changes: 4 additions & 4 deletions geonode/tests/integration.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
# import traceback
import gisdata
from decimal import Decimal
from lxml import etree
from defusedxml import lxml as dlxml
from urlparse import urljoin

from django.conf import settings
Expand Down Expand Up @@ -1465,7 +1465,7 @@ def test_capabilities(self):
# 0. test capabilities_layer
url = reverse('capabilities_layer', args=[layer1.id])
resp = self.client.get(url)
layercap = etree.fromstring(resp.content)
layercap = dlxml.fromstring(resp.content)
rootdoc = etree.ElementTree(layercap)
layernodes = rootdoc.findall('./[wms:Name]', namespaces)
layernode = layernodes[0]
Expand All @@ -1477,7 +1477,7 @@ def test_capabilities(self):
# 1. test capabilities_user
url = reverse('capabilities_user', args=[norman.username])
resp = self.client.get(url)
layercap = etree.fromstring(resp.content)
layercap = dlxml.fromstring(resp.content)
rootdoc = etree.ElementTree(layercap)
layernodes = rootdoc.findall('./[wms:Name]', namespaces)

Expand All @@ -1496,7 +1496,7 @@ def test_capabilities(self):
# 2. test capabilities_category
url = reverse('capabilities_category', args=[category.identifier])
resp = self.client.get(url)
layercap = etree.fromstring(resp.content)
layercap = dlxml.fromstring(resp.content)
rootdoc = etree.ElementTree(layercap)
layernodes = rootdoc.findall('./[wms:Name]', namespaces)

Expand Down
3 changes: 2 additions & 1 deletion geonode/upload/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import traceback

from lxml import etree
from defusedxml import lxml as dlxml
from osgeo import ogr
from django.conf import settings
from django.core.urlresolvers import reverse
Expand Down Expand Up @@ -182,7 +183,7 @@ def _byteify(data, ignore_dicts=False):

def get_kml_doc(kml_bytes):
"""Parse and return an etree element with the kml file's content"""
kml_doc = etree.fromstring(
kml_doc = dlxml.fromstring(
kml_bytes,
parser=etree.XMLParser(resolve_entities=False)
)
Expand Down