Skip to content

dataclass are not supported #25

@arkadyzalko

Description

@arkadyzalko

@dataclass is a pretty good feature and unfortunatelly is not supported.

# Object with __init__ that carries required non-default arguments are not supported

Example

class ObjectMapperTest(unittest.TestCase):
    """
    Unit tests for the `ObjectMapper` module.
    """
    @dataclass
    class FromTestDataClass:
        a: int
        b: str

    @dataclass
    class ToTestDataClass:
        a: int
        b: str

    def test_mapping_creation_without_mappings_correct_using_dataclass(self):
        """ Test mapping creation without mappings with dataclass"""

        # Arrange
        from_class = FromTestClass()
        mapper = ObjectMapper()
        mapper.create_map(FromTestDataClass, ToTestDataClass)

        # Act
        result = mapper.map(FromTestDataClass(a=1, b='2'))

        # Assert
        self.assertTrue(isinstance(result, ToTestDataClass), "Target types must be same")
        self.assertEqual(result.name, from_class.name, "Name mapping must be equal")
        self.assertEqual(result, ToTestDataClass(a=1, b='2'), "Class instance must be equal")

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions