Why is this the best possible solution? Were any other approaches considered?
Discussed approach in the issue and @MartijnR agreed identifying ${} references and forcing itext creation in that case was our best bet.
In terms of implementation, I tried to reduce redundancy in this section but I couldn't come up with any approach that would be easy to read. I think this is ok because the conditions are linear and read well.
I considered adding tests for relative references in repeats but I think that's sufficiently covered elsewhere and should Just Work.
What are the regression risks?
Everything I added is in a conditional so I think risks are minimal. The worst risk is probably that I would have forgotten some cases.
Does this change require updates to documentation? If so, please file an issue here and include the link below.
No, this is a bug fix.
Before submitting this PR, please make sure you have:
[x] included test cases for core behavior and edge cases in tests_v1
[x] run nosetests and verified all tests pass
[x] run black pyxform to format code
[x] verified that any code or assets from external sources are properly credited in comments
Closes #474
Why is this the best possible solution? Were any other approaches considered?
Discussed approach in the issue and @MartijnR agreed identifying
${}
references and forcing itext creation in that case was our best bet.In terms of implementation, I tried to reduce redundancy in this section but I couldn't come up with any approach that would be easy to read. I think this is ok because the conditions are linear and read well.
I considered adding tests for relative references in repeats but I think that's sufficiently covered elsewhere and should Just Work.
What are the regression risks?
Everything I added is in a conditional so I think risks are minimal. The worst risk is probably that I would have forgotten some cases.
Does this change require updates to documentation? If so, please file an issue here and include the link below.
No, this is a bug fix.
Before submitting this PR, please make sure you have:
tests_v1
nosetests
and verified all tests passblack pyxform
to format code