Skip to content

Commit

Permalink
Rename codegen handlers
Browse files Browse the repository at this point in the history
I wanted to do this for a long time...
  • Loading branch information
tefra committed Apr 10, 2022
1 parent a9793ea commit a9ca8ee
Show file tree
Hide file tree
Showing 35 changed files with 219 additions and 230 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from unittest import mock

from xsdata.codegen.container import ClassContainer
from xsdata.codegen.handlers import AttributeSubstitutionHandler
from xsdata.codegen.handlers import AddAttributeSubstitutions
from xsdata.codegen.models import AttrType
from xsdata.models.config import GeneratorConfig
from xsdata.models.enums import Tag
Expand All @@ -12,15 +12,15 @@
from xsdata.utils.testing import FactoryTestCase


class AttributeSubstitutionHandlerTests(FactoryTestCase):
class AddAttributeSubstitutionsTests(FactoryTestCase):
def setUp(self):
super().setUp()

container = ClassContainer(config=GeneratorConfig())
self.processor = AttributeSubstitutionHandler(container=container)
self.processor = AddAttributeSubstitutions(container=container)

@mock.patch.object(AttributeSubstitutionHandler, "process_attribute")
@mock.patch.object(AttributeSubstitutionHandler, "create_substitutions")
@mock.patch.object(AddAttributeSubstitutions, "process_attribute")
@mock.patch.object(AddAttributeSubstitutions, "create_substitutions")
def test_process(self, mock_create_substitutions, mock_process_attribute):
def init_substitutions():
self.processor.substitutions = {}
Expand Down Expand Up @@ -82,7 +82,7 @@ def test_process_attribute(self, mock_find):
self.processor.process_attribute(target, second_attr)
self.assertEqual(4, len(target.attrs))

