commandertui 1.5.0__tar.gz → 1.5.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. {commandertui-1.5.0 → commandertui-1.5.1}/PKG-INFO +2 -2
  2. {commandertui-1.5.0 → commandertui-1.5.1}/README.md +1 -1
  3. commandertui-1.5.1/commandertui/__init__.py +1 -0
  4. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui/boot.py +12 -3
  5. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui/updater.py +4 -2
  6. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui.egg-info/PKG-INFO +2 -2
  7. {commandertui-1.5.0 → commandertui-1.5.1}/tests/test_app_smoke.py +21 -0
  8. {commandertui-1.5.0 → commandertui-1.5.1}/tests/test_updater.py +1 -1
  9. commandertui-1.5.0/commandertui/__init__.py +0 -1
  10. {commandertui-1.5.0 → commandertui-1.5.1}/LICENSE +0 -0
  11. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui/app.py +0 -0
  12. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui/ascii_font.py +0 -0
  13. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui/bookmarks.py +0 -0
  14. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui/cli.py +0 -0
  15. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui/compare_screen.py +0 -0
  16. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui/conflicts.py +0 -0
  17. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui/diff.py +0 -0
  18. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui/editor.py +0 -0
  19. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui/executor.py +0 -0
  20. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui/main_screen.py +0 -0
  21. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui/modals.py +0 -0
  22. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui/models.py +0 -0
  23. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui/netlocations.py +0 -0
  24. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui/plan.py +0 -0
  25. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui/preview.py +0 -0
  26. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui/progress_screen.py +0 -0
  27. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui/run_queue.py +0 -0
  28. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui/run_transfer.py +0 -0
  29. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui/scanner.py +0 -0
  30. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui/settings.py +0 -0
  31. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui/sync.py +0 -0
  32. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui/theme.py +0 -0
  33. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui/transfer.py +0 -0
  34. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui/trash.py +0 -0
  35. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui/widgets.py +0 -0
  36. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui.egg-info/SOURCES.txt +0 -0
  37. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui.egg-info/dependency_links.txt +0 -0
  38. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui.egg-info/entry_points.txt +0 -0
  39. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui.egg-info/requires.txt +0 -0
  40. {commandertui-1.5.0 → commandertui-1.5.1}/commandertui.egg-info/top_level.txt +0 -0
  41. {commandertui-1.5.0 → commandertui-1.5.1}/pyproject.toml +0 -0
  42. {commandertui-1.5.0 → commandertui-1.5.1}/setup.cfg +0 -0
  43. {commandertui-1.5.0 → commandertui-1.5.1}/tests/test_bookmarks.py +0 -0
  44. {commandertui-1.5.0 → commandertui-1.5.1}/tests/test_conflict_ui.py +0 -0
  45. {commandertui-1.5.0 → commandertui-1.5.1}/tests/test_conflicts.py +0 -0
  46. {commandertui-1.5.0 → commandertui-1.5.1}/tests/test_diff.py +0 -0
  47. {commandertui-1.5.0 → commandertui-1.5.1}/tests/test_executor.py +0 -0
  48. {commandertui-1.5.0 → commandertui-1.5.1}/tests/test_netlocations.py +0 -0
  49. {commandertui-1.5.0 → commandertui-1.5.1}/tests/test_plan.py +0 -0
  50. {commandertui-1.5.0 → commandertui-1.5.1}/tests/test_preview.py +0 -0
  51. {commandertui-1.5.0 → commandertui-1.5.1}/tests/test_scanner.py +0 -0
  52. {commandertui-1.5.0 → commandertui-1.5.1}/tests/test_sync.py +0 -0
  53. {commandertui-1.5.0 → commandertui-1.5.1}/tests/test_transfer.py +0 -0
  54. {commandertui-1.5.0 → commandertui-1.5.1}/tests/test_widgets.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: commandertui
3
- Version: 1.5.0
3
+ Version: 1.5.1
4
4
  Summary: Dual-pane retro terminal file manager: compare, sync, copy and move folders
5
5
  Author: Humberto Barchini
6
6
  License-Expression: MIT
@@ -183,7 +183,7 @@ the command that matches how it was installed:
183
183
 
184
184
  | Installed as | Update runs |
185
185
  |---|---|
186
- | Arch package (`makepkg`) | rebuilds from the release's PKGBUILD with `makepkg -si` (your sudo password is typed in the terminal, never read by the app) |
186
+ | Arch package (`makepkg`) | rebuilds from the release's PKGBUILD with `makepkg -si --nocheck` (tests already ran in the release workflow) (your sudo password is typed in the terminal, never read by the app) |
187
187
  | pipx | `pipx upgrade commandertui` |
188
188
  | pip | `pip install --upgrade commandertui` |
189
189
  | git checkout | no button: the dialog tells you to `git pull` |
@@ -164,7 +164,7 @@ the command that matches how it was installed:
164
164
 
165
165
  | Installed as | Update runs |
166
166
  |---|---|
167
- | Arch package (`makepkg`) | rebuilds from the release's PKGBUILD with `makepkg -si` (your sudo password is typed in the terminal, never read by the app) |
167
+ | Arch package (`makepkg`) | rebuilds from the release's PKGBUILD with `makepkg -si --nocheck` (tests already ran in the release workflow) (your sudo password is typed in the terminal, never read by the app) |
168
168
  | pipx | `pipx upgrade commandertui` |
169
169
  | pip | `pip install --upgrade commandertui` |
170
170
  | git checkout | no button: the dialog tells you to `git pull` |
@@ -0,0 +1 @@
1
+ __version__ = "1.5.1"
@@ -3,6 +3,7 @@ from __future__ import annotations
3
3
  from textual.app import ComposeResult
4
4
  from textual.binding import Binding
5
5
  from textual.screen import Screen
6
+ from textual.containers import Vertical
6
7
  from textual.widgets import Static
7
8
 
8
9
  from .ascii_font import banner
@@ -65,9 +66,16 @@ class BootScreen(Screen):
65
66
  width: auto;
66
67
  height: auto;
67
68
  }
68
- #boot-hint {
69
+ #boot-box {
69
70
  width: auto;
70
71
  height: auto;
72
+ }
73
+ #boot-hint {
74
+ /* 100% of the box, which is as wide as the art: text-align can then
75
+ really center the hint under it (width:auto hugged the text and
76
+ left it at the art's left edge). */
77
+ width: 100%;
78
+ height: auto;
71
79
  text-align: center;
72
80
  margin-top: 1;
73
81
  }
@@ -100,8 +108,9 @@ class BootScreen(Screen):
100
108
  # boxed art rendered flush against the left edge instead. `width:
101
109
  # auto` on the Static itself (set in DEFAULT_CSS) is what lets the
102
110
  # screen's own `align: center middle` actually center it as a block.
103
- yield Static("", id="boot-text")
104
- yield Static("", id="boot-hint")
111
+ with Vertical(id="boot-box"):
112
+ yield Static("", id="boot-text")
113
+ yield Static("", id="boot-hint")
105
114
 
106
115
  def on_mount(self) -> None:
107
116
  # Double-size title when the window is wide enough for it.
@@ -98,7 +98,9 @@ def detect_install() -> str:
98
98
  # Arch: the PKGBUILD in the repo is only updated after a release is tagged
99
99
  # (its checksum can't exist before the tarball does), so take the one from the
100
100
  # release's own tag, point it at that version and let updpkgsums fill the
101
- # checksum from the real tarball, then build and install.
101
+ # checksum from the real tarball, then build and install. --nocheck skips the
102
+ # PKGBUILD's check() (the whole test suite, minutes on a slow machine): the
103
+ # release workflow already ran those tests before publishing.
102
104
  _ARCH_SCRIPT = """set -e
103
105
  tmp=$(mktemp -d)
104
106
  trap 'rm -rf "$tmp"' EXIT
@@ -106,7 +108,7 @@ cd "$tmp"
106
108
  curl -fsSL https://raw.githubusercontent.com/{repo}/v{latest}/packaging/arch/PKGBUILD -o PKGBUILD
107
109
  sed -i 's/^pkgver=.*/pkgver={latest}/; s/^pkgrel=.*/pkgrel=1/' PKGBUILD
108
110
  updpkgsums
109
- makepkg -si
111
+ makepkg -si --nocheck
110
112
  """
111
113
 
112
114
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: commandertui
3
- Version: 1.5.0
3
+ Version: 1.5.1
4
4
  Summary: Dual-pane retro terminal file manager: compare, sync, copy and move folders
5
5
  Author: Humberto Barchini
6
6
  License-Expression: MIT
@@ -183,7 +183,7 @@ the command that matches how it was installed:
183
183
 
184
184
  | Installed as | Update runs |
185
185
  |---|---|
186
- | Arch package (`makepkg`) | rebuilds from the release's PKGBUILD with `makepkg -si` (your sudo password is typed in the terminal, never read by the app) |
186
+ | Arch package (`makepkg`) | rebuilds from the release's PKGBUILD with `makepkg -si --nocheck` (tests already ran in the release workflow) (your sudo password is typed in the terminal, never read by the app) |
187
187
  | pipx | `pipx upgrade commandertui` |
188
188
  | pip | `pip install --upgrade commandertui` |
189
189
  | git checkout | no button: the dialog tells you to `git pull` |
@@ -1340,3 +1340,24 @@ async def test_places_change_login_resets_and_reconnects(tmp_path, monkeypatch):
1340
1340
  await pilot.pause()
1341
1341
  assert seen == {"reset": "smb://nas/HD1/", "mount": ("smb://nas/HD1/", True)}
1342
1342
  assert netlocations.is_anonymous("smb://nas/HD1/")
1343
+
1344
+
1345
+ async def test_boot_hint_is_centered_under_the_art(tmp_path):
1346
+ from commandertui.app import CommanderApp
1347
+
1348
+ app = CommanderApp(str(tmp_path), str(tmp_path), check_updates=False)
1349
+ async with app.run_test(size=(140, 40)) as pilot:
1350
+ screen = app.screen
1351
+ assert screen.__class__.__name__ == "BootScreen"
1352
+ screen.chars_per_tick = 100000 # draw the whole art on the next tick
1353
+ for _ in range(200): # let the reveal finish: the hint only appears once drawn
1354
+ if screen._done:
1355
+ break
1356
+ await pilot.pause(0.05)
1357
+ assert screen._done
1358
+ await pilot.pause()
1359
+ art = screen.query_one("#boot-text").region
1360
+ hint = screen.query_one("#boot-hint")
1361
+ assert "ENTER" in str(hint.render())
1362
+ assert hint.region.width == art.width
1363
+ assert hint.region.x == art.x
@@ -75,7 +75,7 @@ def test_update_commands_per_install_kind():
75
75
  assert arch[:2] == ["bash", "-c"]
76
76
  script = arch[2]
77
77
  assert "v2.0.0/packaging/arch/PKGBUILD" in script and "pkgver=2.0.0" in script
78
- assert "updpkgsums" in script and "makepkg -si" in script
78
+ assert "updpkgsums" in script and "makepkg -si --nocheck" in script # tests ran in the release workflow
79
79
  assert "sudo" not in script # the password is only ever asked by makepkg, in the terminal
80
80
 
81
81
 
@@ -1 +0,0 @@
1
- __version__ = "1.5.0"
File without changes
File without changes