Commit graph

54 commits

Author SHA1 Message Date
Will McGugan
3eac79568c remove some pauses 2023-01-26 16:10:13 +01:00
Will McGugan
7a46672d64 docs and expanded keys 2022-12-21 11:38:20 +00:00
Will McGugan
3e2c3fbb2f Merge branch 'main' into cli-keys 2022-12-20 13:20:01 +00:00
Will McGugan
0987229c25 fix binding inheritance issues 2022-12-20 13:19:49 +00:00
Will McGugan
16994c54d1
Update tests/test_binding_inheritance.py
Co-authored-by: darrenburns <darrenburns@users.noreply.github.com>
2022-12-20 10:42:21 +00:00
Will McGugan
002cbab0d5 add pause to action 2022-12-19 11:26:42 +00:00
Will McGugan
621e96dcdd pause 2022-12-19 11:20:46 +00:00
Will McGugan
ee59c5882e Added SkipAction exception 2022-12-19 10:01:06 +00:00
Will McGugan
af049d4a4d added test 2022-12-19 09:30:22 +00:00
Dave Pearson
f25f6cbbb5
Fix a typo 2022-12-15 14:45:34 +00:00
Dave Pearson
75c9fba393
Use is to test tri-state, rather than equality
See https://github.com/Textualize/textual/pull/1346#discussion_r1049675405
2022-12-15 14:26:10 +00:00
Dave Pearson
d389c9185a
s/mk_/make_/g
mk_bgr
2022-12-15 14:14:25 +00:00
Dave Pearson
f08b4eda6d
Swap final test to a screen type rather than instance
See https://github.com/Textualize/textual/pull/1346#discussion_r1049678092
2022-12-15 14:12:52 +00:00
Dave Pearson
7397cff52a
Revert previous attempt at an experiment 2022-12-15 14:12:00 +00:00
Dave Pearson
549fd6b47e
Experiment with recording at all levels
More attempts to figure out why I'm getting the async issue with messages
and the pilot.
2022-12-15 14:04:03 +00:00
Dave Pearson
b196d8cd2e
Revert experimental backing out of recent changes
Didn't make a difference. CI on GitHub is still acting differently.
2022-12-15 13:29:27 +00:00
Dave Pearson
76a22d81d4
Eliminating changes
This is the one biggish change between the last working test run in GitHub,
and now. Tests are still running locally fine, an on GitHub, in the last
run, I had one job pass and another fail, both on the same OS, just 3.10
passed and 3.9 failed. The problem still to do with (as far as I can tell)
messages inside Textual and some sort of async issue.

So let's try this.
2022-12-15 13:25:05 +00:00
Dave Pearson
938cd3bd1d
Namespace the recording actions
Wondering if this is the issue with why the tests have stopped working in
GitHub; but also not *really* confused as to why they were working in the
first place.
2022-12-15 13:17:16 +00:00
Dave Pearson
2f77bab409
Extra long pause test
This code is running just finally locally in tests, but is failing with:

RuntimeError: Task <Task pending name='Task-279' coro=<MessagePump._process_messages() running at /home/runner/work/textual/textual/src/textual/message_pump.py:314>> got Future <Future pending> attached to a different loop

in GitHub Actions. Pretty sure I saw this before, which made me add the
pause in the first place. Given this seems to just be affecting the last
test, from what I can tell, let's make the pause longer to see if that
helps.

