Пример #1
0
def test_fields_returns_no_fields():
    PixelCoordBuilder = dataclass_builder(PixelCoord)
    fields_ = fields(PixelCoordBuilder(), required=False, optional=False)
    assert fields_ == PixelCoordBuilder().fields(required=False,
                                                 optional=False)
    assert [] == list(fields_.keys())
    assert [] == [f.name for f in fields_.values()]
    assert [] == [f.type for f in fields_.values()]

    PointBuilder = dataclass_builder(Point)
    fields_ = fields(PointBuilder(), required=False, optional=False)
    assert fields_ == PointBuilder().fields(required=False, optional=False)
    assert [] == list(fields_.keys())
    assert [] == [f.name for f in fields_.values()]
    assert [] == [f.type for f in fields_.values()]

    CircleBuilder = dataclass_builder(Circle)
    fields_ = fields(CircleBuilder(), required=False, optional=False)
    assert fields_ == CircleBuilder().fields(required=False, optional=False)
    assert [] == list(fields_.keys())
    assert [] == [f.name for f in fields_.values()]
    assert [] == [f.type for f in fields_.values()]

    TypesBuilder = dataclass_builder(Types)
    fields_ = fields(TypesBuilder(), required=False, optional=False)
    assert fields_ == TypesBuilder().fields(required=False, optional=False)
    assert [] == list(fields_.keys())
    assert [] == [f.name for f in fields_.values()]
    assert [] == [f.type for f in fields_.values()]
Пример #2
0
def test_fields_returns_required_fields():
    PixelCoordBuilder = dataclass_builder(PixelCoord)
    fields_ = fields(PixelCoordBuilder(), optional=False)
    assert fields_ == PixelCoordBuilder().fields(optional=False)
    assert ["x", "y"] == list(fields_.keys())
    assert ["x", "y"] == [f.name for f in fields_.values()]
    assert [int, int] == [f.type for f in fields_.values()]

    PointBuilder = dataclass_builder(Point)
    fields_ = fields(PointBuilder(), optional=False)
    assert fields_ == PointBuilder().fields(optional=False)
    assert ["x", "y"] == list(fields_.keys())
    assert ["x", "y"] == [f.name for f in fields_.values()]
    assert [float, float] == [f.type for f in fields_.values()]

    CircleBuilder = dataclass_builder(Circle)
    fields_ = fields(CircleBuilder(), optional=False)
    assert fields_ == CircleBuilder().fields(optional=False)
    assert ["radius"] == list(fields_.keys())
    assert ["radius"] == [f.name for f in fields_.values()]
    assert [float] == [f.type for f in fields_.values()]

    TypesBuilder = dataclass_builder(Types)
    fields_ = fields(TypesBuilder(), optional=False)
    assert fields_ == TypesBuilder().fields(optional=False)
    assert ["int_", "float_"] == list(fields_.keys())
    assert ["int_", "float_"] == [f.name for f in fields_.values()]
    assert [int, float] == [f.type for f in fields_.values()]
Пример #3
0
def test_class_inheritance():
    builder = ExtendedBuilder(Point, y=4, w=10)
    builder.x = 8
    assert Point(8, 4, 10) == build(builder)
    fields_ = fields(ExtendedBuilder(Types))
    assert ["int_", "float_", "str_"] == list(fields_.keys())
    assert ["int_", "float_", "str_"] == [f.name for f in fields_.values()]
    assert [int, float, str] == [f.type for f in fields_.values()]
Пример #4
0
def test_fields_field():
    FieldsBuilder = dataclass_builder(Fields)
    builder = FieldsBuilder(fields="taken")
    assert builder.fields == "taken"
    fields_ = fields(builder)
    assert ["fields"] == list(fields_.keys())
    assert ["fields"] == [f.name for f in fields_.values()]
    assert [str] == [f.type for f in fields_.values()]
Пример #5
0
def test_fields_returns_optional_fields():
    fields_ = fields(DataclassBuilder(PixelCoord), required=False)
    assert [] == list(fields_.keys())
    assert [] == [f.name for f in fields_.values()]
    assert [] == [f.type for f in fields_.values()]

    fields_ = fields(DataclassBuilder(Point), required=False)
    assert ["w"] == list(fields_.keys())
    assert ["w"] == [f.name for f in fields_.values()]
    assert [float] == [f.type for f in fields_.values()]

    fields_ = fields(DataclassBuilder(Circle), required=False)
    assert [] == list(fields_.keys())
    assert [] == [f.name for f in fields_.values()]
    assert [] == [f.type for f in fields_.values()]

    fields_ = fields(DataclassBuilder(Types), required=False)
    assert ["str_"] == list(fields_.keys())
    assert ["str_"] == [f.name for f in fields_.values()]
    assert [str] == [f.type for f in fields_.values()]
Пример #6
0
def test_fields_returns_required_fields():
    fields_ = fields(DataclassBuilder(PixelCoord), optional=False)
    assert ["x", "y"] == list(fields_.keys())
    assert ["x", "y"] == [f.name for f in fields_.values()]
    assert [int, int] == [f.type for f in fields_.values()]

    fields_ = fields(DataclassBuilder(Point), optional=False)
    assert ["x", "y"] == list(fields_.keys())
    assert ["x", "y"] == [f.name for f in fields_.values()]
    assert [float, float] == [f.type for f in fields_.values()]

    fields_ = fields((DataclassBuilder(Circle)), optional=False)
    assert ["radius"] == list(fields_.keys())
    assert ["radius"] == [f.name for f in fields_.values()]
    assert [float] == [f.type for f in fields_.values()]

    fields_ = fields(DataclassBuilder(Types), optional=False)
    assert ["int_", "float_"] == list(fields_.keys())
    assert ["int_", "float_"] == [f.name for f in fields_.values()]
    assert [int, float] == [f.type for f in fields_.values()]
Пример #7
0
def test_fields_returns_settable_fields():
    fields_ = fields(DataclassBuilder(PixelCoord))
    assert ["x", "y"] == list(fields_.keys())
    assert ["x", "y"] == [f.name for f in fields_.values()]
    assert [int, int] == [f.type for f in fields_.values()]

    fields_ = fields(DataclassBuilder(Point))
    assert ["x", "y", "w"] == list(fields_.keys())
    assert ["x", "y", "w"] == [f.name for f in fields_.values()]
    assert [float, float, float] == [f.type for f in fields_.values()]

    fields_ = fields(DataclassBuilder(Circle))
    assert ["radius"] == list(fields_.keys())
    assert ["radius"] == [f.name for f in fields_.values()]
    assert [float] == [f.type for f in fields_.values()]

    fields_ = fields(DataclassBuilder(Types))
    assert ["int_", "float_", "str_"] == list(fields_.keys())
    assert ["int_", "float_", "str_"] == [f.name for f in fields_.values()]
    assert [int, float, str] == [f.type for f in fields_.values()]