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

Geoffery10 / Discord-Role-Manager
90%

Build:
DEFAULT BRANCH: main
Repo Added 14 Mar 2026 10:27PM UTC
Files 27
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

LAST BUILD ON BRANCH main
branch: SELECT
CHANGE BRANCH
x
  • No branch selected
  • dashboard
  • main

22 Jul 2026 08:52PM UTC coverage: 90.461% (+9.4%) from 81.095%
29956984604

push

github

Geoffery10
Add route tests for dashboard/main.py — 30% → 70% coverage

test_dashboard_helpers.py covered the pure helpers and schema migration
in dashboard/main.py, but the 20 route handlers had zero direct test
coverage. This file uses FastAPI's TestClient to hit each route
through the real ASGI app, with the DB and JSON file paths redirected
to a fresh tmp dir per test so each one is isolated.

Covers 13 of the 20 routes: the high-value ones that drive the
Overview, Users, Roles, Birthdays, Guilds, and Logs tabs, plus the
auth/me endpoint and /auth/logout. The OIDC callback, the SSE avatar
refresh stream, and the @app.on_event startup hook are deliberately
skipped — they need a real OIDC mock, real Discord API, and lifespan
handler respectively, all of which are out of scope for a route
contract test.

Coverage impact (combined with the existing helpers tests):
  dashboard/main.py: 30% → 70%  (+40 pp)
  overall project:   61% → 83%  (+22 pp)
  test count:       143 → 190  (+47)

Each test focuses on a single contract: status code, key payload
fields, edge cases (empty DB, invalid params, sort injection
attempt, missing log file, etc). Tests that revealed wrong
assumptions during writing were corrected to match the actual
route behavior — see the rename of test_api_guilds_merges_with_
birthday_config which originally assumed the birthday.json name
overrode the table name (it doesn't).

442 of 442 new or added lines in 1 file covered. (100.0%)

2845 of 3145 relevant lines covered (90.46%)

0.9 hits per line

Relevant lines Covered
Build:
Build:
3145 RELEVANT LINES 2845 COVERED LINES
0.9 HITS PER LINE
Source Files on main
  • Tree
  • List 27
  • Changed 1
  • Source Changed 0
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
29956984604 main Add route tests for dashboard/main.py — 30% → 70% coverage test_dashboard_helpers.py covered the pure helpers and schema migration in dashboard/main.py, but the 20 route handlers had zero direct test coverage. This file uses FastAPI's TestClient ... push 22 Jul 2026 08:54PM UTC Geoffery10 github
90.46
29950793573 main Skip guilds the bot is no longer in (was crashing the daily task loop) update() iterated the hardcoded guilds list in main.py and called client.get_guild(id).name on each entry. If the bot had been removed from a server since the list was last up... push 22 Jul 2026 07:24PM UTC Geoffery10 github
81.1
29950204037 main Silence no-op role logs and batch guild-user membership query - role_handler: add_role and remove_role now return a Result namedtuple (did_work, message) instead of a bare string. did_work is True only when the Discord API was actually called... push 22 Jul 2026 07:16PM UTC Geoffery10 github
80.91
29947658365 main Fix birthday drop in cold-cache guilds, remove-role log crash, and per-user debug spam - check_birthday: filter members via the user_guilds table instead of guild.get_member(). get_member is cache-only, so any guild with a cold member cache (... push 22 Jul 2026 06:41PM UTC Geoffery10 github
80.91
27891283875 main Link Coveralls badge to build 78252513 Clicking the coverage badge now opens the specific Coveralls build page instead of the repo's default branch overview. The badge image itself still pulls the latest coverage from the shield endpoint. push 21 Jun 2026 02:44AM UTC Geoffery10 github
80.94
27891208327 main Add test_dashboard_helpers.py — dashboard/main.py helpers at 30% coverage 13 tests covering the pure helpers and schema migration in dashboard/main.py. The route handlers (Phase 11) and OIDC discovery remain uncovered — they need full ASGI scaffo... push 21 Jun 2026 02:40AM UTC Geoffery10 github
80.94
27890672416 main Add test_main.py — main.py pure helpers now at 35% coverage 8 tests covering the two pure functions in main.py: load_roles(path='roles.json') - reads the guild-scoped {guild_id: {emoji: role_id}} format - upgrades the legacy flat {emoj... push 21 Jun 2026 02:15AM UTC Geoffery10 github
69.12
27890456328 main Add test_main.py — main.py pure helpers now at 35% coverage 8 tests covering the two pure functions in main.py: load_roles(path='roles.json') - reads the guild-scoped {guild_id: {emoji: role_id}} format - upgrades the legacy flat {emoj... push 21 Jun 2026 02:05AM UTC Geoffery10 github
68.52
27890336076 main Add test_logger.py additions — utils/logger.py now at 100% coverage Three new tests close the 94% gap: - datetime.now() raising is caught and falls back to 00:00:00 - file write PermissionError is silently swallowed (log still prints to ... push 21 Jun 2026 02:00AM UTC Geoffery10 github
66.04
27890233744 main Add test_users.py additions — users.py now at 100% coverage users.py went from 93% to 100%. 8 new tests close the remaining gap. The three previously-uncovered branches: - get_birthday_datetime() returning None for '00-00' - get_birthday_dat... push 21 Jun 2026 01:55AM UTC Geoffery10 github
65.38
See All Builds (49)
  • Repo on GitHub
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