def unrecognised_fields_are_ignored(): User = dodge.data_class("User", ["username"]) input_dict = {"username": "******", "password": "******"} converted_user = dodge.dict_to_obj(input_dict, User) expected_user = User("bob") assert_equal(expected_user, converted_user)
def conversion_from_dict_to_obj_uses_items_as_constructor_args(): User = dodge.data_class("User", ["username", "password"]) input_dict = {"username": "******", "password": "******"} converted_user = dodge.dict_to_obj(input_dict, User) expected_user = User("bob", "password1") assert_equal(expected_user, converted_user)
def arguments_with_camelcase_names_are_converted_to_use_underscores(): User = dodge.data_class("User", ["is_root"]) input_dict = {"isRoot": True} converted_user = dodge.dict_to_obj(input_dict, User) expected_user = User(is_root=True) assert_equal(expected_user, converted_user)
def can_convert_nested_data_classes_to_and_from_dict(): Profile = dodge.data_class("Profile", ["bio"]) User = dodge.data_class("User", ["username", dodge.field("profile", type=Profile)]) user = User("bob", Profile("I'm Bob.")) serialised_user = dodge.obj_to_dict(user) unserialised_user = dodge.dict_to_obj(serialised_user, User) assert_equal(user, unserialised_user)
def can_convert_nested_data_classes_to_and_from_dict(): Profile = dodge.data_class("Profile", ["bio"]) User = dodge.data_class("User", [ "username", dodge.field("profile", type=Profile), ]) user = User("bob", Profile("I'm Bob.")) serialised_user = dodge.obj_to_dict(user) unserialised_user = dodge.dict_to_obj(serialised_user, User) assert_equal(user, unserialised_user)