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

thanos / azure_sdk / 44cd83eaba9019886b086a9006de2e68c9ba4280-PR-57
92%
main: 93%

Build:
Build:
LAST BUILD BRANCH: v0.4.1/Blob_properties
DEFAULT BRANCH: main
Ran 30 Sep 2026 04:51PM UTC
Jobs 1
Files 35
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

30 Sep 2026 04:48PM UTC coverage: 92.097% (+2.9%) from 89.167%
44cd83eaba9019886b086a9006de2e68c9ba4280-PR-57

Pull #57

github

thanos
The blocking three:
- User-delegation SAS (F1): the missing field is in, and both SAS string-to-signs are now built from named field lists, so the order can be checked by reading.
- Concurrent uploads (F2): each upload_stream uses a random block-ID prefix, so two uploads to one blob can't mix blocks.Downloads of a changing blob (F3): download_stream pins the ETag it sees at the start. If the blob is overwritten
  mid-stream, you get a StreamError instead of mixed bytes.

Verification
- 182 tests and 101 doctests pass. Format, credo, Dialyzer, Doctor, docs and the livebook check are clean. Sobelow still reports only the nit-level notice you told me to leave.
- The 11 Azurite tests also pass; they ran against the Azurite already running on your machine. They now include a real SAS round trip: a SAS we generate must work for a download, and a write-only SAS must be refused.
- The blob and container SAS signatures match reference signatures from Azure's own Python SDK. I downloaded it into the scratchpad only; nothing was installed.
- The user-delegation test checks the documented field format. Python's SDK can't serve as a reference there, because it targets a newer service version that adds four fields. Its source does confirm the field I added. With the old sas.ex swapped back in, 9 of the new SAS tests fail, including this one.
- The F5 chunking fix is measured: 64 MiB in 4 KiB pieces went from 3.9 s to 3 ms.

Other code fixes
- F4: lease acquire always sends a proposed lease ID (a random GUID if you don't give one), so a retried acquire gets the same lease. Lease change is never retried.
- F10–F14: a bad user-delegation key response now returns an error. Missing options return InvalidArgument instead of raising. SAS times are signed as UTC, and permissions are put into Azure's required order. Date conditions accept a DateTime.
- F15, F16, F20: Put Block sends only the lease ID, and the If-* conditions go on the final commit. An upload that would need... (continued)
Pull Request #57: V0.3.0/production blob

228 of 234 new or added lines in 7 files covered. (97.44%)

606 of 658 relevant lines covered (92.1%)

12384.01 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
97.53
2.79% lib/azure_sdk/storage/blob.ex
2
93.18
-2.56% lib/azure_sdk/storage/container.ex
1
93.33
lib/azure_sdk/storage/blob/block.ex
1
96.55
lib/azure_sdk/storage/operation.ex
Jobs
ID Job ID Ran Files Coverage
1 44cd83eaba9019886b086a9006de2e68c9ba4280-PR-57.1 30 Sep 2026 04:51PM UTC 35
92.1
GitHub Action Run
Source Files on build 44cd83eaba9019886b086a9006de2e68c9ba4280-PR-57
  • Tree
  • List 35
  • Changed 5
  • Source Changed 0
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Pull Request #57
  • PR Base - main (#8E79BBDE...)
  • Delete
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