def field_with_default_is_shown_as_kwarg(): User = dodge.data_class( "User", ["username", dodge.field("password", default="password1")]) user = User("bob", "password2") assert_equal("User('bob', password='******')", repr(user))
def field_value_is_shown_if_it_has_default_value(): User = dodge.data_class( "User", ["username", dodge.field("password", default="password1")]) user = User("bob") assert_equal("User('bob', password='******')", repr(user))
def keyword_only_field_is_shown_as_kwarg(): User = dodge.data_class( "User", ["username", dodge.field("password", keyword_only=True)]) user = User("bob", password="******") assert_equal("User('bob', password='******')", repr(user))
def field_is_set_to_default_if_value_not_provided(): User = dodge.data_class( "User", ["username", dodge.field("password", default="password1")]) user = User("bob") assert_equal("password1", user.password)
def keyword_only_field_is_shown_as_kwarg(): User = dodge.data_class("User", [ "username", dodge.field("password", keyword_only=True) ]) user = User("bob", password="******") assert_equal("User('bob', password='******')", repr(user))
def field_with_default_is_shown_as_kwarg(): User = dodge.data_class("User", [ "username", dodge.field("password", default="password1") ]) user = User("bob", "password2") assert_equal("User('bob', password='******')", repr(user))
def field_is_set_to_default_if_value_not_provided(): User = dodge.data_class("User", [ "username", dodge.field("password", default="password1") ]) user = User("bob") assert_equal("password1", user.password)
def flat_list_for_nested_data_classes_contains_all_field_values_as_flat_list(): Profile = dodge.data_class("Profile", ["bio"]) User = dodge.data_class("User", ["username", dodge.field("profile", type=Profile)]) user = User("bob", Profile("I'm Bob.")) assert_equal(["bob", "I'm Bob."], dodge.obj_to_flat_list(user))
def field_can_be_configured_to_be_hidden_in_repr_if_it_has_default_value(): User = dodge.data_class("User", [ "username", dodge.field("password", default="password1", show_default=False) ]) user = User("bob") assert_equal("User('bob')", repr(user))
def error_is_raised_if_kwarg_field_is_passed_as_positional_arg(): User = dodge.data_class( "User", ["username", dodge.field("password", keyword_only=True)]) assert_raises_regexp(TypeError, "takes 1 positional argument but 2 were given", lambda: User("bob", "password2"))
def field_value_is_shown_if_it_has_default_value(): User = dodge.data_class("User", [ "username", dodge.field("password", default="password1") ]) user = User("bob") assert_equal("User('bob', password='******')", repr(user))
def can_convert_nested_data_classes_to_and_from_flat_list(): 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_flat_list(user) unserialised_user = dodge.flat_list_to_obj(serialised_user, User) assert_equal(user, unserialised_user)
def can_convert_nested_data_classes_to_and_from_string(): 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.dumps(user) unserialised_user = dodge.loads(serialised_user, User) assert_equal(user, unserialised_user)
def error_is_raised_if_kwarg_field_is_passed_as_positional_arg(): User = dodge.data_class("User", [ "username", dodge.field("password", keyword_only=True) ]) assert_raises_regexp( TypeError, "takes 1 positional argument but 2 were given", lambda: User("bob", "password2") )
def flat_list_for_nested_data_classes_contains_all_field_values_as_flat_list(): Profile = dodge.data_class("Profile", ["bio"]) User = dodge.data_class("User", [ "username", dodge.field("profile", type=Profile), ]) user = User("bob", Profile("I'm Bob.")) assert_equal(["bob", "I'm Bob."], dodge.obj_to_flat_list(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)
source_hash=self._package_source.source_hash(), params=self.params(), platform=generate_platform(), ) def _generate_param_part(self, slug, params): if slug is None: return None else: return slug.format(**params) def _generate_install_id_using_hash(package_source, params): hasher = Hasher() hasher.update(package_source.source_hash()) hasher.update(json.dumps(params, sort_keys=True)) return hasher.ascii_digest() def _uname(arg): return local.run(["uname", arg]).output PackageDescription = dodge.data_class("PackageDescription", [ "name", "source_name", "source_hash", "params", dodge.field("platform", type=Platform), ])