-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TST: Attempted test suite fixups #214
Conversation
a7efd49
to
e15a50b
Compare
Since I mistakenly left an py3.11, pip fails when trying to teardown some PageWidgets, though test suite completes py3.9, conda fails with a straight up segfault, suite does not complete |
A slightly better result, though failing the first time (py3.10, conda) Edit: Through 4 retries not once did the entire matrix pass. I declare this "Not good enough" |
…MethodSlot. This likely fails
I'm not sure if I'm supposed to keep hard references to the |
This PR has become somewhat of a sandbox. I've tried storing references to the created |
Looks like you figured it out - the answer is yes 👍 |
…oring. Update reqs
… of vendoring. Update reqs" This reverts commit 753185d.
This is ready to be reviewed and merged, with pcdsutils getting WeakPartialMethodSlot |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think all these changes are clean and well-motivated
One nitpick about type annotations
atef/widgets/config/data_active.py
Outdated
self._sig: EpicsSignalBase = self.data.to_signal() | ||
if self._sig is None: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This bit is confusing from a type hinting perspective and probably gives some of the stricter type checking libraries pause. It's saying "if this thing that is always an EpicsSignalBase is None..."
Maybe this type should be EpicsSignalBase | None
and maybe it should be hinted in the object init or in the class definition itself instead of in this method?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It might also just be a regular signal, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Turns out atef.Procedure.Target.to_signal() -> Optional[EpicsSignal]
as written currently, so I'll change it to match and move it to the init.
Edit: I suppose that should also just be a base signal as well.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as @ZLLentz - a bit of class body type hints are probably in order here.
atef/widgets/config/data_active.py
Outdated
self._sig: EpicsSignalBase = self.data.to_signal() | ||
if self._sig is None: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It might also just be a regular signal, right?
Description
Attempting to fix some intermittent test suite failures. The crux of the difficulty here is that the suite consistently passes locally, failing only intermittently on GHA CI
Motivation and Context
Uses / vendors Typhos'
WeakPartialMethodSlot
for applying callbacks withinActionRowWidget
In one case opted to try making the slots submitted to
BusyCursorThread
actual methods, rather than dynamically created functionsWhen pcdsutils is updated, we can remove the vendoring here and rely on pcdsutils' versino
There is still a very rare test suite failure, but I cannot reproduce it enough to address it. For the curious, it seems to fail at
get_curr_value
, the epics-get portion ofActionRowWidget
How Has This Been Tested?
GHA, things pass pretty consistently locally
Where Has This Been Documented?
This PR
Pre-merge checklist
docs/pre-release-notes.sh
and created a pre-release documentation page