Serialization: Refactor Host constructor and tests #383
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The logic of creating a Host model from JSON dict has been scattered between the Host DB model constructor and the deserialization method. Moved everything to the deserializer without changing any logic.
Refactored the (de)serialization tests to not work around the bugs and quirks of the Host model constructor:
Added tests for the ability to fill an empty string into ansible_host. This is no longer done by a common trusted method _update_ansible_host. It is tested both on serialization and deserialization to verify that the value remains unchanged through the whole process.
Made the (de)serialization tests hopefully more straightforward and readable along the way.
This pull request is a step towards decoupling the logic from the database model. #309 Still some quirks remain like validation in the deserialization method.