make loading dropdown/list attribute schema idempotent #1658
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.
fixes #1631
given the short timeframe for this issue (1 day), I tried to take a simple approach and skip some of the refactoring I would like to do (I'd like to add a
DiffBuilder
class instead of the various quite large methods currently used in theDiff
class)I think my approach of deleting nodes from the
Diff
that do not actually include any changes is the most likely to work and least likely to break anything of the several other options I considered. Ideally, we wouldn't add nodes to the diff that do not include changes in the first place, but I did not think I had time to refactorDiff.get_nodes
and I'm not sure what the test coverage looks like.I added the
JsonEqualityChecker
class hoping that I could inject it into a newDiffBuilder
class before I realized that I would not have time for that, but I decided to leave the class (instead of just using theare_json_equal
function) in the hopes of building thatDiffBuilder
class some day.also
split up the
core/utils.py
file into a few smaller files inside of the newcore/utils
dirunit tests