Commit Graph

3505 Commits

Author SHA1 Message Date
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
Dave Pearson
d92c252ea6 Make it clear, in the code, that all containers are considered scrollable
The code is exactly the same between is_container and is_scrollable, and the
intent (confirmed in
https://github.com/Textualize/textual/issues/1343#issuecomment-1347989752)
is that the latter is intended to be overridden in some circumstances (so
far only in `ScrollView`). As such I feel it better conveys intent and
reduces the changes of mismatched future changes if is_scrollable is defined
in respect to is_container.

The only possible reason I can think of is if there's a measurable
performance win here. Applying Knuth for the moment, at least for the scope
of this PR. I strongly suspect this is one of the 97% rather than one of the
3% and for the purposes of moving stuff around (which I may be doing as I
explore this) I believe this makes it easier to follow and to think about.
2022-12-13 09:13:00 +00:00
Dave Pearson
b48acc0bd5 Update the movement binding tests to use all movement keys
Rather than just test a single specific movement key (in this case "up"), go
with all the affected keys. The cost to doing so is zero and it means we get
a full coverage of testing for all the keys that have become a problem with
0.6.0.
2022-12-13 08:27:22 +00:00
Dave Pearson
751042f9d7 Add a test for actions being fired from bound keys
Do this with a focus on detecting a bound alpha key, and a bound movement key
2022-12-12 21:53:23 +00:00
Dave Pearson
f32937641a Add binding inheritance tests for Static widgets 2022-12-12 21:04:56 +00:00
Dave Pearson
6b77e73558 Start unit tests for live key bindings plus inheriting
Up until now there doesn't seem to have been any unit tests aimed squarely
at setting up bindings, as part of a running application, which are only
about testing the bindings. As such there was no way of slotting in tests
for how inheritance of bindings works.

This starts that process with a view to testing how inheriting
likely *should* work.

See #1343 for some background to this.
2022-12-12 20:49:19 +00:00
Will McGugan
ed83f7c806 Merge pull request #1338 from mattkram/patch-1
Very simple typo fix
2022-12-11 17:08:17 +00:00
Matt Kramer
7bf0998f81 Very simple typo fix
Just came across a minor typo while reading the release notes. Great work!
2022-12-11 09:59:17 -06:00
Will McGugan
71e86cea96 diff links v0.6.0 2022-12-11 13:21:49 +00:00
Will McGugan
0bcd26091f Merge pull request #1337 from Textualize/0.6.0
new blog post
2022-12-11 13:20:21 +00:00
Will McGugan
b3fa5d1fe4 typing 2022-12-11 09:35:42 +00:00
Will McGugan
76695000d4 fix text log 2022-12-11 08:21:46 +00:00
Will McGugan
9aac3a0cca updated list view 2022-12-10 18:18:28 +00:00
Will McGugan
be7f085ed9 added output to release blog 2022-12-10 18:12:48 +00:00
Will McGugan
f51234498a tweaked placeholder 2022-12-10 18:00:43 +00:00
Will McGugan
c76d616521 updated snapshot 2022-12-10 17:54:57 +00:00
Will McGugan
0ec6daf8ba use null offset 2022-12-10 12:19:30 +00:00
Will McGugan
c65e6b717f null offset 2022-12-10 12:09:50 +00:00
Will McGugan
47ecb4b7b0 Test 2022-12-10 12:00:12 +00:00
Will McGugan
7a42f5ec48 micro optimizations and cache fix 2022-12-10 11:58:07 +00:00
Will McGugan
8263d5c7f0 imports 2022-12-10 11:09:55 +00:00
Will McGugan
815afd99a4 micro-optimizations 2022-12-10 10:58:41 +00:00
Will McGugan
5af3470728 update snapshot 2022-12-10 10:44:02 +00:00
Will McGugan
30f3624feb not draft 2022-12-10 10:35:51 +00:00
Will McGugan
13a207bacc new blog post 2022-12-10 10:34:34 +00:00
Will McGugan
54a2e3e8b8 Merge pull request #1143 from Textualize/list-view
List view
2022-12-09 10:28:47 +00:00
Will McGugan
24a182c104 fix snapshot 2022-12-09 10:22:26 +00:00
Will McGugan
cebeafbb8b Merge branch 'main' into list-view 2022-12-09 10:09:07 +00:00
Will McGugan
d91ea42ec0 Merge pull request #1333 from Textualize/textlog-docs
textlog documentation
2022-12-09 10:05:43 +00:00
Will McGugan
e063cafcfb markup in textog 2022-12-09 09:14:38 +00:00
Will McGugan
c708e8a3df measure renderable 2022-12-09 09:10:58 +00:00
Will McGugan
69ed4b2e0b textlog documentation 2022-12-09 09:01:34 +00:00
Will McGugan
2e1d2d0ea8 Merge pull request #1332 from Textualize/container-offsets-fix
Fix container offsets
2022-12-09 07:45:23 +00:00
Will McGugan
7ba70ada96 fix examples 2022-12-08 17:24:34 +00:00
Will McGugan
1f64127235 snapshot 2022-12-08 16:51:31 +00:00
Dave Pearson
3c425c330e Merge pull request #1330 from davep/2022-12-08-davep-blog
2022-12-08 DevLog from davep
2022-12-08 15:49:43 +00:00
Will McGugan
eb27ba9057 Merge pull request #1331 from Textualize/ci-issues
Restricting black dependency upper bound due to wheel installation issues on MacOS
2022-12-08 15:01:14 +00:00
Will McGugan
d3bf1c930a Merge pull request #1329 from Textualize/auto-width
Fix for auto dimensions on containers, with relative children.
2022-12-08 14:59:07 +00:00
Darren Burns
b6eadddba3 Restricting black dependency 2022-12-08 13:57:14 +00:00
Darren Burns
9e59060c29 Update pre-commit black 2022-12-08 13:47:43 +00:00