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

snejus / beetcamp / 10238495737
91%
main: 88%

Build:
Build:
LAST BUILD BRANCH: copilot/fix-3e8a0221-db36-4da0-a2c1-b65f91e708cd
DEFAULT BRANCH: main
Ran 04 Aug 2024 06:45PM UTC
Jobs 15
Files 10
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

04 Aug 2024 06:37PM UTC coverage: 91.123%. First build
10238495737

push

github

snejus
fix: use httpx instead of requests to avoid Bandcamp blocking

When using requests/urllib3, Bandcamp response to all requests with
403 errors.

Investigating why, I tried:
- using curl to send the same request: it worked
- writing a tiny Python script to `GET bandcamp.com/` with requests: it
  failed with 403
- waiting a week to see if it solved itself: no luck
- changing the above mentioned script to use http.client or httpx worked

I think that in this case, Bandcamp's Web Application Firewall (WAF)
blocks the requests based not on their contents but on an artifact of
how urllib3 builds/sends the data, since curl with exact same headers
works.

Instead of trying to identify the exact reason, which is quite hard
without any info on Bandcamp's WAF, and fix/workaround that, I rewrote
the very little required HTTP code to use httpx and sidestep the issue.

532 of 587 branches covered (90.63%)

Branch coverage included in aggregate %.

13 of 18 new or added lines in 3 files covered. (72.22%)

1018 of 1114 relevant lines covered (91.38%)

13.59 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
2
70.34
beetsplug/bandcamp/__init__.py
3
80.0
beetsplug/bandcamp/http.py
Jobs
ID Job ID Ran Files Coverage
1 python3.11_beets1.6.0 - 10238495737.1 04 Aug 2024 06:46PM UTC 10
90.85
GitHub Action Run
2 python3.8_beets1.6.0 - 10238495737.2 04 Aug 2024 06:46PM UTC 10
89.64
GitHub Action Run
3 python3.11_beets1.4.9 - 10238495737.3 04 Aug 2024 06:46PM UTC 10
88.77
GitHub Action Run
4 python3.10_beets1.6.0 - 10238495737.4 04 Aug 2024 06:46PM UTC 10
89.7
GitHub Action Run
5 python3.9_beets1.5.0 - 10238495737.5 04 Aug 2024 06:46PM UTC 10
89.7
GitHub Action Run
6 python3.10_beets1.5.0 - 10238495737.6 04 Aug 2024 06:46PM UTC 10
89.7
GitHub Action Run
7 python3.12_beets1.6.0 - 10238495737.7 04 Aug 2024 06:46PM UTC 10
90.64
GitHub Action Run
8 python3.12_beets1.4.9 - 10238495737.8 04 Aug 2024 06:46PM UTC 10
88.59
GitHub Action Run
9 python3.8_beets1.4.9 - 10238495737.9 04 Aug 2024 06:46PM UTC 10
87.29
GitHub Action Run
10 python3.8_beets1.5.0 - 10238495737.10 04 Aug 2024 06:46PM UTC 10
89.64
GitHub Action Run
11 python3.10_beets1.4.9 - 10238495737.11 04 Aug 2024 06:46PM UTC 10
87.35
GitHub Action Run
12 python3.11_beets1.5.0 - 10238495737.12 04 Aug 2024 06:46PM UTC 10
90.85
GitHub Action Run
13 python3.9_beets1.4.9 - 10238495737.13 04 Aug 2024 06:46PM UTC 10
87.35
GitHub Action Run
14 python3.9_beets1.6.0 - 10238495737.14 04 Aug 2024 06:46PM UTC 10
89.7
GitHub Action Run
15 python3.12_beets1.5.0 - 10238495737.15 04 Aug 2024 06:46PM UTC 10
90.64
GitHub Action Run
Source Files on build 10238495737
  • Tree
  • List 10
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • 46c51eb0 on github
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc