• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

python-useful-helpers / exec-helpers / 40924888230
89%

Build:
DEFAULT BRANCH: master
Ran 29 Oct 2026 05:49PM UTC
Jobs 8
Files 19
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

29 Oct 2026 05:48PM UTC coverage: 88.564% (+2.2%) from 86.375%
40924888230

push

github

web-flow
Fix SFTP path checks hiding a failed reconnect, restore the SFTP tests (#175)

* Port the skipped SFTP tests to pytest

mkdir, rm_rf, upload and download were tested only by skipped tests whose
mocks no longer matched the code (os.path and os.walk instead of pathlib).

- Rewrite them as pytest functions on the shared conftest fixtures.
- Use a temporary local tree instead of mocking the local filesystem.
- Cover upload into a remote directory and download of a missing path and
  of a directory.

* Raise a failed reconnect from the SFTP path checks

Since 8.2.1 a closed client reconnects before opening SFTP, but exists,
isfile, isdir and islink did that inside the try that maps OSError to
False. A reconnect that failed with a socket error (connection refused,
host unreachable) was therefore reported as a missing path, and a caller
skipped a cleanup or an upload without any error.

- Open the session before the try, so only an error from lstat becomes False.
- Document the raised exceptions in the docstrings and in SSHClient.rst.

* Create the remote directory when uploading a directory

upload() copied the contents of a local directory but never created the
remote directory they go into. A target that did not exist yet was
created only as a side effect of mkdir -p for a subdirectory, so the
upload failed when a file came first, and an empty directory produced
nothing.

- Create the target directory before copying what is inside the source.
- Test upload into an existing remote directory and to a new path.

344 of 442 branches covered (77.83%)

Branch coverage included in aggregate %.

9 of 9 new or added lines in 2 files covered. (100.0%)

1747 of 1919 relevant lines covered (91.04%)

6.95 hits per line

Jobs
ID Job ID Ran Files Coverage
1 run-3.14-ubuntu-latest - 40924888230.1 29 Oct 2026 05:50PM UTC 19
88.48
GitHub Action Run
2 run-3.14-windows-latest - 40924888230.2 29 Oct 2026 05:51PM UTC 19
80.09
GitHub Action Run
3 run-3.13-ubuntu-latest - 40924888230.3 29 Oct 2026 05:50PM UTC 19
88.56
GitHub Action Run
4 run-3.11-windows-latest - 40924888230.4 29 Oct 2026 05:50PM UTC 19
80.18
GitHub Action Run
5 run-3.12-ubuntu-latest - 40924888230.5 29 Oct 2026 05:50PM UTC 19
88.56
GitHub Action Run
6 run-3.11-ubuntu-latest - 40924888230.6 29 Oct 2026 05:49PM UTC 19
88.56
GitHub Action Run
7 run-3.13-windows-latest - 40924888230.7 29 Oct 2026 05:51PM UTC 19
80.18
GitHub Action Run
8 run-3.12-windows-latest - 40924888230.8 29 Oct 2026 05:50PM UTC 19
80.18
GitHub Action Run
Source Files on build 40924888230
  • Tree
  • List 19
  • Changed 3
  • Source Changed 3
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #40924888230
  • fe05177c on github
  • Prev Build on 8.2.1 (#40910936819)
  • Next Build on master (#41902541872)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc