mirror of
https://github.com/openSUSE/osc.git
synced 2024-12-30 19:56:14 +01:00
Merge branch 'no-celementtree' of https://github.com/AdamWill/osc
Use xml.etree.ElementTree if xml.etree.cElementTree is not available anymore (python3.9).
This commit is contained in:
commit
613daa7a09
4
README
4
README
@ -24,10 +24,6 @@ Alternatively, you can directly use osc-wrapper.py from the source dir
|
|||||||
(which is easier if you develop on osc).
|
(which is easier if you develop on osc).
|
||||||
|
|
||||||
|
|
||||||
The program needs the cElementTree python module installed. On SUSE, the
|
|
||||||
respective package is called python-elementtree (before 10.2: python-xml).
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CONFIGURATION:
|
CONFIGURATION:
|
||||||
|
|
||||||
|
@ -28,9 +28,12 @@ import osc.conf
|
|||||||
from . import oscerr
|
from . import oscerr
|
||||||
import subprocess
|
import subprocess
|
||||||
try:
|
try:
|
||||||
|
# Works up to Python 3.8, needed for Python < 3.3 (inc 2.7)
|
||||||
from xml.etree import cElementTree as ET
|
from xml.etree import cElementTree as ET
|
||||||
except ImportError:
|
except ImportError:
|
||||||
import cElementTree as ET
|
# will import a fast implementation from 3.3 onwards, needed
|
||||||
|
# for 3.9+
|
||||||
|
from xml.etree import ElementTree as ET
|
||||||
|
|
||||||
from .conf import config, cookiejar
|
from .conf import config, cookiejar
|
||||||
|
|
||||||
|
@ -47,11 +47,13 @@ except ImportError:
|
|||||||
from cStringIO import StringIO
|
from cStringIO import StringIO
|
||||||
from httplib import IncompleteRead
|
from httplib import IncompleteRead
|
||||||
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
# Works up to Python 3.8, needed for Python < 3.3 (inc 2.7)
|
||||||
from xml.etree import cElementTree as ET
|
from xml.etree import cElementTree as ET
|
||||||
except ImportError:
|
except ImportError:
|
||||||
import cElementTree as ET
|
# will import a fast implementation from 3.3 onwards, needed
|
||||||
|
# for 3.9+
|
||||||
|
from xml.etree import ElementTree as ET
|
||||||
|
|
||||||
from . import oscerr
|
from . import oscerr
|
||||||
from . import conf
|
from . import conf
|
||||||
@ -816,7 +818,7 @@ class Project:
|
|||||||
|
|
||||||
def read_packages(self):
|
def read_packages(self):
|
||||||
"""
|
"""
|
||||||
Returns an ``xml.etree.cElementTree`` object representing the
|
Returns an ``xml.etree.ElementTree`` object representing the
|
||||||
parsed contents of the project's ``.osc/_packages`` XML file.
|
parsed contents of the project's ``.osc/_packages`` XML file.
|
||||||
"""
|
"""
|
||||||
global store
|
global store
|
||||||
|
@ -5,11 +5,13 @@ information instead of scanning individual rpms."""
|
|||||||
import gzip
|
import gzip
|
||||||
import os.path
|
import os.path
|
||||||
|
|
||||||
# cElementTree can be standard or 3rd-party depending on python version
|
|
||||||
try:
|
try:
|
||||||
|
# Works up to Python 3.8, needed for Python < 3.3 (inc 2.7)
|
||||||
from xml.etree import cElementTree as ET
|
from xml.etree import cElementTree as ET
|
||||||
except ImportError:
|
except ImportError:
|
||||||
import cElementTree as ET
|
# will import a fast implementation from 3.3 onwards, needed
|
||||||
|
# for 3.9+
|
||||||
|
from xml.etree import ElementTree as ET
|
||||||
|
|
||||||
# project modules
|
# project modules
|
||||||
import osc.util.rpmquery
|
import osc.util.rpmquery
|
||||||
|
@ -4,7 +4,13 @@ import shutil
|
|||||||
import tempfile
|
import tempfile
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
from xml.etree import cElementTree as ET
|
try:
|
||||||
|
# Works up to Python 3.8, needed for Python < 3.3 (inc 2.7)
|
||||||
|
from xml.etree import cElementTree as ET
|
||||||
|
except ImportError:
|
||||||
|
# will import a fast implementation from 3.3 onwards, needed
|
||||||
|
# for 3.9+
|
||||||
|
from xml.etree import ElementTree as ET
|
||||||
EXPECTED_REQUESTS = []
|
EXPECTED_REQUESTS = []
|
||||||
|
|
||||||
if sys.version_info[0:2] in ((2, 6), (2, 7)):
|
if sys.version_info[0:2] in ((2, 6), (2, 7)):
|
||||||
|
@ -3,7 +3,13 @@ import osc.oscerr
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
from common import GET, PUT, POST, DELETE, OscTestCase
|
from common import GET, PUT, POST, DELETE, OscTestCase
|
||||||
from xml.etree import cElementTree as ET
|
try:
|
||||||
|
# Works up to Python 3.8, needed for Python < 3.3 (inc 2.7)
|
||||||
|
from xml.etree import cElementTree as ET
|
||||||
|
except ImportError:
|
||||||
|
# will import a fast implementation from 3.3 onwards, needed
|
||||||
|
# for 3.9+
|
||||||
|
from xml.etree import ElementTree as ET
|
||||||
try:
|
try:
|
||||||
from urllib.error import HTTPError
|
from urllib.error import HTTPError
|
||||||
except ImportError:
|
except ImportError:
|
||||||
|
@ -3,7 +3,13 @@ import osc.oscerr
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
from common import GET, PUT, POST, DELETE, OscTestCase
|
from common import GET, PUT, POST, DELETE, OscTestCase
|
||||||
from xml.etree import cElementTree as ET
|
try:
|
||||||
|
# Works up to Python 3.8, needed for Python < 3.3 (inc 2.7)
|
||||||
|
from xml.etree import cElementTree as ET
|
||||||
|
except ImportError:
|
||||||
|
# will import a fast implementation from 3.3 onwards, needed
|
||||||
|
# for 3.9+
|
||||||
|
from xml.etree import ElementTree as ET
|
||||||
FIXTURES_DIR = os.path.join(os.getcwd(), 'repairwc_fixtures')
|
FIXTURES_DIR = os.path.join(os.getcwd(), 'repairwc_fixtures')
|
||||||
|
|
||||||
def suite():
|
def suite():
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
|
try:
|
||||||
|
# Works up to Python 3.8, needed for Python < 3.3 (inc 2.7)
|
||||||
|
from xml.etree import cElementTree as ET
|
||||||
|
except ImportError:
|
||||||
|
# will import a fast implementation from 3.3 onwards, needed
|
||||||
|
# for 3.9+
|
||||||
|
from xml.etree import ElementTree as ET
|
||||||
|
|
||||||
import osc.core
|
import osc.core
|
||||||
import osc.oscerr
|
import osc.oscerr
|
||||||
import os
|
import os
|
||||||
@ -252,7 +260,6 @@ class TestRequest(OscTestCase):
|
|||||||
|
|
||||||
def test_action_from_xml1(self):
|
def test_action_from_xml1(self):
|
||||||
"""create action from xml"""
|
"""create action from xml"""
|
||||||
from xml.etree import cElementTree as ET
|
|
||||||
xml = """<action type="add_role">
|
xml = """<action type="add_role">
|
||||||
<target package="bar" project="foo" />
|
<target package="bar" project="foo" />
|
||||||
<person name="user" role="reader" />
|
<person name="user" role="reader" />
|
||||||
@ -270,7 +277,6 @@ class TestRequest(OscTestCase):
|
|||||||
|
|
||||||
def test_action_from_xml2(self):
|
def test_action_from_xml2(self):
|
||||||
"""create action from xml"""
|
"""create action from xml"""
|
||||||
from xml.etree import cElementTree as ET
|
|
||||||
xml = """<action type="submit">
|
xml = """<action type="submit">
|
||||||
<source package="bar" project="foo" />
|
<source package="bar" project="foo" />
|
||||||
<target package="bar" project="foobar" />
|
<target package="bar" project="foobar" />
|
||||||
@ -292,7 +298,6 @@ class TestRequest(OscTestCase):
|
|||||||
|
|
||||||
def test_action_from_xml3(self):
|
def test_action_from_xml3(self):
|
||||||
"""create action from xml (with acceptinfo element)"""
|
"""create action from xml (with acceptinfo element)"""
|
||||||
from xml.etree import cElementTree as ET
|
|
||||||
xml = """<action type="submit">
|
xml = """<action type="submit">
|
||||||
<source package="bar" project="testprj" />
|
<source package="bar" project="testprj" />
|
||||||
<target package="baz" project="foobar" />
|
<target package="baz" project="foobar" />
|
||||||
@ -316,13 +321,11 @@ class TestRequest(OscTestCase):
|
|||||||
|
|
||||||
def test_action_from_xml_unknown_type(self):
|
def test_action_from_xml_unknown_type(self):
|
||||||
"""try to create action from xml with unknown type"""
|
"""try to create action from xml with unknown type"""
|
||||||
from xml.etree import cElementTree as ET
|
|
||||||
xml = '<action type="foo"><source package="bar" project="foo" /></action>'
|
xml = '<action type="foo"><source package="bar" project="foo" /></action>'
|
||||||
self.assertRaises(osc.oscerr.WrongArgs, osc.core.Action.from_xml, ET.fromstring(xml))
|
self.assertRaises(osc.oscerr.WrongArgs, osc.core.Action.from_xml, ET.fromstring(xml))
|
||||||
|
|
||||||
def test_read_request1(self):
|
def test_read_request1(self):
|
||||||
"""read in a request"""
|
"""read in a request"""
|
||||||
from xml.etree import cElementTree as ET
|
|
||||||
xml = open(os.path.join(self._get_fixtures_dir(), 'test_read_request1.xml'), 'r').read().strip()
|
xml = open(os.path.join(self._get_fixtures_dir(), 'test_read_request1.xml'), 'r').read().strip()
|
||||||
r = osc.core.Request()
|
r = osc.core.Request()
|
||||||
r.read(ET.fromstring(xml))
|
r.read(ET.fromstring(xml))
|
||||||
@ -354,7 +357,6 @@ class TestRequest(OscTestCase):
|
|||||||
|
|
||||||
def test_read_request2(self):
|
def test_read_request2(self):
|
||||||
"""read in a request (with reviews)"""
|
"""read in a request (with reviews)"""
|
||||||
from xml.etree import cElementTree as ET
|
|
||||||
xml = open(os.path.join(self._get_fixtures_dir(), 'test_read_request2.xml'), 'r').read().strip()
|
xml = open(os.path.join(self._get_fixtures_dir(), 'test_read_request2.xml'), 'r').read().strip()
|
||||||
r = osc.core.Request()
|
r = osc.core.Request()
|
||||||
r.read(ET.fromstring(xml))
|
r.read(ET.fromstring(xml))
|
||||||
@ -393,7 +395,6 @@ class TestRequest(OscTestCase):
|
|||||||
|
|
||||||
def test_read_request3(self):
|
def test_read_request3(self):
|
||||||
"""read in a request (with an "empty" comment+description)"""
|
"""read in a request (with an "empty" comment+description)"""
|
||||||
from xml.etree import cElementTree as ET
|
|
||||||
xml = """<request creator="xyz" id="2">
|
xml = """<request creator="xyz" id="2">
|
||||||
<action type="set_bugowner">
|
<action type="set_bugowner">
|
||||||
<target project="foo" />
|
<target project="foo" />
|
||||||
@ -430,7 +431,6 @@ class TestRequest(OscTestCase):
|
|||||||
|
|
||||||
def test_request_list_view1(self):
|
def test_request_list_view1(self):
|
||||||
"""test the list_view method"""
|
"""test the list_view method"""
|
||||||
from xml.etree import cElementTree as ET
|
|
||||||
xml = open(os.path.join(self._get_fixtures_dir(), 'test_request_list_view1.xml'), 'r').read().strip()
|
xml = open(os.path.join(self._get_fixtures_dir(), 'test_request_list_view1.xml'), 'r').read().strip()
|
||||||
exp = """\
|
exp = """\
|
||||||
62 State:new By:Admin When:2010-12-29T14:57:25
|
62 State:new By:Admin When:2010-12-29T14:57:25
|
||||||
@ -448,7 +448,6 @@ class TestRequest(OscTestCase):
|
|||||||
|
|
||||||
def test_request_list_view2(self):
|
def test_request_list_view2(self):
|
||||||
"""test the list_view method (with history elements and description)"""
|
"""test the list_view method (with history elements and description)"""
|
||||||
from xml.etree import cElementTree as ET
|
|
||||||
xml = open(os.path.join(self._get_fixtures_dir(), 'test_request_list_view2.xml'), 'r').read().strip()
|
xml = open(os.path.join(self._get_fixtures_dir(), 'test_request_list_view2.xml'), 'r').read().strip()
|
||||||
r = osc.core.Request()
|
r = osc.core.Request()
|
||||||
r.read(ET.fromstring(xml))
|
r.read(ET.fromstring(xml))
|
||||||
@ -462,7 +461,6 @@ class TestRequest(OscTestCase):
|
|||||||
self.assertEqual(exp, r.list_view())
|
self.assertEqual(exp, r.list_view())
|
||||||
|
|
||||||
def test_request_str1(self):
|
def test_request_str1(self):
|
||||||
from xml.etree import cElementTree as ET
|
|
||||||
"""test the __str__ method"""
|
"""test the __str__ method"""
|
||||||
xml = open(os.path.join(self._get_fixtures_dir(), 'test_request_str1.xml'), 'r').read().strip()
|
xml = open(os.path.join(self._get_fixtures_dir(), 'test_request_str1.xml'), 'r').read().strip()
|
||||||
r = osc.core.Request()
|
r = osc.core.Request()
|
||||||
@ -496,7 +494,6 @@ History: 2010-12-12T00:00:00 creator revoked
|
|||||||
|
|
||||||
def test_request_str2(self):
|
def test_request_str2(self):
|
||||||
"""test the __str__ method"""
|
"""test the __str__ method"""
|
||||||
from xml.etree import cElementTree as ET
|
|
||||||
xml = """\
|
xml = """\
|
||||||
<request creator="creator" id="98765">
|
<request creator="creator" id="98765">
|
||||||
<action type="change_devel">
|
<action type="change_devel">
|
||||||
@ -527,7 +524,6 @@ Comment: <no comment>"""
|
|||||||
|
|
||||||
def test_legacy_request(self):
|
def test_legacy_request(self):
|
||||||
"""load old-style submitrequest"""
|
"""load old-style submitrequest"""
|
||||||
from xml.etree import cElementTree as ET
|
|
||||||
xml = """\
|
xml = """\
|
||||||
<request creator="olduser" id="1234" type="submit">
|
<request creator="olduser" id="1234" type="submit">
|
||||||
<submit>
|
<submit>
|
||||||
@ -563,7 +559,6 @@ Comment: <no comment>"""
|
|||||||
|
|
||||||
def test_get_actions(self):
|
def test_get_actions(self):
|
||||||
"""test get_actions method"""
|
"""test get_actions method"""
|
||||||
from xml.etree import cElementTree as ET
|
|
||||||
xml = open(os.path.join(self._get_fixtures_dir(), 'test_request_list_view1.xml'), 'r').read().strip()
|
xml = open(os.path.join(self._get_fixtures_dir(), 'test_request_list_view1.xml'), 'r').read().strip()
|
||||||
r = osc.core.Request()
|
r = osc.core.Request()
|
||||||
r.read(ET.fromstring(xml))
|
r.read(ET.fromstring(xml))
|
||||||
|
Loading…
Reference in New Issue
Block a user