Hello community,
here is the log from the commit of package python-xmlschema for
openSUSE:Leap:15.2 checked in at 2020-04-28 20:10:47
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2/python-xmlschema (Old)
and /work/SRC/openSUSE:Leap:15.2/.python-xmlschema.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-xmlschema"
Tue Apr 28 20:10:47 2020 rev:2 rq:795989 version:1.1.1
Changes:
--------
--- /work/SRC/openSUSE:Leap:15.2/python-xmlschema/python-xmlschema.changes
2020-03-27 16:48:16.955938910 +0100
+++
/work/SRC/openSUSE:Leap:15.2/.python-xmlschema.new.2738/python-xmlschema.changes
2020-04-28 20:10:48.220490217 +0200
@@ -2,7 +1,0 @@
-Tue Mar 24 15:10:44 UTC 2020 - [email protected]
-
-- version update to 1.1.2
- * Extension of validation tests with *XMLSchema11* validator
- * Fixed several bugs
-
--------------------------------------------------------------------
Old:
----
xmlschema-1.1.2.tar.gz
New:
----
xmlschema-1.1.1.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-xmlschema.spec ++++++
--- /var/tmp/diff_new_pack.TPJNWb/_old 2020-04-28 20:10:48.732491280 +0200
+++ /var/tmp/diff_new_pack.TPJNWb/_new 2020-04-28 20:10:48.736491289 +0200
@@ -19,20 +19,18 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define skip_python2 1
Name: python-xmlschema
-Version: 1.1.2
+Version: 1.1.1
Release: 0
Summary: An XML Schema validator and decoder
License: MIT
URL: https://github.com/brunato/xmlschema
Source:
https://files.pythonhosted.org/packages/source/x/xmlschema/xmlschema-%{version}.tar.gz
BuildRequires: %{python_module elementpath >= 1.4.0}
-BuildRequires: %{python_module lxml}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-elementpath >= 1.4.0
-Requires: python-lxml
BuildArch: noarch
%python_subpackages
++++++ xmlschema-1.1.2.tar.gz -> xmlschema-1.1.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlschema-1.1.2/CHANGELOG.rst
new/xmlschema-1.1.1/CHANGELOG.rst
--- old/xmlschema-1.1.2/CHANGELOG.rst 2020-03-22 17:03:21.000000000 +0100
+++ new/xmlschema-1.1.1/CHANGELOG.rst 2020-02-19 22:24:57.000000000 +0100
@@ -2,12 +2,6 @@
CHANGELOG
*********
-`v1.1.2`_ (2020-03-22)
-======================
-* Extension of validation tests with *XMLSchema11* validator
-* Fixed several bugs
-* Extended testing with Travis CI
-
`v1.1.1`_ (2020-02-19)
======================
* Change of *skip* validation mode with errors filtering in decode() or
encode()
@@ -308,4 +302,3 @@
.. _v1.0.18: https://github.com/brunato/xmlschema/compare/v1.0.17...v1.0.18
.. _v1.1.0: https://github.com/brunato/xmlschema/compare/v1.0.18...v1.1.0
.. _v1.1.1: https://github.com/brunato/xmlschema/compare/v1.1.0...v1.1.1
-.. _v1.1.2: https://github.com/brunato/xmlschema/compare/v1.1.1...v1.1.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlschema-1.1.2/PKG-INFO new/xmlschema-1.1.1/PKG-INFO
--- old/xmlschema-1.1.2/PKG-INFO 2020-03-22 19:41:36.000000000 +0100
+++ new/xmlschema-1.1.1/PKG-INFO 2020-02-19 22:33:28.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: xmlschema
-Version: 1.1.2
+Version: 1.1.1
Summary: An XML Schema validator and decoder
Home-page: https://github.com/brunato/xmlschema
Author: Davide Brunato
@@ -10,22 +10,6 @@
xmlschema
*********
- .. image:: https://img.shields.io/pypi/v/xmlschema.svg
- :target: https://pypi.python.org/pypi/xmlschema/
- .. image:: https://img.shields.io/pypi/pyversions/xmlschema.svg
- :target: https://pypi.python.org/pypi/xmlschema/
- .. image:: https://img.shields.io/pypi/implementation/xmlschema.svg
- :target: https://pypi.python.org/pypi/xmlschema/
- .. image:: https://img.shields.io/badge/License-MIT-blue.svg
- :alt: MIT License
- :target: https://lbesson.mit-license.org/
- .. image::
https://travis-ci.org/sissaschool/xmlschema.svg?branch=master
- :target: https://travis-ci.org/sissaschool/xmlschema
- .. image:: https://img.shields.io/pypi/dm/xmlschema.svg
- :target: https://pypi.python.org/pypi/xmlschema/
- .. image:: https://img.shields.io/badge/Maintained%3F-yes-green.svg
- :target:
https://GitHub.com/Naereen/StrapDown.js/graphs/commit-activity
-
.. xmlschema-introduction-start
The *xmlschema* library is an implementation of `XML Schema
<http://www.w3.org/2001/XMLSchema>`_
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlschema-1.1.2/README.rst
new/xmlschema-1.1.1/README.rst
--- old/xmlschema-1.1.2/README.rst 2020-03-19 09:52:19.000000000 +0100
+++ new/xmlschema-1.1.1/README.rst 2020-01-23 22:11:08.000000000 +0100
@@ -2,22 +2,6 @@
xmlschema
*********
-.. image:: https://img.shields.io/pypi/v/xmlschema.svg
- :target: https://pypi.python.org/pypi/xmlschema/
-.. image:: https://img.shields.io/pypi/pyversions/xmlschema.svg
- :target: https://pypi.python.org/pypi/xmlschema/
-.. image:: https://img.shields.io/pypi/implementation/xmlschema.svg
- :target: https://pypi.python.org/pypi/xmlschema/
-.. image:: https://img.shields.io/badge/License-MIT-blue.svg
- :alt: MIT License
- :target: https://lbesson.mit-license.org/
-.. image:: https://travis-ci.org/sissaschool/xmlschema.svg?branch=master
- :target: https://travis-ci.org/sissaschool/xmlschema
-.. image:: https://img.shields.io/pypi/dm/xmlschema.svg
- :target: https://pypi.python.org/pypi/xmlschema/
-.. image:: https://img.shields.io/badge/Maintained%3F-yes-green.svg
- :target: https://GitHub.com/Naereen/StrapDown.js/graphs/commit-activity
-
.. xmlschema-introduction-start
The *xmlschema* library is an implementation of `XML Schema
<http://www.w3.org/2001/XMLSchema>`_
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlschema-1.1.2/doc/conf.py
new/xmlschema-1.1.1/doc/conf.py
--- old/xmlschema-1.1.2/doc/conf.py 2020-03-13 23:03:13.000000000 +0100
+++ new/xmlschema-1.1.1/doc/conf.py 2020-02-19 22:24:57.000000000 +0100
@@ -62,7 +62,7 @@
# The short X.Y version.
version = '1.1'
# The full version, including alpha/beta/rc tags.
-release = '1.1.2'
+release = '1.1.1'
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlschema-1.1.2/doc/testing.rst
new/xmlschema-1.1.1/doc/testing.rst
--- old/xmlschema-1.1.2/doc/testing.rst 2020-02-19 22:42:32.000000000 +0100
+++ new/xmlschema-1.1.1/doc/testing.rst 2020-01-23 21:05:17.000000000 +0100
@@ -99,10 +99,9 @@
**--timeout=SEC**
Timeout for fetching resources (default=300).
-**--lax-encode**
- Use lax mode on encode checks (for cases where test data uses default or
- fixed values or some test data are skipped by wildcards processContents).
- Ignored on schema tests.
+**--skip**
+ Skip strict encoding checks (for cases where test data uses default or
fixed values
+ or some test data are skipped by wildcards processContents).
**--debug**
Activate the debug mode (only the cases with `--debug` are executed).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlschema-1.1.2/setup.py new/xmlschema-1.1.1/setup.py
--- old/xmlschema-1.1.2/setup.py 2020-03-13 23:02:19.000000000 +0100
+++ new/xmlschema-1.1.1/setup.py 2020-02-19 22:24:57.000000000 +0100
@@ -37,7 +37,7 @@
setup(
name='xmlschema',
- version='1.1.2',
+ version='1.1.1',
packages=['xmlschema'],
include_package_data=True,
setup_requires=['elementpath~=1.4.0'],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlschema-1.1.2/tests/check_etree_import.py
new/xmlschema-1.1.1/tests/check_etree_import.py
--- old/xmlschema-1.1.2/tests/check_etree_import.py 2020-03-22
18:38:59.000000000 +0100
+++ new/xmlschema-1.1.1/tests/check_etree_import.py 2020-01-23
21:05:17.000000000 +0100
@@ -41,16 +41,13 @@
# Check imported ElementTree
assert ElementTree._Element_Py is not ElementTree.Element, "ElementTree is
pure Python!"
- assert xmlschema.etree.ElementTree is ElementTree, \
- "xmlschema has a different ElementTree module!"
+ assert xmlschema.etree.ElementTree is ElementTree, "xmlschema has a
different ElementTree module!"
# Check ElementTree and pure Python ElementTree imported in xmlschema
PyElementTree = xmlschema.etree.PyElementTree
assert xmlschema.etree.ElementTree.Element is not
xmlschema.etree.ElementTree._Element_Py, \
"xmlschema's ElementTree is pure Python!"
- assert PyElementTree.Element is PyElementTree._Element_Py, \
- "PyElementTree is not pure Python!"
- assert xmlschema.etree.ElementTree is not PyElementTree, \
- "xmlschema ElementTree is PyElementTree!"
+ assert PyElementTree.Element is PyElementTree._Element_Py, "PyElementTree
is not pure Python!"
+ assert xmlschema.etree.ElementTree is not PyElementTree, "xmlschema
ElementTree is PyElementTree!"
print("\nTest OK: ElementTree import is working as expected!")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlschema-1.1.2/tests/test_cases/features/decoder/data.xml
new/xmlschema-1.1.1/tests/test_cases/features/decoder/data.xml
--- old/xmlschema-1.1.2/tests/test_cases/features/decoder/data.xml
2020-03-16 08:53:36.000000000 +0100
+++ new/xmlschema-1.1.1/tests/test_cases/features/decoder/data.xml
2020-01-23 21:05:17.000000000 +0100
@@ -11,5 +11,4 @@
<complex_boolean>false</complex_boolean>
<simple_boolean>true</simple_boolean>
<simple_boolean>false</simple_boolean>
- <date_and_time>2020-03-05T23:04:10.047</date_and_time>
</ns:data>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlschema-1.1.2/tests/test_cases/issues/issue_171/issue_171.xsd
new/xmlschema-1.1.1/tests/test_cases/issues/issue_171/issue_171.xsd
--- old/xmlschema-1.1.2/tests/test_cases/issues/issue_171/issue_171.xsd
2020-03-19 10:42:52.000000000 +0100
+++ new/xmlschema-1.1.1/tests/test_cases/issues/issue_171/issue_171.xsd
1970-01-01 01:00:00.000000000 +0100
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
- vc:minVersion="1.1">
- <xs:element name="tag">
- <xs:complexType>
- <xs:sequence/>
- <xs:attribute name="name" type="xs:string"/>
- <xs:attribute name="abc" type="xs:integer"/>
- <xs:attribute name="def" type="xs:integer"/>
- <xs:assert test="(@abc and not(@def)) or (not(@abc) and @def)"/>
- </xs:complexType>
- </xs:element>
-</xs:schema>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/xmlschema-1.1.2/tests/test_cases/issues/issue_171/issue_171b.xsd
new/xmlschema-1.1.1/tests/test_cases/issues/issue_171/issue_171b.xsd
--- old/xmlschema-1.1.2/tests/test_cases/issues/issue_171/issue_171b.xsd
2020-03-18 15:27:13.000000000 +0100
+++ new/xmlschema-1.1.1/tests/test_cases/issues/issue_171/issue_171b.xsd
1970-01-01 01:00:00.000000000 +0100
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
- vc:minVersion="1.1">
- <xs:element name="tag">
- <xs:complexType>
- <xs:sequence/>
- <xs:attribute name="name" type="xs:string"/>
- <xs:attribute name="abc" type="xs:float"/>
- <xs:attribute name="def" type="xs:float"/>
- <xs:assert test="(@abc and not(@def castable as xs:double)) or
- (not(@abc castable as xs:double) and @def)"/>
- </xs:complexType>
- </xs:element>
-</xs:schema>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlschema-1.1.2/tests/test_cases/testfiles
new/xmlschema-1.1.1/tests/test_cases/testfiles
--- old/xmlschema-1.1.2/tests/test_cases/testfiles 2020-03-19
19:23:22.000000000 +0100
+++ new/xmlschema-1.1.1/tests/test_cases/testfiles 2020-01-23
21:05:17.000000000 +0100
@@ -9,7 +9,6 @@
# Cases with schema examples
examples/collection/collection.xsd --inspect
-examples/collection/collection.xsd --inspect --version=1.1
examples/collection/collection.xml
examples/collection/collection2.xsd --inspect # key constraint
examples/collection/collection2.xml --errors 1
@@ -19,7 +18,6 @@
examples/collection/collection3bis.xml --errors 1
examples/collection/collection4.xml # Many XML comments inserted
examples/vehicles/vehicles.xsd --inspect
-examples/vehicles/vehicles.xsd --inspect --version=1.1
examples/vehicles/vehicles.xml
examples/vehicles/vehicles-1_error.xml --errors=1
examples/vehicles/vehicles-2_errors.xml --errors=2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlschema-1.1.2/tests/test_etree.py
new/xmlschema-1.1.1/tests/test_etree.py
--- old/xmlschema-1.1.2/tests/test_etree.py 2020-03-22 18:38:59.000000000
+0100
+++ new/xmlschema-1.1.1/tests/test_etree.py 2020-01-23 21:05:17.000000000
+0100
@@ -54,24 +54,19 @@
self.assertIs(importlib.import_module('xml.etree.ElementTree'),
ElementTree)
self.assertIs(xmlschema_etree.ElementTree, ElementTree)
- @unittest.skipIf(platform.system() != 'Linux', "Skip macOS and Windows
platforms")
+ @unittest.skipIf(platform.system() == 'Windows', "Run only for UNIX based
systems.")
def test_element_tree_import_script(self):
test_dir = os.path.dirname(__file__) or '.'
cmd = [os.path.join(test_dir, 'check_etree_import.py')]
process = subprocess.run(cmd, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
-
- stderr = process.stderr.decode('utf-8')
- self.assertTrue("ModuleNotFoundError" not in stderr,
- msg="Test script fails because a package is
missing:\n\n{}".format(stderr))
-
- self.assertIn("\nTest OK:", process.stdout.decode('utf-8'),
- msg="Wrong import of ElementTree after
xmlschema:\n\n{}".format(stderr))
+ output = process.stdout.decode('utf-8')
+ self.assertTrue("\nTest OK:" in output, msg="Wrong import of
ElementTree after xmlschema")
cmd.append('--before')
process = subprocess.run(cmd, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
- self.assertTrue("\nTest OK:" in process.stdout.decode('utf-8'),
- msg="Wrong import of ElementTree before
xmlschema:\n\n{}".format(stderr))
+ output = process.stdout.decode('utf-8')
+ self.assertTrue("\nTest OK:" in output, msg="Wrong import of
ElementTree before xmlschema")
def test_safe_xml_parser(self):
test_dir = os.path.dirname(__file__) or '.'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlschema-1.1.2/tests/test_namespaces.py
new/xmlschema-1.1.1/tests/test_namespaces.py
--- old/xmlschema-1.1.2/tests/test_namespaces.py 2020-03-22
15:58:48.000000000 +0100
+++ new/xmlschema-1.1.1/tests/test_namespaces.py 1970-01-01
01:00:00.000000000 +0100
@@ -1,217 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (c), 2016-2020, SISSA (International School for Advanced Studies).
-# All rights reserved.
-# This file is distributed under the terms of the MIT License.
-# See the file 'LICENSE' in the root directory of the present
-# distribution, or http://opensource.org/licenses/MIT.
-#
-# @author Davide Brunato <[email protected]>
-#
-import unittest
-import os
-import sys
-
-from xmlschema.testing import print_test_header
-from xmlschema.namespaces import XSD_NAMESPACE, XSI_NAMESPACE, \
- NamespaceResourcesMap, NamespaceMapper, NamespaceView
-
-
-CASES_DIR = os.path.join(os.path.dirname(__file__), '../test_cases')
-
-
-class TestNamespaceResourcesMap(unittest.TestCase):
-
- def test_init(self):
- nsmap = [('tns0', 'schema1.xsd')]
- self.assertEqual(NamespaceResourcesMap(), {})
- self.assertEqual(NamespaceResourcesMap(nsmap), {'tns0':
['schema1.xsd']})
- nsmap.append(('tns0', 'schema2.xsd'))
- self.assertEqual(NamespaceResourcesMap(nsmap), {'tns0':
['schema1.xsd', 'schema2.xsd']})
-
- @unittest.skipIf(sys.version_info[:2] < (3, 6), "Python 3.6+ needed")
- def test_repr(self):
- namespaces = NamespaceResourcesMap()
- namespaces['tns0'] = 'schema1.xsd'
- namespaces['tns1'] = 'schema2.xsd'
- self.assertEqual(repr(namespaces), "{'tns0': ['schema1.xsd'], 'tns1':
['schema2.xsd']}")
-
- def test_dictionary_methods(self):
- namespaces = NamespaceResourcesMap()
- namespaces['tns0'] = 'schema1.xsd'
- namespaces['tns1'] = 'schema2.xsd'
- self.assertEqual(namespaces, {'tns0': ['schema1.xsd'], 'tns1':
['schema2.xsd']})
-
- self.assertEqual(len(namespaces), 2)
- self.assertEqual(set(x for x in namespaces), {'tns0', 'tns1'})
-
- del namespaces['tns0']
- self.assertEqual(namespaces, {'tns1': ['schema2.xsd']})
- self.assertEqual(len(namespaces), 1)
-
- namespaces.clear()
- self.assertEqual(namespaces, {})
-
-
-class TestNamespaceMapper(unittest.TestCase):
-
- def test_init(self):
- namespaces = dict(xs=XSD_NAMESPACE, xsi=XSI_NAMESPACE)
- mapper = NamespaceMapper(namespaces)
- self.assertEqual(mapper, namespaces)
-
- def test_dictionary_methods(self):
- namespaces = dict(xs=XSD_NAMESPACE)
- mapper = NamespaceMapper(namespaces)
-
- mapper['xsi'] = XSI_NAMESPACE
- self.assertEqual(mapper, dict(xs=XSD_NAMESPACE, xsi=XSI_NAMESPACE))
-
- del mapper['xs']
- self.assertEqual(len(mapper), 1)
- self.assertEqual(mapper, dict(xsi=XSI_NAMESPACE))
-
- mapper.clear()
- self.assertEqual(mapper, {})
-
- def test_strip_namespaces(self):
- namespaces = dict(xs=XSD_NAMESPACE, xsi=XSI_NAMESPACE)
- mapper = NamespaceMapper(namespaces, strip_namespaces=True)
-
- self.assertEqual(mapper.map_qname('{%s}name' % XSD_NAMESPACE), 'name')
- self.assertEqual(mapper.map_qname('{unknown}name'), 'name')
-
- mapper.strip_namespaces = False
- self.assertEqual(mapper.map_qname('{%s}name' % XSD_NAMESPACE),
'xs:name')
- self.assertEqual(mapper.map_qname('{unknown}name'), '{unknown}name')
-
- def test_default_namespace(self):
- namespaces = dict(xs=XSD_NAMESPACE, xsi=XSI_NAMESPACE)
- mapper = NamespaceMapper(namespaces)
-
- self.assertIsNone(mapper.default_namespace)
- mapper[''] = 'tns0'
- self.assertEqual(mapper.default_namespace, 'tns0')
-
- def test_insert_item(self):
- namespaces = dict(xs=XSD_NAMESPACE, xsi=XSI_NAMESPACE)
- mapper = NamespaceMapper(namespaces)
-
- mapper.insert_item('xs', XSD_NAMESPACE)
- self.assertEqual(len(mapper), 2)
-
- mapper.insert_item('', XSD_NAMESPACE)
- self.assertEqual(len(mapper), 3)
- mapper.insert_item('', XSD_NAMESPACE)
- self.assertEqual(len(mapper), 3)
- mapper.insert_item('', 'tns0')
- self.assertEqual(len(mapper), 4)
-
- mapper.insert_item('xs', XSD_NAMESPACE)
- self.assertEqual(len(mapper), 4)
- mapper.insert_item('xs', 'tns1')
- self.assertEqual(len(mapper), 5)
- mapper.insert_item('xs', 'tns2')
- self.assertEqual(len(mapper), 6)
-
- def test_map_qname(self):
- namespaces = dict(xs=XSD_NAMESPACE, xsi=XSI_NAMESPACE)
- mapper = NamespaceMapper(namespaces)
-
- mapper.insert_item('', XSD_NAMESPACE)
- self.assertEqual(mapper.map_qname(''), '')
- self.assertEqual(mapper.map_qname('{%s}element' % XSD_NAMESPACE),
'xs:element')
- mapper.pop('xs')
- self.assertEqual(mapper.map_qname('{%s}element' % XSD_NAMESPACE),
'element')
-
- with self.assertRaises(ValueError) as ctx:
- mapper.map_qname('{%selement' % XSD_NAMESPACE)
- self.assertIn("wrong format", str(ctx.exception))
-
- with self.assertRaises(ValueError) as ctx:
- mapper.map_qname('{%s}element}' % XSD_NAMESPACE)
- self.assertIn("wrong format", str(ctx.exception))
-
- with self.assertRaises(TypeError) as ctx:
- mapper.map_qname(None)
- self.assertIn("must be a string-like object", str(ctx.exception))
-
- with self.assertRaises(TypeError) as ctx:
- mapper.map_qname(99)
- self.assertIn("must be a string-like object", str(ctx.exception))
-
- def test_unmap_qname(self):
- namespaces = dict(xs=XSD_NAMESPACE, xsi=XSI_NAMESPACE)
- mapper = NamespaceMapper(namespaces)
-
- self.assertEqual(mapper.unmap_qname(''), '')
- self.assertEqual(mapper.unmap_qname('xs:element'), '{%s}element' %
XSD_NAMESPACE)
- self.assertEqual(mapper.unmap_qname('{foo}bar'), '{foo}bar')
- self.assertEqual(mapper.unmap_qname('xsd:element'), 'xsd:element')
-
- with self.assertRaises(ValueError) as ctx:
- mapper.unmap_qname('xs::element')
- self.assertIn("wrong format", str(ctx.exception))
-
- with self.assertRaises(TypeError) as ctx:
- mapper.unmap_qname(None)
- self.assertIn("must be a string-like object", str(ctx.exception))
-
- with self.assertRaises(TypeError) as ctx:
- mapper.unmap_qname(99)
- self.assertIn("must be a string-like object", str(ctx.exception))
-
- self.assertEqual(mapper.unmap_qname('element'), 'element')
- mapper[''] = 'foo'
- self.assertEqual(mapper.unmap_qname('element'), '{foo}element')
- self.assertEqual(mapper.unmap_qname('element',
name_table=['element']), 'element')
-
- def test_transfer(self):
- mapper = NamespaceMapper(namespaces={'xs': XSD_NAMESPACE, 'xsi':
XSI_NAMESPACE})
-
- namespaces = {'xs': 'foo'}
- mapper.transfer(namespaces)
- self.assertEqual(len(mapper), 2)
- self.assertEqual(len(namespaces), 1)
-
- namespaces = {'xs': XSD_NAMESPACE}
- mapper.transfer(namespaces)
- self.assertEqual(len(mapper), 2)
- self.assertEqual(len(namespaces), 0)
-
- namespaces = {'xs': XSI_NAMESPACE, 'tns0': 'http://xmlschema.test/ns'}
- mapper.transfer(namespaces)
- self.assertEqual(len(mapper), 3)
- self.assertIn('tns0', mapper)
- self.assertEqual(len(namespaces), 1)
- self.assertIn('xs', namespaces)
-
- mapper = NamespaceMapper()
- namespaces = {'xs': XSD_NAMESPACE}
- mapper.transfer(namespaces)
- self.assertEqual(mapper, {'xs': XSD_NAMESPACE})
- self.assertEqual(namespaces, {})
-
-
-class TestNamespaceView(unittest.TestCase):
-
- def test_init(self):
- qnames = {'{tns0}name0': 0, '{tns1}name1': 1, 'name2': 2}
- ns_view = NamespaceView(qnames, 'tns1')
- self.assertEqual(ns_view, {'name1': 1})
-
- def test_repr(self):
- qnames = {'{tns0}name0': 0, '{tns1}name1': 1, 'name2': 2}
- ns_view = NamespaceView(qnames, 'tns0')
- self.assertEqual(repr(ns_view), "NamespaceView({'name0': 0})")
-
- def test_as_dict(self):
- qnames = {'{tns0}name0': 0, '{tns1}name1': 1, '{tns1}name2': 2,
'name3': 3}
- ns_view = NamespaceView(qnames, 'tns1')
- self.assertEqual(ns_view.as_dict(), {'name1': 1, 'name2': 2})
- self.assertEqual(ns_view.as_dict(True), {'{tns1}name1': 1,
'{tns1}name2': 2})
-
-
-if __name__ == '__main__':
- print_test_header()
- unittest.main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlschema-1.1.2/tests/test_qnames.py
new/xmlschema-1.1.1/tests/test_qnames.py
--- old/xmlschema-1.1.2/tests/test_qnames.py 2020-03-21 18:51:44.000000000
+0100
+++ new/xmlschema-1.1.1/tests/test_qnames.py 1970-01-01 01:00:00.000000000
+0100
@@ -1,55 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (c), 2016-2020, SISSA (International School for Advanced Studies).
-# All rights reserved.
-# This file is distributed under the terms of the MIT License.
-# See the file 'LICENSE' in the root directory of the present
-# distribution, or http://opensource.org/licenses/MIT.
-#
-# @author Davide Brunato <[email protected]>
-#
-import unittest
-
-from xmlschema.testing import print_test_header
-from xmlschema.qnames import get_namespace, get_qname, local_name, \
- qname_to_prefixed, qname_to_extended, XSD_ELEMENT
-from xmlschema.namespaces import XSD_NAMESPACE
-
-
-class TestQNameHelpers(unittest.TestCase):
-
- def test_get_namespace(self):
- self.assertEqual(get_namespace(''), '')
- self.assertEqual(get_namespace('local'), '')
- self.assertEqual(get_namespace(XSD_ELEMENT), XSD_NAMESPACE)
- self.assertEqual(get_namespace('{wrong'), '')
-
- def test_get_qname(self):
- self.assertEqual(get_qname(XSD_NAMESPACE, 'element'), XSD_ELEMENT)
-
- def test_local_name(self):
- self.assertEqual(local_name('element'), 'element')
- self.assertEqual(local_name(XSD_ELEMENT), 'element')
- self.assertEqual(local_name('xs:element'), 'element')
-
- def test_qname_to_prefixed(self):
- namespaces = {'xsd': XSD_NAMESPACE}
- self.assertEqual(qname_to_prefixed(XSD_ELEMENT, namespaces),
'xsd:element')
-
- def test_qname_to_extended(self):
- namespaces = {'xsd': XSD_NAMESPACE}
- self.assertEqual(qname_to_extended('xsd:element', namespaces),
XSD_ELEMENT)
- self.assertEqual(qname_to_extended(XSD_ELEMENT, namespaces),
XSD_ELEMENT)
- self.assertEqual(qname_to_extended('xsd:element', namespaces={}),
'xsd:element')
- self.assertEqual(qname_to_extended('', namespaces), '')
-
- namespaces = {'xs': XSD_NAMESPACE}
- self.assertEqual(qname_to_extended('xsd:element', namespaces),
'xsd:element')
-
- namespaces = {'': XSD_NAMESPACE}
- self.assertEqual(qname_to_extended('element', namespaces), XSD_ELEMENT)
-
-
-if __name__ == '__main__':
- print_test_header()
- unittest.main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlschema-1.1.2/tests/test_resources.py
new/xmlschema-1.1.1/tests/test_resources.py
--- old/xmlschema-1.1.2/tests/test_resources.py 2020-03-22 18:13:42.000000000
+0100
+++ new/xmlschema-1.1.1/tests/test_resources.py 2020-02-19 22:24:57.000000000
+0100
@@ -107,9 +107,7 @@
self.check_url(normalize_url('other.xsd', 'file:///home/'),
'file:///home/other.xsd')
self.check_url(normalize_url('file:other.xsd', 'file:///home'),
'file:///home/other.xsd')
- cwd = os.getcwd()
- cwd_url = 'file://{}/'.format(cwd) if cwd.startswith('/') else
'file:///{}/'.format(cwd)
-
+ cwd_url = 'file://{}/'.format(os.getcwd())
self.check_url(normalize_url('file:other.xsd', keep_relative=True),
'file:other.xsd')
self.check_url(normalize_url('file:other.xsd'), cwd_url + 'other.xsd')
self.check_url(normalize_url('file:other.xsd', 'http://site/base',
True), 'file:other.xsd')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlschema-1.1.2/tests/validation/test_decoding.py
new/xmlschema-1.1.1/tests/validation/test_decoding.py
--- old/xmlschema-1.1.2/tests/validation/test_decoding.py 2020-03-16
09:01:33.000000000 +0100
+++ new/xmlschema-1.1.1/tests/validation/test_decoding.py 2020-02-19
22:24:34.000000000 +0100
@@ -245,12 +245,11 @@
{'$': 'ISO-27001', '@Year': 2009}
],
'decimal_value': [Decimal('1')],
- 'menù': 'baccalà mantecato',
- 'complex_boolean': [
+ u'menù': u'baccalà mantecato',
+ u'complex_boolean': [
{'$': True, '@Type': 2}, {'$': False, '@Type': 1}, True, False
],
- 'simple_boolean': [True, False],
- 'date_and_time': '2020-03-05T23:04:10.047', # xs:dateTime is not decoded
for default
+ u'simple_boolean': [True, False]
}
@@ -295,8 +294,7 @@
xml_dict = self.col_schema.to_dict(col_xml_tree,
namespaces=self.col_namespaces)
self.assertEqual(xml_dict, COLLECTION_DICT)
- xml_dict = xmlschema.to_dict(col_xml_tree, self.col_schema.url,
- namespaces=self.col_namespaces)
+ xml_dict = xmlschema.to_dict(col_xml_tree, self.col_schema.url,
namespaces=self.col_namespaces)
self.assertEqual(xml_dict, COLLECTION_DICT)
def test_to_dict_from_string(self):
@@ -309,15 +307,13 @@
xml_dict = self.vh_schema.to_dict(vh_xml_string,
namespaces=self.vh_namespaces)
self.assertEqual(xml_dict, VEHICLES_DICT)
- xml_dict = xmlschema.to_dict(vh_xml_string, self.vh_schema.url,
- namespaces=self.vh_namespaces)
+ xml_dict = xmlschema.to_dict(vh_xml_string, self.vh_schema.url,
namespaces=self.vh_namespaces)
self.assertEqual(xml_dict, VEHICLES_DICT)
xml_dict = self.col_schema.to_dict(col_xml_string,
namespaces=self.col_namespaces)
self.assertTrue(xml_dict, COLLECTION_DICT)
- xml_dict = xmlschema.to_dict(col_xml_string, self.col_schema.url,
- namespaces=self.col_namespaces)
+ xml_dict = xmlschema.to_dict(col_xml_string, self.col_schema.url,
namespaces=self.col_namespaces)
self.assertTrue(xml_dict, COLLECTION_DICT)
def test_date_decoding(self):
@@ -342,8 +338,7 @@
self.assertEqual(data, '2019-01-01')
self.assertEqual(errors, [])
- data, errors = schema.to_dict("<Date>2019-01-01</Date>",
validation='lax',
- datetime_types=True)
+ data, errors = schema.to_dict("<Date>2019-01-01</Date>",
validation='lax', datetime_types=True)
self.assertEqual(data, datatypes.Date10.fromstring('2019-01-01'))
self.assertEqual(errors, [])
@@ -352,8 +347,7 @@
self.assertEqual(len(errors), 1)
self.assertIn('value has to be greater or equal than', str(errors[0]))
- data, errors = schema.to_dict("<Date>1999-12-31</Date>",
validation='lax',
- datetime_types=True)
+ data, errors = schema.to_dict("<Date>1999-12-31</Date>",
validation='lax', datetime_types=True)
self.assertEqual(data, datatypes.Date10.fromstring('1999-12-31'))
self.assertEqual(len(errors), 1)
@@ -534,8 +528,7 @@
def test_default_converter(self):
self.assertEqual(self.col_schema.to_dict(self.col_xml_file),
COLLECTION_DICT)
- default_dict = self.col_schema.to_dict(self.col_xml_file,
-
converter=xmlschema.XMLSchemaConverter)
+ default_dict = self.col_schema.to_dict(self.col_xml_file,
converter=xmlschema.XMLSchemaConverter)
self.assertEqual(default_dict, COLLECTION_DICT)
default_dict_root = self.col_schema.to_dict(self.col_xml_file,
preserve_root=True)
@@ -550,8 +543,7 @@
self.assertEqual(visitor_dict_root, {'col:collection':
COLLECTION_DICT})
def test_parker_converter(self):
- parker_dict = self.col_schema.to_dict(self.col_xml_file,
-
converter=xmlschema.ParkerConverter)
+ parker_dict = self.col_schema.to_dict(self.col_xml_file,
converter=xmlschema.ParkerConverter)
self.assertEqual(parker_dict, COLLECTION_PARKER)
parker_dict_root = self.col_schema.to_dict(
@@ -582,8 +574,7 @@
xml_data_1 = xsd_schema.to_dict(xml_string_1)
xml_data_2 = xsd_schema.to_dict(xml_string_2)
self.assertTrue(isinstance(xml_data_1['bar'], type(xml_data_2['bar'])),
- msg="XSD with an array that return a single element
from "
- "xml must still yield a list.")
+ msg="XSD with an array that return a single element
from xml must still yield a list.")
def test_any_type(self):
any_type = xmlschema.XMLSchema.meta_schema.types['anyType']
@@ -643,11 +634,9 @@
self.check_decode(base64_length4_type, base64.b64encode(b'abcef'),
XMLSchemaValidationError)
base64_length5_type = self.st_schema.types['base64Length5']
- self.check_decode(base64_length5_type, base64.b64encode(b'1234'),
- XMLSchemaValidationError)
+ self.check_decode(base64_length5_type, base64.b64encode(b'1234'),
XMLSchemaValidationError)
self.check_decode(base64_length5_type, base64.b64encode(b'12345'),
u'MTIzNDU=')
- self.check_decode(base64_length5_type, base64.b64encode(b'123456'),
- XMLSchemaValidationError)
+ self.check_decode(base64_length5_type, base64.b64encode(b'123456'),
XMLSchemaValidationError)
def test_decimal_type(self):
schema = self.get_schema("""
@@ -693,9 +682,8 @@
def test_default_namespace(self):
# Issue #77
xs = xmlschema.XMLSchema("""<?xml version="1.0" encoding="UTF-8"?>
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
- targetNamespace="http://example.com/foo">
- <xs:element name="foo" type="xs:string" />
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://example.com/foo">
+ <xs:element name="foo" type="xs:string" />
</xs:schema>""")
self.assertEqual(xs.to_dict("""<foo
xmlns="http://example.com/foo">bar</foo>""",
path='/foo', namespaces={'':
'http://example.com/foo'}), 'bar')
@@ -703,9 +691,7 @@
path='/foo', namespaces={'':
'http://example.com/foo'}), None)
def test_complex_with_simple_content_restriction(self):
- xs = self.schema_class(
-
self.casepath('features/derivations/complex-with-simple-content-restriction.xsd')
- )
+ xs =
self.schema_class(self.casepath('features/derivations/complex-with-simple-content-restriction.xsd'))
self.assertTrue(xs.is_valid('<value>10</value>'))
self.assertFalse(xs.is_valid('<value>alpha</value>'))
self.assertEqual(xs.decode('<value>10</value>'), 10)
@@ -750,11 +736,9 @@
self.assertEqual(schema.to_dict("<root>text</root>",
use_defaults=False),
{'@attrWithFixed': 'fixed_value', '$': 'text'})
- self.assertEqual(schema.to_dict("""<root
attr="attr_value">text</root>""",
- use_defaults=False),
+ self.assertEqual(schema.to_dict("""<root
attr="attr_value">text</root>""", use_defaults=False),
{'$': 'text', '@attr': 'attr_value',
'@attrWithFixed': 'fixed_value'})
- self.assertEqual(schema.to_dict("<root/>", use_defaults=False),
- {'@attrWithFixed': 'fixed_value'})
+ self.assertEqual(schema.to_dict("<root/>", use_defaults=False),
{'@attrWithFixed': 'fixed_value'})
self.assertEqual(schema.to_dict("<simple_root/>"), 'default_value')
self.assertIsNone(schema.to_dict("<simple_root/>", use_defaults=False))
@@ -777,8 +761,7 @@
schema = self.schema_class(xsd_text)
self.assertIsNone(schema.to_dict("<simple_root>alpha</simple_root>",
validation='lax')[0])
- self.assertEqual(schema.to_dict("<root int_attr='10'>20</root>"),
- {'@int_attr': 10, '$': 20})
+ self.assertEqual(schema.to_dict("<root int_attr='10'>20</root>"),
{'@int_attr': 10, '$': 20})
self.assertEqual(schema.to_dict("<root int_attr='wrong'>20</root>",
validation='lax')[0],
{'@int_attr': None, '$': 20})
self.assertEqual(schema.to_dict("<root int_attr='wrong'>20</root>",
validation='skip'),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlschema-1.1.2/tests/validation/test_validation.py
new/xmlschema-1.1.1/tests/validation/test_validation.py
--- old/xmlschema-1.1.2/tests/validation/test_validation.py 2020-03-19
18:35:12.000000000 +0100
+++ new/xmlschema-1.1.1/tests/validation/test_validation.py 2020-01-23
21:05:17.000000000 +0100
@@ -44,19 +44,6 @@
def test_issue_064(self):
self.check_validity(self.st_schema, '<name xmlns="ns"></name>', False)
- def test_issue_171(self):
- # First schema has an assert with naive check that maps '0' to False
('0'--> 0--> false)
- schema =
xmlschema.XMLSchema11(self.casepath('issues/issue_171/issue_171.xsd'))
- self.check_validity(schema, '<tag name="test" abc="10" def="0"/>',
True)
- self.check_validity(schema, '<tag name="test" abc="10" def="1"/>',
False)
- self.check_validity(schema, '<tag name="test" abc="10"/>', True)
-
- # Same schema with a more reliable assert expression
- schema =
xmlschema.XMLSchema11(self.casepath('issues/issue_171/issue_171b.xsd'))
- self.check_validity(schema, '<tag name="test" abc="10" def="0"/>',
False)
- self.check_validity(schema, '<tag name="test" abc="10" def="1"/>',
False)
- self.check_validity(schema, '<tag name="test" abc="10"/>', True)
-
def test_document_validate_api(self):
self.assertIsNone(xmlschema.validate(self.vh_xml_file))
self.assertIsNone(xmlschema.validate(self.vh_xml_file,
use_defaults=False))
@@ -75,8 +62,7 @@
self.assertEqual('Path: /vhx:vehicles/vhx:cars', path_line)
else:
self.assertTrue(
- 'Path: /vh:vehicles/vh:cars' == path_line or
- 'Path: /vhx:vehicles/vhx:cars', path_line
+ 'Path: /vh:vehicles/vh:cars' == path_line or 'Path:
/vhx:vehicles/vhx:cars', path_line
) # Due to unordered dicts
# Issue #80
@@ -94,11 +80,10 @@
source.root[1].clear()
xsd_element = self.col_schema.elements['collection']
- self.assertRaises(XMLSchemaValidationError, xsd_element.decode,
source.root,
- namespaces=namespaces)
+ self.assertRaises(XMLSchemaValidationError, xsd_element.decode,
source.root, namespaces=namespaces)
for _ in xsd_element.iter_decode(source.root, 'strict',
namespaces=namespaces,
- source=source, max_depth=1):
+ source=source, max_depth=1):
del _
self.assertIsNone(xmlschema.validate(self.col_xml_file, lazy=True))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlschema-1.1.2/tests/validators/test_exceptions.py
new/xmlschema-1.1.1/tests/validators/test_exceptions.py
--- old/xmlschema-1.1.2/tests/validators/test_exceptions.py 2020-03-21
17:56:32.000000000 +0100
+++ new/xmlschema-1.1.1/tests/validators/test_exceptions.py 1970-01-01
01:00:00.000000000 +0100
@@ -1,220 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (c), 2016-2020, SISSA (International School for Advanced Studies).
-# All rights reserved.
-# This file is distributed under the terms of the MIT License.
-# See the file 'LICENSE' in the root directory of the present
-# distribution, or http://opensource.org/licenses/MIT.
-#
-# @author Davide Brunato <[email protected]>
-#
-import unittest
-import os
-import io
-import xml.etree.ElementTree as ElementTree
-import lxml.etree
-
-from xmlschema.testing import print_test_header
-from xmlschema import XMLSchema, XMLResource
-from xmlschema.validators.exceptions import XMLSchemaValidatorError, \
- XMLSchemaNotBuiltError, XMLSchemaModelDepthError,
XMLSchemaValidationError, \
- XMLSchemaChildrenValidationError
-
-CASES_DIR = os.path.join(os.path.dirname(__file__), '../test_cases')
-
-
-class TestValidatorExceptions(unittest.TestCase):
-
- def test_exception_init(self):
- xs = XMLSchema(os.path.join(CASES_DIR,
'examples/vehicles/vehicles.xsd'))
-
- with self.assertRaises(ValueError) as ctx:
- XMLSchemaValidatorError(xs, 'unknown error', elem='wrong')
- self.assertIn("'elem' attribute requires an Element",
str(ctx.exception))
-
- error = XMLSchemaNotBuiltError(xs, 'schema not built!')
- self.assertEqual(error.message, 'schema not built!')
-
- schema = XMLSchema("""
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xs:group name="group1">
- <xs:choice>
- <xs:element name="root" type="xs:integer"/>
- </xs:choice>
- </xs:group>
- </xs:schema>""")
-
- error = XMLSchemaModelDepthError(schema.groups['group1'])
- self.assertEqual("maximum model recursion depth exceeded",
error.message[:38])
-
- def test_exception_repr(self):
- xs = XMLSchema(os.path.join(CASES_DIR,
'examples/vehicles/vehicles.xsd'))
-
- error = XMLSchemaValidatorError(xs, 'unknown error')
- self.assertEqual(str(error), 'unknown error')
- self.assertEqual(error.msg, 'unknown error')
-
- error = XMLSchemaValidatorError(xs, 'unknown error', elem=xs.root)
- lines = str(error).split('\n')
-
- self.assertEqual(lines[0], 'unknown error:')
- self.assertEqual(lines[2], 'Schema:')
- self.assertTrue(lines[4].strip().startswith('<xs:schema '))
- self.assertEqual(lines[-2].strip(), '</xs:schema>')
-
- schema = XMLSchema("""
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xs:element name="root" type="xs:integer"/>
- </xs:schema>""")
- root = lxml.etree.XML('<root a="10"/>')
-
- with self.assertRaises(XMLSchemaValidationError) as ctx:
- schema.validate(root)
-
- lines = str(ctx.exception).split('\n')
- self.assertEqual(lines[0], "failed validating {'a': '10'} with
XsdAttributeGroup():")
- self.assertEqual(lines[2], "Reason: 'a' attribute not allowed for
element.")
- self.assertEqual(lines[8], "Instance (line 1):")
- self.assertEqual(lines[12], "Path: /root")
-
- self.assertEqual(repr(ctx.exception),
"XMLSchemaValidationError(reason=\"'a' "
- "attribute not allowed for
element.\")")
-
- error = XMLSchemaValidationError(schema.elements['root'], root)
- self.assertIsNone(error.reason)
- self.assertNotIn("Reason:", str(error))
- self.assertIn("Schema:", str(error))
-
- error = XMLSchemaValidationError(schema, root)
- self.assertNotIn("Reason:", str(error))
- self.assertNotIn("Schema:", str(error))
-
- error = XMLSchemaValidationError(schema, 10)
- self.assertEqual(str(error), "failed validating 10 with
XMLSchema10(namespace='')")
-
- def test_setattr(self):
- schema = XMLSchema("""
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xs:element name="root" type="xs:integer"/>
- </xs:schema>""")
-
- root = ElementTree.XML('<root a="10"/>')
- with self.assertRaises(XMLSchemaValidationError) as ctx:
- schema.validate(root)
-
- self.assertIsInstance(ctx.exception.source, XMLResource)
- self.assertFalse(ctx.exception.source.is_lazy())
-
- resource = XMLResource(io.StringIO('<root a="10"/>'), lazy=True)
- with self.assertRaises(XMLSchemaValidationError) as ctx:
- schema.validate(resource)
-
- self.assertIsInstance(ctx.exception.source, XMLResource)
- self.assertTrue(ctx.exception.source.is_lazy())
- self.assertIsNone(ctx.exception.elem)
- self.assertEqual(ctx.exception.source, resource)
- self.assertEqual(ctx.exception.path, '/root')
-
- def test_properties(self):
- schema = XMLSchema("""
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xs:element name="root" type="xs:integer"/>
- </xs:schema>""")
-
- root = lxml.etree.XML('<root a="10"/>')
- with self.assertRaises(XMLSchemaValidationError) as ctx:
- schema.validate(root)
-
- self.assertEqual(ctx.exception.sourceline, 1)
- self.assertEqual(ctx.exception.root, root)
-
- xsd_file = os.path.join(CASES_DIR, 'examples/vehicles/vehicles.xsd')
- xs = XMLSchema(xsd_file)
-
- with self.assertRaises(XMLSchemaValidatorError) as ctx:
- raise XMLSchemaValidatorError(xs, 'unknown error')
-
- self.assertIsNone(ctx.exception.root)
- self.assertIsNone(ctx.exception.schema_url)
- self.assertEqual(ctx.exception.origin_url, xs.source.url)
- self.assertIsNone(XMLSchemaValidatorError(None, 'unknown
error').origin_url)
-
- def test_children_validation_error(self):
- schema = XMLSchema("""
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xs:element name="a">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="b1" type="xs:string"/>
- <xs:element name="b2" type="xs:string"/>
- <xs:element name="b3" type="xs:string" minOccurs="2"
maxOccurs="3"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:schema>""")
-
- with self.assertRaises(XMLSchemaChildrenValidationError) as ctx:
- schema.validate('<a><b1/><b2/><b3/><b3/><b3/><b3/></a>')
-
- lines = str(ctx.exception).split('\n')
- self.assertEqual(lines[2], "Reason: Unexpected child with tag 'b3' at
position 6.")
- self.assertEqual(lines[-2], "Path: /a")
-
- with self.assertRaises(XMLSchemaChildrenValidationError) as ctx:
- schema.validate('<a><b1/><b2/><b3/></a>')
-
- lines = str(ctx.exception).split('\n')
- self.assertEqual(lines[2][:51], "Reason: The content of element 'a' is
not complete.")
- self.assertEqual(lines[-2], "Path: /a")
-
- root = ElementTree.XML('<a><b1/><b2/><b2/><b3/><b3/><b3/></a>')
- validator = schema.elements['a'].type.content_type
- with self.assertRaises(XMLSchemaChildrenValidationError) as ctx:
- raise XMLSchemaChildrenValidationError(validator, root, 2,
validator[1], 2)
-
- lines = str(ctx.exception).split('\n')
- self.assertTrue(lines[2].endswith("occurs 2 times but the maximum is
1."))
-
- schema = XMLSchema("""
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xs:element name="a">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="b1" type="xs:string"/>
- <xs:any/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:schema>""")
-
- with self.assertRaises(XMLSchemaChildrenValidationError) as ctx:
- schema.validate('<a><b1/></a>')
-
- lines = str(ctx.exception).split('\n')
- self.assertTrue(lines[2].endswith("Tag from \'##any\' namespace/s
expected."))
-
- schema = XMLSchema("""
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xs:element name="a">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="b1" type="xs:string"/>
- <xs:choice>
- <xs:any namespace="tns0" processContents="lax"/>
- <xs:element name="b2" type="xs:string"/>
- </xs:choice>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- </xs:schema>""")
-
- with self.assertRaises(XMLSchemaChildrenValidationError) as ctx:
- schema.validate('<a><b1/></a>')
-
- lines = str(ctx.exception).split('\n')
- self.assertTrue(lines[2].endswith("Tag b2 expected."))
-
-
-if __name__ == '__main__':
- print_test_header()
- unittest.main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlschema-1.1.2/tests/validators/test_xsdbase.py
new/xmlschema-1.1.1/tests/validators/test_xsdbase.py
--- old/xmlschema-1.1.2/tests/validators/test_xsdbase.py 2020-03-22
17:54:12.000000000 +0100
+++ new/xmlschema-1.1.1/tests/validators/test_xsdbase.py 2020-02-19
22:24:57.000000000 +0100
@@ -38,9 +38,9 @@
validator = XsdValidator()
tmpl = '<xmlschema.validators.xsdbase.XsdValidator object at {}>'
string_repr = str(validator)
- if platform.python_implementation() == 'PyPy' or platform.system() ==
'Windows':
+ if platform.python_implementation() == 'PyPy':
string_repr = re.sub(r'0x[0]+', '0x', string_repr, 1)
- self.assertEqual(string_repr.lower(),
tmpl.format(hex(id(validator))).lower())
+ self.assertEqual(string_repr, tmpl.format(hex(id(validator))))
def test_parse_error(self):
xsd_file = os.path.join(CASES_DIR, 'examples/vehicles/vehicles.xsd')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlschema-1.1.2/xmlschema/__init__.py
new/xmlschema-1.1.1/xmlschema/__init__.py
--- old/xmlschema-1.1.2/xmlschema/__init__.py 2020-03-13 23:02:43.000000000
+0100
+++ new/xmlschema-1.1.1/xmlschema/__init__.py 2020-02-19 22:24:57.000000000
+0100
@@ -29,7 +29,7 @@
XsdGlobals, XMLSchemaBase, XMLSchema, XMLSchema10, XMLSchema11
)
-__version__ = '1.1.2'
+__version__ = '1.1.1'
__author__ = "Davide Brunato"
__contact__ = "[email protected]"
__copyright__ = "Copyright 2016-2020, SISSA"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlschema-1.1.2/xmlschema/namespaces.py
new/xmlschema-1.1.1/xmlschema/namespaces.py
--- old/xmlschema-1.1.2/xmlschema/namespaces.py 2020-03-22 15:47:58.000000000
+0100
+++ new/xmlschema-1.1.1/xmlschema/namespaces.py 2020-01-23 21:05:17.000000000
+0100
@@ -14,7 +14,6 @@
import re
from collections.abc import MutableMapping, Mapping
-from .exceptions import XMLSchemaValueError, XMLSchemaTypeError
from .qnames import get_namespace, local_name
###
@@ -197,17 +196,20 @@
try:
if qname[0] != '{' or not self._namespaces:
return qname
- namespace, local_part = qname[1:].split('}')
except IndexError:
return qname
- except ValueError:
- raise XMLSchemaValueError("the argument 'qname' has a wrong
format: %r" % qname)
- except TypeError:
- raise XMLSchemaTypeError("the argument 'qname' must be a
string-like object")
-
- for prefix, uri in sorted(self._namespaces.items(), reverse=True):
- if uri == namespace:
- return '%s:%s' % (prefix, local_part) if prefix else local_part
+
+ qname_uri = get_namespace(qname)
+ for prefix, uri in self._namespaces.items():
+ if uri != qname_uri:
+ continue
+ if prefix:
+ self._namespaces[prefix] = uri
+ return qname.replace(u'{%s}' % uri, u'%s:' % prefix)
+ else:
+ if uri:
+ self._namespaces[prefix] = uri
+ return qname.replace(u'{%s}' % uri, '')
else:
return qname
@@ -225,29 +227,27 @@
:return: a QName in extended format or a local name.
"""
try:
- if qname[0] == '{' or not self._namespaces:
+ if qname[0] == '{' or not self:
return qname
- prefix, name = qname.split(':')
except IndexError:
return qname
+
+ try:
+ prefix, name = qname.split(':', 1)
except ValueError:
- if ':' in qname:
- raise XMLSchemaValueError("the argument 'qname' has a wrong
format: %r" % qname)
if not self._namespaces.get(''):
return qname
elif name_table is None or qname not in name_table:
return '{%s}%s' % (self._namespaces.get(''), qname)
else:
return qname
- except (TypeError, AttributeError):
- raise XMLSchemaTypeError("the argument 'qname' must be a
string-like object")
else:
try:
uri = self._namespaces[prefix]
except KeyError:
return qname
else:
- return '{%s}%s' % (uri, name) if uri else name
+ return u'{%s}%s' % (uri, name) if uri else name
unmap_qname = _unmap_qname
@@ -255,24 +255,17 @@
def _local_name(qname, *_args, **_kwargs):
return local_name(qname)
- def transfer(self, namespaces):
- """
- Transfers compatible prefix/namespace registrations from a dictionary.
- Registrations added to namespace mapper instance are deleted from
argument.
-
- :param namespaces: a dictionary containing prefix/namespace
registrations.
- """
+ def transfer(self, other):
transferred = []
- for k, v in namespaces.items():
- if k in self._namespaces:
- if v != self._namespaces[k]:
+ for k, v in other.items():
+ if k in self:
+ if v != self[k]:
continue
else:
self[k] = v
transferred.append(k)
-
for k in transferred:
- del namespaces[k]
+ del other[k]
class NamespaceView(Mapping):
@@ -305,6 +298,9 @@
def __eq__(self, other):
return self.as_dict() == dict(other.items())
+ def copy(self, **kwargs):
+ return self.__class__(self, **kwargs)
+
def as_dict(self, fqn_keys=False):
if fqn_keys:
return {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlschema-1.1.2/xmlschema/testing/builders.py
new/xmlschema-1.1.1/xmlschema/testing/builders.py
--- old/xmlschema-1.1.2/xmlschema/testing/builders.py 2020-03-20
16:33:57.000000000 +0100
+++ new/xmlschema-1.1.1/xmlschema/testing/builders.py 2020-02-19
22:24:57.000000000 +0100
@@ -17,16 +17,15 @@
import warnings
import xmlschema
-from xmlschema import XMLSchemaBase, XMLSchema11, XMLSchemaValidationError, \
- XMLSchemaParseError, ParkerConverter, BadgerFishConverter,
AbderaConverter, \
- JsonMLConverter, UnorderedConverter
+from xmlschema import XMLSchemaBase, XMLSchemaValidationError,
ParkerConverter, \
+ BadgerFishConverter, AbderaConverter, JsonMLConverter, UnorderedConverter
from xmlschema.compat import ordered_dict_class
from xmlschema.etree import etree_tostring, ElementTree, lxml_etree, \
etree_elements_assert_equal, py_etree_element, lxml_etree_element
from xmlschema.helpers import iter_nested_items
from xmlschema.resources import fetch_namespaces
from xmlschema.xpath import XMLSchemaContext
-from xmlschema.validators import XsdValidator, XsdType, Xsd11ComplexType
+from xmlschema.validators import XsdValidator
from .case_class import XsdValidatorTestCase
from .observers import SchemaObserver
@@ -107,26 +106,6 @@
self.assertEqual(context_elements, [x for x in
context.iter_descendants()])
self.assertEqual(context_elements, elements)
- # Checks on XSD types
- for xsd_type in xs.maps.iter_components(xsd_classes=XsdType):
- self.assertNotEqual(xsd_type.content_type_label, 'unknown')
-
- # Check that the schema is valid also with XSD 1.1 validator
- if not expected_errors and schema_class.XSD_VERSION == '1.0':
- try:
- XMLSchema11(xsd_file, locations=locations, defuse=defuse,
loglevel=loglevel)
- except XMLSchemaParseError as err:
- if not isinstance(err.validator, Xsd11ComplexType) or \
- "is simple or has a simple content" not in
str(err):
- raise # Not a case of forbidden complex content
extension
-
- xs = schema_class(xsd_file, validation='lax',
locations=locations,
- defuse=defuse, loglevel=loglevel)
- for error in xs.all_errors:
- if not isinstance(err.validator, Xsd11ComplexType) or \
- "is simple or has a simple content" not in
str(err):
- raise error
-
def check_xsd_file_with_lxml(self, xmlschema_time):
start_time = time.time()
lxs = lxml_etree.parse(xsd_file)
@@ -166,7 +145,7 @@
else:
self.check_xsd_file()
- # Check with lxml.etree.XMLSchema class
+ # Check with lxml.etree.XMLSchema class
if check_with_lxml and lxml_etree is not None:
self.check_xsd_file_with_lxml(xmlschema_time=time.time() -
start_time)
self.check_errors(xsd_file, expected_errors)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlschema-1.1.2/xmlschema/validators/assertions.py
new/xmlschema-1.1.1/xmlschema/validators/assertions.py
--- old/xmlschema-1.1.2/xmlschema/validators/assertions.py 2020-03-18
11:57:34.000000000 +0100
+++ new/xmlschema-1.1.1/xmlschema/validators/assertions.py 2020-01-23
21:05:17.000000000 +0100
@@ -62,7 +62,6 @@
return self.token is not None and (self.base_type.parent is None or
self.base_type.built)
def parse_xpath_test(self):
- # FIXME: parser's variables filled with XSD type with next elementpath
minor release
if not self.base_type.has_simple_content():
variables = {'value': XSD_BUILTIN_TYPES['anyType'].value}
else:
@@ -86,22 +85,17 @@
except ElementPathError as err:
self.parse_error(err, elem=self.elem)
self.token = self.parser.parse('true()')
- finally:
- self.parser.variables.clear()
def __call__(self, elem, value=None, source=None, namespaces=None,
**kwargs):
+ if value is not None:
+ self.parser.variables['value'] = self.base_type.text_decode(value)
if not self.parser.is_schema_bound():
self.parser.schema.bind_parser(self.parser)
- if value is not None:
- variables = {'value': self.base_type.text_decode(value)}
- else:
- variables = {'value': ''}
-
if source is None:
- context = XPathContext(root=elem, variables=variables)
+ context = XPathContext(root=elem)
else:
- context = XPathContext(root=source.root, item=elem,
variables=variables)
+ context = XPathContext(root=source.root, item=elem)
default_namespace = self.parser.namespaces['']
if namespaces and '' in namespaces:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlschema-1.1.2/xmlschema/validators/elements.py
new/xmlschema-1.1.1/xmlschema/validators/elements.py
--- old/xmlschema-1.1.2/xmlschema/validators/elements.py 2020-03-19
16:08:18.000000000 +0100
+++ new/xmlschema-1.1.1/xmlschema/validators/elements.py 2020-02-19
22:24:57.000000000 +0100
@@ -1079,9 +1079,6 @@
for alt in self.alternatives:
yield from alt.iter_components(xsd_classes)
- if not hasattr(self.type, 'attributes'):
- yield from self.attributes.iter_components(xsd_classes)
-
if self.ref is None and self.type.parent is not None:
yield from self.type.iter_components(xsd_classes)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlschema-1.1.2/xmlschema/validators/exceptions.py
new/xmlschema-1.1.1/xmlschema/validators/exceptions.py
--- old/xmlschema-1.1.2/xmlschema/validators/exceptions.py 2020-03-21
17:37:41.000000000 +0100
+++ new/xmlschema-1.1.1/xmlschema/validators/exceptions.py 2020-01-23
21:05:17.000000000 +0100
@@ -40,19 +40,22 @@
def __str__(self):
if self.elem is None:
- return self.message
-
- msg = ['%s:\n' % self.message]
- elem_as_string = etree_tostring(self.elem, self.namespaces, ' ', 20)
- msg.append("Schema:\n\n%s\n" % elem_as_string)
-
- if self.path is not None:
- msg.append("Path: %s\n" % self.path)
- if self.schema_url is not None:
- msg.append("Schema URL: %s\n" % self.schema_url)
- if self.origin_url not in (None, self.schema_url):
- msg.append("Origin URL: %s\n" % self.origin_url)
- return '\n'.join(msg)
+ return '%s.' % self.message
+ else:
+ msg = ['%s:\n' % self.message]
+ if self.elem is not None:
+ elem_as_string = etree_tostring(self.elem, self.namespaces, '
', 20)
+ if hasattr(self.elem, 'sourceline'):
+ msg.append("Schema (line %r):\n\n%s\n" %
(self.elem.sourceline, elem_as_string))
+ else:
+ msg.append("Schema:\n\n%s\n" % elem_as_string)
+ if self.path is not None:
+ msg.append("Path: %s\n" % self.path)
+ if self.schema_url is not None:
+ msg.append("Schema URL: %s\n" % self.schema_url)
+ if self.origin_url not in (None, self.schema_url):
+ msg.append("Origin URL: %s\n" % self.origin_url)
+ return '\n'.join(msg)
@property
def msg(self):
@@ -69,6 +72,11 @@
relative=False, add_position=True)
if self.source.is_lazy():
value = None # Don't save the element of a lazy resource
+ if name == 'source' and value is not None and getattr(self, 'elem',
None) is not None:
+ self.path = etree_getpath(self.elem, value.root, self.namespaces,
+ relative=False, add_position=True)
+ if value.is_lazy():
+ self.elem = None
super(XMLSchemaValidatorError, self).__setattr__(name, value)
@property
@@ -159,7 +167,7 @@
class XMLSchemaModelDepthError(XMLSchemaModelError):
"""Raised when recursion depth is exceeded while iterating a model
group."""
def __init__(self, group):
- msg = "maximum model recursion depth exceeded while iterating
{!r}".format(group)
+ msg = "maximum model recursion depth exceeded while iterating group
%r" % group
super(XMLSchemaModelDepthError, self).__init__(group, message=msg)
@@ -218,8 +226,6 @@
msg.append("Instance:\n\n%s\n" % elem_as_string)
if self.path is not None:
msg.append("Path: %s\n" % self.path)
- if len(msg) == 1:
- return msg[0][:-2]
return '\n'.join(msg)
@@ -328,7 +334,7 @@
if not expected_tags:
pass
elif len(expected_tags) == 1:
- reason += " Tag %s expected." % expected_tags[0]
+ reason += " Tag %r expected." % expected_tags[0]
else:
reason += " Tag (%s) expected." % ' | '.join(expected_tags)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlschema-1.1.2/xmlschema/validators/facets.py
new/xmlschema-1.1.1/xmlschema/validators/facets.py
--- old/xmlschema-1.1.2/xmlschema/validators/facets.py 2020-03-11
11:38:12.000000000 +0100
+++ new/xmlschema-1.1.1/xmlschema/validators/facets.py 2020-02-19
22:24:57.000000000 +0100
@@ -289,10 +289,10 @@
_ADMITTED_TAGS = XSD_MIN_INCLUSIVE,
def _parse_value(self, elem):
- self.value, errors = self.base_type.decode(elem.attrib['value'],
validation='lax')
- for e in errors:
- if not isinstance(e.validator, self.__class__) or
e.validator.value != self.value:
- raise e
+ try:
+ self.value =
self.base_type.primitive_type.decode(elem.attrib['value'])
+ except AttributeError:
+ self.value = self.base_type.decode(elem.attrib['value'])
facet = self.base_type.get_facet(XSD_MIN_EXCLUSIVE)
if facet is not None and facet.value >= self.value:
@@ -331,10 +331,10 @@
_ADMITTED_TAGS = XSD_MIN_EXCLUSIVE,
def _parse_value(self, elem):
- self.value, errors = self.base_type.decode(elem.attrib['value'],
validation='lax')
- for e in errors:
- if not isinstance(e.validator, self.__class__) or
e.validator.value != self.value:
- raise e
+ try:
+ self.value =
self.base_type.primitive_type.decode(elem.attrib['value'])
+ except AttributeError:
+ self.value = self.base_type.decode(elem.attrib['value'])
facet = self.base_type.get_facet(XSD_MIN_EXCLUSIVE)
if facet is not None and facet.value > self.value:
@@ -373,10 +373,10 @@
_ADMITTED_TAGS = XSD_MAX_INCLUSIVE,
def _parse_value(self, elem):
- self.value, errors = self.base_type.decode(elem.attrib['value'],
validation='lax')
- for e in errors:
- if not isinstance(e.validator, self.__class__) or
e.validator.value != self.value:
- raise e
+ try:
+ self.value =
self.base_type.primitive_type.decode(elem.attrib['value'])
+ except AttributeError:
+ self.value = self.base_type.decode(elem.attrib['value'])
facet = self.base_type.get_facet(XSD_MIN_EXCLUSIVE)
if facet is not None and facet.value >= self.value:
@@ -415,10 +415,10 @@
_ADMITTED_TAGS = XSD_MAX_EXCLUSIVE,
def _parse_value(self, elem):
- self.value, errors = self.base_type.decode(elem.attrib['value'],
validation='lax')
- for e in errors:
- if not isinstance(e.validator, self.__class__) or
e.validator.value != self.value:
- raise e
+ try:
+ self.value =
self.base_type.primitive_type.decode(elem.attrib['value'])
+ except AttributeError:
+ self.value = self.base_type.decode(elem.attrib['value'])
facet = self.base_type.get_facet(XSD_MIN_EXCLUSIVE)
if facet is not None and facet.value >= self.value:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlschema-1.1.2/xmlschema.egg-info/PKG-INFO
new/xmlschema-1.1.1/xmlschema.egg-info/PKG-INFO
--- old/xmlschema-1.1.2/xmlschema.egg-info/PKG-INFO 2020-03-22
19:41:36.000000000 +0100
+++ new/xmlschema-1.1.1/xmlschema.egg-info/PKG-INFO 2020-02-19
22:33:28.000000000 +0100
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: xmlschema
-Version: 1.1.2
+Version: 1.1.1
Summary: An XML Schema validator and decoder
Home-page: https://github.com/brunato/xmlschema
Author: Davide Brunato
@@ -10,22 +10,6 @@
xmlschema
*********
- .. image:: https://img.shields.io/pypi/v/xmlschema.svg
- :target: https://pypi.python.org/pypi/xmlschema/
- .. image:: https://img.shields.io/pypi/pyversions/xmlschema.svg
- :target: https://pypi.python.org/pypi/xmlschema/
- .. image:: https://img.shields.io/pypi/implementation/xmlschema.svg
- :target: https://pypi.python.org/pypi/xmlschema/
- .. image:: https://img.shields.io/badge/License-MIT-blue.svg
- :alt: MIT License
- :target: https://lbesson.mit-license.org/
- .. image::
https://travis-ci.org/sissaschool/xmlschema.svg?branch=master
- :target: https://travis-ci.org/sissaschool/xmlschema
- .. image:: https://img.shields.io/pypi/dm/xmlschema.svg
- :target: https://pypi.python.org/pypi/xmlschema/
- .. image:: https://img.shields.io/badge/Maintained%3F-yes-green.svg
- :target:
https://GitHub.com/Naereen/StrapDown.js/graphs/commit-activity
-
.. xmlschema-introduction-start
The *xmlschema* library is an implementation of `XML Schema
<http://www.w3.org/2001/XMLSchema>`_
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/xmlschema-1.1.2/xmlschema.egg-info/SOURCES.txt
new/xmlschema-1.1.1/xmlschema.egg-info/SOURCES.txt
--- old/xmlschema-1.1.2/xmlschema.egg-info/SOURCES.txt 2020-03-22
19:41:36.000000000 +0100
+++ new/xmlschema-1.1.1/xmlschema.egg-info/SOURCES.txt 2020-02-19
22:33:28.000000000 +0100
@@ -24,9 +24,7 @@
tests/test_files.py
tests/test_helpers.py
tests/test_memory.py
-tests/test_namespaces.py
tests/test_package.py
-tests/test_qnames.py
tests/test_regex.py
tests/test_resources.py
tests/test_schemas.py
@@ -153,8 +151,6 @@
tests/test_cases/issues/issue_111/issue_111.xsd
tests/test_cases/issues/issue_111/issue_111_skeleton.xsd
tests/test_cases/issues/issue_115/Rotation.xsd
-tests/test_cases/issues/issue_171/issue_171.xsd
-tests/test_cases/issues/issue_171/issue_171b.xsd
tests/test_cases/resources/dummy file #2.txt
tests/test_cases/resources/dummy file.txt
tests/test_cases/resources/external_entity.xml
@@ -169,7 +165,6 @@
tests/validators/test_attributes.py
tests/validators/test_builtins.py
tests/validators/test_complex_types.py
-tests/validators/test_exceptions.py
tests/validators/test_global_maps.py
tests/validators/test_identities.py
tests/validators/test_models.py