I hate chasing action issues...
2022-12-15 12:57:14 +00:00
Dave Pearson
ad7c2e6c4d
Round off the priority clash test and un-xfail it
Also add in a test for when there is no priority anywhere. This is still a
priority level that needs testing, it just isn't a priority.
2022-12-15 12:47:46 +00:00
Dave Pearson
618db503b9
Add tests for competing bindings an priority permutations
This is set to xfail at the moment because the tested result is what I think
should be the result, but what happens now isn't that. Need to check with
Will to see what he thinks the correct resolution is here.
2022-12-15 12:16:27 +00:00
Dave Pearson
50df082479
Keep black happy 2022-12-15 12:16:16 +00:00
Dave Pearson
8ff9af581c
Test rationale comment update 2022-12-15 09:10:00 +00:00
Dave Pearson
4a78283574
Update the binding inheritance tests to reflect the emerging changes
I feel some more will be needed, but this is all of the basics, hitting all
of the important points that relate to #1343. More importantly all of the
xfails are now removed.
2022-12-14 20:59:57 +00:00
Dave Pearson
d9e73b82f5
Be less explicit about checking for movement keys, check for any keys
See https://github.com/Textualize/textual/pull/1346#discussion_r1048330186
2022-12-14 11:12:46 +00:00
Dave Pearson
d353188c24
Correct a typo 2022-12-14 10:59:17 +00:00
Dave Pearson
5859437040
Run black over the tests 2022-12-14 10:58:09 +00:00
Dave Pearson
ca9c3b43dd
Add the likely "final boss" test for the binding issue 2022-12-13 21:58:09 +00:00
Dave Pearson
87e18de605
Move the assert on key records into all_recorded
While what I had worked, asserting on a boolean return from that method
ended up masking what had gone wrong. This way we get to see the fail
and *why* it failed.
2022-12-13 21:56:43 +00:00
Dave Pearson
5330d2a425
DRY the checking of the recorded keystrokes 2022-12-13 18:40:00 +00:00
Dave Pearson
c6981964a7
Fix a typo 2022-12-13 18:23:44 +00:00
Dave Pearson
c68dae6ad7
Try and coax older Pythons into being happy with list[...]
I think?
2022-12-13 18:19:20 +00:00
Dave Pearson
cdca7dc2dd
Revamp the binding inheritance unit tests
The tests are getting a little involved, and aim to tell an important story
about how the binding inheritance works, currently causes problems, and
should eventually work. As such I feel it's time to tidy things up a bit,
reduce some of the copy/paste going on, and comment heavily so I don't lose
my place and thinking, not to mention hopefully help someone else reading
make sense of the tests.
2022-12-13 18:10:40 +00:00
Dave Pearson
3f225469a5
Remove xfail on non-inherit-no-BINDINGS test
This now is fine thanks to #1352 fixing #1351.
2022-12-13 16:59:05 +00:00
Dave Pearson
e8c87ced33
Add test for focused widget, no inherit, empty BINDINGS
Testing the overlap between #1343 and #1351.
2022-12-13 15:29:13 +00:00
Dave Pearson
0251a4bd57
Add a test for #1351 2022-12-13 15:21:23 +00:00
Dave Pearson
e74dbab8cf
Fix test of alpha keys so they match how we test movement keys 2022-12-13 12:44:25 +00:00
Dave Pearson
2b2f19381b
Fix test of alpha keys so they match how we test movement keys 2022-12-13 12:42:33 +00:00
Dave Pearson
09fd71e8f6
Improve the name of one of the tests
Just to make it a bit more clear what's going on and why. There's a fair bit
goes into each of these tests and this module is in danger of getting quite
messy. I may revisit the layout at some point just to make it all a lot more
readable.
2022-12-13 12:28:23 +00:00
Dave Pearson
a44c0f5d7f
Add a test for widget bindings with binding inheritance turned off 2022-12-13 11:32:09 +00:00
Dave Pearson
a01ab65264
Add a module docstring to the binding inheritance tests
I feel that, for now anyway, these needs a bit more background for the
reader.
2022-12-13 10:48:28 +00:00
Dave Pearson
fc4ee698ca
Remove redundant app check in test relating to a widget
It made sense to do this extra step as I was finding my way with these
tests, but I don't think it's necessary now.
2022-12-13 10:44:55 +00:00
Dave Pearson
f0eb284edb
Correct a test description 2022-12-13 10:42:48 +00:00
Dave Pearson
4554904f2b
Sort the two key lists before comparing
We're coming from a dictionary for one of them, so let's give ourselves a
fighting chance here.
2022-12-13 10:27:33 +00:00
Dave Pearson
3bb7a99a0a
Rework the basic Screen binding test
Rather than test that it has zero bindings (although that is a legitimate
test too), test for the thing we're really concerned about here: that it
doesn't have movement keys. That's what this is all about.
2022-12-13 10:25:43 +00:00
Dave Pearson
4a1a78819e
Correct a copy/paste-o in the key test
Not that this made a change to its passing/failing state right at the moment
-- it's going to fail anyway -- but it kinda needs to be in its proper "this
should pass" state.
2022-12-13 10:18:46 +00:00
Dave Pearson
e75f784b2c
Add a test for a screen binding movement, wrapping a focusable widget
This is the heart of the issue introduced by
b48a1402b8
and which is being investigated in
https://github.com/Textualize/textual/issues/1343 -- the child widget can be
focused, but (as far as the author of the code is concerned) it has no
bindings. Bindings for movement-oriented keys exist on the screen which
composes up the widget into it. Up until 0.5.0 this worked just fine. As of
0.6.0, because binding inheritance was introduced, the bindings for movement
that live at the `Widget` level cause the widget that has no bindings to
appear to have bindings.

While this can potentially be worked around with the use of
inherit_bindings, this isn't a very satisfying solution and also breaks the
rule of least astonishment.

This test is going to be key to all of this. This is the test that should be
made to work without breaking any of the other currently-passing tests.
2022-12-13 10:12:16 +00:00
Dave Pearson
06e45c709e
Add an alpha binding and key press to the focused widget test
This is going to become important in the next test I'm intending to add, so
it feels sensible to mirror the intended addition here too.
2022-12-13 10:02:44 +00:00
Dave Pearson
4955a28ab1
Keep black happy (again)
Need to sort out the pre-commit hooks for this machine
2022-12-13 09:48:09 +00:00
Dave Pearson
c52ea0bdf2
Add a test for a focused child widget with its own bindings 2022-12-13 09:46:27 +00:00