@mock.patch.object(AttributeSubstitutionHandler, "create_substitution")
@mock.patch.object(AddAttributeSubstitutions, "create_substitution")
def test_create_substitutions(self, mock_create_substitution):
ns = "xsdata"
classes = [
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from unittest import mock

from xsdata.codegen.container import ClassContainer
from xsdata.codegen.handlers import AttributeCompoundChoiceHandler
from xsdata.codegen.handlers import CreateCompoundFields
from xsdata.codegen.models import Class
from xsdata.codegen.models import Restrictions
from xsdata.models.config import GeneratorConfig
Expand All @@ -13,16 +13,16 @@
from xsdata.utils.testing import FactoryTestCase


class AttributeCompoundChoiceHandlerTests(FactoryTestCase):
class CreateCompoundFieldsTests(FactoryTestCase):
def setUp(self):
super().setUp()

self.config = GeneratorConfig()
self.config.output.compound_fields.enabled = True
self.container = ClassContainer(config=self.config)
self.processor = AttributeCompoundChoiceHandler(container=self.container)
self.processor = CreateCompoundFields(container=self.container)

@mock.patch.object(AttributeCompoundChoiceHandler, "group_fields")
@mock.patch.object(CreateCompoundFields, "group_fields")
def test_process(self, mock_group_fields):
target = ClassFactory.elements(8)
# First group repeating
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from xsdata.codegen.container import ClassContainer
from xsdata.codegen.handlers import ClassDesignateHandler
from xsdata.codegen.handlers import DesignateClassPackages
from xsdata.exceptions import CodeGenerationError
from xsdata.models.config import GeneratorConfig
from xsdata.models.config import GeneratorSubstitution
Expand All @@ -11,12 +11,12 @@
from xsdata.utils.testing import FactoryTestCase


class ClassDesignateHandlerTests(FactoryTestCase):
class DesignateClassPackagesTests(FactoryTestCase):
def setUp(self):
super().setUp()
self.config = GeneratorConfig()
self.container = ClassContainer(config=self.config)
self.handler = ClassDesignateHandler(container=self.container)
self.handler = DesignateClassPackages(container=self.container)

def test_group_by_filenames(self):
voc = "file://HL7V3/NE2008/coreschemas/voc.xsd"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from unittest import mock

from xsdata.codegen.container import ClassContainer
from xsdata.codegen.handlers import AttributeGroupHandler
from xsdata.codegen.handlers import FlattenAttributeGroups
from xsdata.codegen.models import Attr
from xsdata.codegen.models import Status
from xsdata.codegen.utils import ClassUtils
Expand All @@ -13,15 +13,15 @@
from xsdata.utils.testing import FactoryTestCase


class AttributeGroupHandlerTests(FactoryTestCase):
class FlattenAttributeGroupsTests(FactoryTestCase):
def setUp(self):
super().setUp()

container = ClassContainer(config=GeneratorConfig())
self.processor = AttributeGroupHandler(container=container)
self.processor = FlattenAttributeGroups(container=container)

@mock.patch.object(Attr, "is_group", new_callable=mock.PropertyMock)
@mock.patch.object(AttributeGroupHandler, "process_attribute")
@mock.patch.object(FlattenAttributeGroups, "process_attribute")
def test_process(self, mock_process_attribute, mock_is_group):
mock_is_group.side_effect = [
True,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,10 @@
from unittest import mock

from xsdata.codegen.container import ClassContainer
from xsdata.codegen.handlers import ClassExtensionHandler
from xsdata.codegen.handlers import FlattenClassExtensions
from xsdata.codegen.models import Restrictions
from xsdata.codegen.models import Status
from xsdata.codegen.utils import ClassUtils
from xsdata.exceptions import CodeGenerationError
from xsdata.models.config import GeneratorConfig
from xsdata.models.enums import DataType
from xsdata.models.enums import Tag
Expand All @@ -17,28 +16,28 @@
from xsdata.utils.testing import FactoryTestCase


class ClassExtensionHandlerTests(FactoryTestCase):
class FlattenClassExtensionsTests(FactoryTestCase):
def setUp(self):
super().setUp()

container = ClassContainer(config=GeneratorConfig())
self.processor = ClassExtensionHandler(container=container)
self.processor = FlattenClassExtensions(container=container)

@mock.patch.object(ClassExtensionHandler, "process_extension")
@mock.patch.object(FlattenClassExtensions, "process_extension")
def test_process_with_no_extensions(self, mock_process_extension):
target = ClassFactory.elements(1)
self.processor.process(target)
self.assertEqual(0, mock_process_extension.call_count)

@mock.patch.object(ClassExtensionHandler, "process_native_extension")
@mock.patch.object(FlattenClassExtensions, "process_native_extension")
def test_process_extension_with_native_type(self, mock_flatten_extension_native):
extension = ExtensionFactory.native(DataType.STRING)
target = ClassFactory.elements(1, extensions=[extension])

self.processor.process_extension(target, extension)
mock_flatten_extension_native.assert_called_once_with(target, extension)

@mock.patch.object(ClassExtensionHandler, "process_dependency_extension")
@mock.patch.object(FlattenClassExtensions, "process_dependency_extension")
def test_process_extension_with_dependency_type(
self, mock_process_dependency_extension
):
Expand All @@ -48,9 +47,9 @@ def test_process_extension_with_dependency_type(
self.processor.process_extension(target, extension)
mock_process_dependency_extension.assert_called_once_with(target, extension)

@mock.patch.object(ClassExtensionHandler, "process_complex_extension")
@mock.patch.object(ClassExtensionHandler, "process_simple_extension")
@mock.patch.object(ClassExtensionHandler, "find_dependency")
@mock.patch.object(FlattenClassExtensions, "process_complex_extension")
@mock.patch.object(FlattenClassExtensions, "process_simple_extension")
@mock.patch.object(FlattenClassExtensions, "find_dependency")
def test_process_dependency_extension_with_absent_type(
self,
mock_find_dependency,
Expand All @@ -66,9 +65,9 @@ def test_process_dependency_extension_with_absent_type(
self.assertEqual(0, mock_process_simple_extension.call_count)
self.assertEqual(0, mock_process_complex_extension.call_count)

@mock.patch.object(ClassExtensionHandler, "process_complex_extension")
@mock.patch.object(ClassExtensionHandler, "process_simple_extension")
@mock.patch.object(ClassExtensionHandler, "find_dependency")
@mock.patch.object(FlattenClassExtensions, "process_complex_extension")
@mock.patch.object(FlattenClassExtensions, "process_simple_extension")
@mock.patch.object(FlattenClassExtensions, "find_dependency")
def test_process_dependency_extension_with_simple_type(
self,
mock_find_dependency,
Expand All @@ -85,9 +84,9 @@ def test_process_dependency_extension_with_simple_type(

mock_process_simple_extension.assert_called_once_with(source, target, extension)

@mock.patch.object(ClassExtensionHandler, "process_complex_extension")
@mock.patch.object(ClassExtensionHandler, "process_simple_extension")
@mock.patch.object(ClassExtensionHandler, "find_dependency")
@mock.patch.object(FlattenClassExtensions, "process_complex_extension")
@mock.patch.object(FlattenClassExtensions, "process_simple_extension")
@mock.patch.object(FlattenClassExtensions, "find_dependency")
def test_process_dependency_extension_with_enum_type(
self,
mock_find_dependency,
Expand Down Expand Up @@ -187,9 +186,9 @@ def test_process_enum_extension_with_complex_source_and_multiple_members(self):
self.assertEqual(0, len(target.attrs))
self.assertIn(extension, target.extensions)

@mock.patch.object(ClassExtensionHandler, "process_complex_extension")
@mock.patch.object(ClassExtensionHandler, "process_simple_extension")
@mock.patch.object(ClassExtensionHandler, "find_dependency")
@mock.patch.object(FlattenClassExtensions, "process_complex_extension")
@mock.patch.object(FlattenClassExtensions, "process_simple_extension")
@mock.patch.object(FlattenClassExtensions, "find_dependency")
def test_process_dependency_extension_with_complex_type(
self,
mock_find_dependency,
Expand All @@ -208,15 +207,15 @@ def test_process_dependency_extension_with_complex_type(
source, target, extension
)

@mock.patch.object(ClassExtensionHandler, "add_default_attribute")
@mock.patch.object(FlattenClassExtensions, "add_default_attribute")
def test_process_extension_native(self, mock_add_default_attribute):
extension = ExtensionFactory.create()
target = ClassFactory.elements(1)

self.processor.process_native_extension(target, extension)
mock_add_default_attribute.assert_called_once_with(target, extension)

@mock.patch.object(ClassExtensionHandler, "replace_attributes_type")
@mock.patch.object(FlattenClassExtensions, "replace_attributes_type")
def test_process_native_extension_with_enumeration_target(
self, mock_replace_attributes_type
):
Expand All @@ -232,7 +231,7 @@ def test_process_simple_extension_with_circular_refence(self):
self.processor.process_simple_extension(target, target, extension)
self.assertEqual(0, len(target.extensions))

@mock.patch.object(ClassExtensionHandler, "add_default_attribute")
@mock.patch.object(FlattenClassExtensions, "add_default_attribute")
def test_process_simple_extension_when_source_is_enumeration_and_target_is_not(
self, mock_add_default_attribute
):
Expand All @@ -244,7 +243,7 @@ def test_process_simple_extension_when_source_is_enumeration_and_target_is_not(
mock_add_default_attribute.assert_called_once_with(target, extension)

@mock.patch.object(ClassUtils, "copy_attributes")
@mock.patch.object(ClassExtensionHandler, "add_default_attribute")
@mock.patch.object(FlattenClassExtensions, "add_default_attribute")
def test_process_simple_extension_when_target_is_enumeration_and_source_is_not(
self, mock_add_default_attribute, mock_copy_attributes
):
Expand Down Expand Up @@ -280,7 +279,7 @@ def test_process_simple_extension_when_source_and_target_are_not_enumerations(
mock_copy_attributes.assert_called_once_with(source, target, extension)

@mock.patch.object(ClassUtils, "copy_attributes")
@mock.patch.object(ClassExtensionHandler, "should_remove_extension")
@mock.patch.object(FlattenClassExtensions, "should_remove_extension")
def test_process_complex_extension_removes_extension(
self, mock_should_remove_extension, mock_copy_attributes
):
Expand All @@ -299,7 +298,7 @@ def test_process_complex_extension_removes_extension(
self.assertEqual(0, extension.type.reference)

@mock.patch.object(ClassUtils, "copy_attributes")
@mock.patch.object(ClassExtensionHandler, "should_flatten_extension")
@mock.patch.object(FlattenClassExtensions, "should_flatten_extension")
def test_process_complex_extension_copies_attributes(
self, mock_compare_attributes, mock_should_flatten_extension
):
Expand All @@ -313,8 +312,8 @@ def test_process_complex_extension_copies_attributes(
mock_compare_attributes.assert_called_once_with(source, target)
mock_should_flatten_extension.assert_called_once_with(source, target, extension)

@mock.patch.object(ClassExtensionHandler, "should_flatten_extension")
@mock.patch.object(ClassExtensionHandler, "should_remove_extension")
@mock.patch.object(FlattenClassExtensions, "should_flatten_extension")
@mock.patch.object(FlattenClassExtensions, "should_remove_extension")
def test_process_complex_extension_ignores_extension(
self, mock_should_remove_extension, mock_should_flatten_extension
):
Expand Down Expand Up @@ -423,7 +422,7 @@ def test_replace_attributes_type(self):
target = ClassFactory.elements(2)
target.extensions.append(extension)

ClassExtensionHandler.replace_attributes_type(target, extension)
FlattenClassExtensions.replace_attributes_type(target, extension)

self.assertEqual(1, len(target.attrs[0].types))
self.assertEqual(1, len(target.attrs[1].types))
Expand All @@ -438,7 +437,7 @@ def test_add_default_attribute(self):
)
item = ClassFactory.elements(1, extensions=[extension])

ClassExtensionHandler.add_default_attribute(item, extension)
FlattenClassExtensions.add_default_attribute(item, extension)
expected = AttrFactory.create(
name="value", default=None, types=[xs_string], tag=Tag.EXTENSION
)
Expand All @@ -450,7 +449,7 @@ def test_add_default_attribute(self):
xs_int = AttrTypeFactory.native(DataType.INT)
extension = ExtensionFactory.create(xs_int, Restrictions(tokens=True))
item.extensions.append(extension)
ClassExtensionHandler.add_default_attribute(item, extension)
FlattenClassExtensions.add_default_attribute(item, extension)

expected.types.append(xs_int)
expected_restrictions = Restrictions(tokens=True, min_occurs=1, max_occurs=1)
Expand All @@ -467,7 +466,7 @@ def test_add_default_attribute_with_any_type(self):
)
item = ClassFactory.create(extensions=[extension])

ClassExtensionHandler.add_default_attribute(item, extension)
FlattenClassExtensions.add_default_attribute(item, extension)
expected = AttrFactory.create(
name="@any_element",
default=None,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from xsdata.codegen.handlers import AttributeMergeHandler
from xsdata.codegen.handlers import MergeAttributes
from xsdata.codegen.models import Restrictions
from xsdata.models.enums import DataType
from xsdata.utils.testing import AttrFactory
Expand All @@ -7,10 +7,10 @@
from xsdata.utils.testing import FactoryTestCase


class AttributeMergeHandlerTests(FactoryTestCase):
class MergeAttributesTests(FactoryTestCase):
def setUp(self):
super().setUp()
self.processor = AttributeMergeHandler
self.processor = MergeAttributes

def test_process(self):
one = AttrFactory.attribute(fixed=True)
Expand Down
Loading

0 comments on commit a9ca8ee

Please sign in to comment.