Beispiel #1
0
 def test_populate_nested(self):
     name = "obj"
     data = {"nested": {"rien": "bla"}}
     create_dataclass(data, name)
     populated = populate(data, name)
     cached = cache("Obj")(nested=cache("Nested")(**data["nested"]))
     assert cached == populated
Beispiel #2
0
 def test_populate_from_dict(self, data, fn):
     res = fn(
         data,
         "Sample",
         custom={
             "timedate": {
                 "type": datetime
             },
             "one_object.datedate": {
                 "type": datetime
             },
         },
     )
     assert res == cache("Sample")(
         flooat=12.564,
         boolean=True,
         integer=12,
         array=[1, 2, 3, 4],
         string="bla",
         obj=cache("Obj")(string="rinen"),
         timedate=DTIME,
         one_object=cache("One_object")(
             first_nested=cache("First_nested")(
                 second_nested=cache("Second_nested")(rien="rienstr")),
             texte="text",
             datedate=datetime(1234, 12, 1),
         ),
         null=None,
     )
Beispiel #3
0
 def test_populate_nested_3_level(self):
     name = "obj"
     data = {"first_nested": {"second_nested": {"dtime": "1324-12-12"}}}
     create_dataclass(data, name)
     populated = populate(data, name)
     cached = cache("Obj")(first_nested=cache("First_nested")(
         second_nested=cache("Second_nested")(**{
             "dtime": "1324-12-12"
         })))
     assert cached == populated
Beispiel #4
0
 def test_list_of_obj(self):
     data = json.loads(JSON_LIST_INSIDE_OBJ_CUSTOM)
     create_dataclass(data,
                      "ref",
                      custom={"objecs.timedate": {
                          "type": datetime
                      }})
     a = populate(data, "ref")
     ref = cache("Ref")
     objecs_item = cache("Objecs_item")
     compare_instance(a, ref(a=1, objecs=[objecs_item(timedate=DTIME)]))
Beispiel #5
0
 def test_populate_nested_3_level_custom(self):
     name = "obj"
     data = {"first_nested": {"second_nested": {"dtime": "1324-12-12"}}}
     create_dataclass(
         data,
         name,
         custom={"first_nested.second_nested.dtime": {
             "type": datetime
         }})
     populated = populate(data, name)
     cached = cache("Obj")(first_nested=cache("First_nested")(
         second_nested=cache("Second_nested")(
             **{
                 "dtime": datetime(1324, 12, 12)
             })))
     assert cached == populated
Beispiel #6
0
    def test_sample(self):
        data = json.loads(SAMPLE)
        create_dataclass(
            data,
            "Sample",
            custom={
                "timedate": {
                    "type": datetime
                },
                "one_object.datedate": {
                    "type": datetime
                },
            },
        )
        populated = populate(data, "Sample")
        # data["timedate"] = DTIME
        cached = cache("Sample")(
            flooat=12.564,
            boolean=True,
            integer=12,
            array=[1, 2, 3, 4],
            string="bla",
            obj=cache("Obj")(string="rinen"),
            timedate=DTIME,
            one_object=cache("One_object")(
                first_nested=cache("First_nested")(
                    second_nested=cache("Second_nested")(rien="rienstr")),
                texte="text",
                datedate=datetime(1234, 12, 1),
            ),
            null=None,
        )
        assert cached == populated

        # As dict let datetime object unchanged

        to_dict = asdict(populated)
        to_dict["one_object"]["datedate"] = to_dict["one_object"][
            "datedate"].strftime("%Y-%m-%d")
        to_dict["timedate"] = to_dict["timedate"].isoformat()
        assert to_dict == data
Beispiel #7
0
 def test_populate_list(self):
     data = json.loads(JSON_LIST)
     res = from_list(data, "ref")
     Ref = cache("Ref")
     Objece = cache("Objece")
     assert res == [
         Ref(
             ref="refs/heads/master",
             timedate="2012-04-21T18:25:43-05:00",
             objece=Objece(typ="commit"),
         ),
         Ref(
             ref="refs/heads/master",
             timedate="2012-04-21T18:25:43-05:00",
             objece=Objece(typ="commit"),
         ),
         Ref(
             ref="refs/heads/master",
             timedate="2012-04-21T18:25:43-05:00",
             objece=Objece(typ="commit"),
         ),
     ]