85dd821400
tests: disable Req retries in test env to eliminate ~7s-per-test delays
...
Req's default `retry: :safe_transient` waits ~7s across exponential backoff
when the stubbed response is a 5xx or connection error. Tests that asserted
error-status behavior paid that price on every run.
Disable retries in test env for every direct Req caller:
* `Towerops.HTTP` (covers weather/netbox/geocoding/http_executor/pagerduty)
* `CnMaestro.Client`, `Gaiia.Client`, `Preseem.Client`, `Sonar.Client`,
`Splynx.Client`, `Agents.ReleaseChecker`, `Billing.StripeClient`
Use `Keyword.put_new(:retry, false)` so any test explicitly opting into
retry behavior is respected.
Suite time: 82.8s → 65.3s. Slowest test dropped from 7050ms to 1447ms.
2026-04-24 10:04:52 -05:00
30248504e2
optimize-slow-tests ( #193 )
...
Reviewed-on: graham/towerops-web#193
2026-03-27 17:05:29 -05:00
f703e61b12
fix: code quality improvements and test reliability ( #139 )
...
Various code quality improvements and fixes:
- Settings: return error instead of auto-creating unknown settings
- PagerDuty: proper backoff timing with to_timeout()
- Gaiia sync: remove unnecessary transaction wrapper
- HTTP/UISP: simplify test plug setup
- Agent channel: tagged tuple config for check types
- SNMP: fix Task.yield/shutdown pattern, remove stale preload
- Discovery: simplify error handling
- Tests: bump executor timeouts for CI reliability
- Dockerfile: remove unnecessary --force compile
- Renovate/CI: config cleanup
Split from #135 .
Reviewed-on: graham/towerops-web#139
2026-03-24 09:12:59 -05:00
20d63c408a
perf: speed up test suite from 118s to 65s (45% faster) ( #126 )
...
Optimized slow tests by reducing unnecessary network timeouts and retry delays:
**PagerDuty tests (7.3s → 0.2s, 97% faster):**
- Added test-specific sleep/backoff configuration
- Use 1ms sleep instead of 1s/2s/4s exponential backoff in tests
- Maintains retry logic for production, fast tests in dev
**HTTP/UISP client tests (7s → <0.1s, 99% faster):**
- Disabled Req retry middleware in test environment
- Added 1s receive_timeout for test requests
- Prevents 7s retry delays on error status codes
**Ping executor tests (13s → 1.5s, 88% faster per test):**
- Reduced ping timeout from 6-10s to 0.5-1s for localhost
- Reduced timeout to 1s for unreachable hosts
- Still validates behavior, just faster
**Changes:**
- lib/towerops/pagerduty/client.ex: test-aware sleep/backoff
- lib/towerops/http.ex: disable retry in tests, 1s timeout
- lib/towerops/uisp/client.ex: disable retry in tests, 1s timeout
- test/towerops/monitoring/executors/ping_executor_test.exs: reduced timeouts
**Result:**
Total test time: 118.4s → 65.3s (45% improvement)
Top 10 slowest: 66.1s → 10.9s (83% improvement)
Reviewed-on: graham/towerops-web#126
2026-03-23 10:34:23 -05:00
495b1a75b2
Add GeoIP import HTTP tests
2026-03-10 16:02:49 -05:00