wup 0.2.16__tar.gz → 0.2.20__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {wup-0.2.16/wup.egg-info → wup-0.2.20}/PKG-INFO +82 -19
- {wup-0.2.16 → wup-0.2.20}/README.md +81 -18
- {wup-0.2.16 → wup-0.2.20}/pyproject.toml +1 -1
- {wup-0.2.16 → wup-0.2.20}/wup/__init__.py +1 -1
- wup-0.2.20/wup/anomaly_detector.py +593 -0
- wup-0.2.20/wup/assistant.py +692 -0
- {wup-0.2.16 → wup-0.2.20}/wup/cli.py +28 -0
- {wup-0.2.16 → wup-0.2.20}/wup/config.py +60 -5
- {wup-0.2.16 → wup-0.2.20}/wup/models/__init__.py +21 -8
- {wup-0.2.16 → wup-0.2.20}/wup/models/config.py +29 -3
- {wup-0.2.16 → wup-0.2.20}/wup/testql_watcher.py +52 -6
- {wup-0.2.16 → wup-0.2.20}/wup/visual_diff.py +64 -9
- {wup-0.2.16 → wup-0.2.20}/wup/web_client.py +4 -4
- {wup-0.2.16 → wup-0.2.20/wup.egg-info}/PKG-INFO +82 -19
- {wup-0.2.16 → wup-0.2.20}/wup.egg-info/SOURCES.txt +2 -14
- wup-0.2.20/wup.egg-info/top_level.txt +1 -0
- wup-0.2.16/wup-web/tests/__init__.py +0 -0
- wup-0.2.16/wup-web/tests/conftest.py +0 -23
- wup-0.2.16/wup-web/tests/test_dashboard.py +0 -35
- wup-0.2.16/wup-web/tests/test_drivers.py +0 -50
- wup-0.2.16/wup-web/tests/test_events.py +0 -95
- wup-0.2.16/wup-web/wup_web/__init__.py +0 -7
- wup-0.2.16/wup-web/wup_web/__main__.py +0 -21
- wup-0.2.16/wup-web/wup_web/main.py +0 -44
- wup-0.2.16/wup-web/wup_web/models.py +0 -59
- wup-0.2.16/wup-web/wup_web/routers/__init__.py +0 -1
- wup-0.2.16/wup-web/wup_web/routers/dashboard.py +0 -24
- wup-0.2.16/wup-web/wup_web/routers/drivers.py +0 -129
- wup-0.2.16/wup-web/wup_web/routers/events.py +0 -48
- wup-0.2.16/wup-web/wup_web/storage.py +0 -110
- wup-0.2.16/wup.egg-info/top_level.txt +0 -2
- {wup-0.2.16 → wup-0.2.20}/LICENSE +0 -0
- {wup-0.2.16 → wup-0.2.20}/setup.cfg +0 -0
- {wup-0.2.16 → wup-0.2.20}/tests/test_e2e.py +0 -0
- {wup-0.2.16 → wup-0.2.20}/tests/test_testql_watcher.py +0 -0
- {wup-0.2.16 → wup-0.2.20}/tests/test_web_client.py +0 -0
- {wup-0.2.16 → wup-0.2.20}/tests/test_wup.py +0 -0
- {wup-0.2.16 → wup-0.2.20}/wup/core.py +0 -0
- {wup-0.2.16 → wup-0.2.20}/wup/dependency_mapper.py +0 -0
- {wup-0.2.16 → wup-0.2.20}/wup/testql_discovery.py +0 -0
- {wup-0.2.16 → wup-0.2.20}/wup.egg-info/dependency_links.txt +0 -0
- {wup-0.2.16 → wup-0.2.20}/wup.egg-info/entry_points.txt +0 -0
- {wup-0.2.16 → wup-0.2.20}/wup.egg-info/requires.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: wup
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.20
|
|
4
4
|
Summary: WUP (What's Up) - Intelligent file watcher for regression testing in large projects
|
|
5
5
|
Author-email: Tom Sapletta <tom@sapletta.com>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -29,17 +29,17 @@ Dynamic: license-file
|
|
|
29
29
|
|
|
30
30
|
## AI Cost Tracking
|
|
31
31
|
|
|
32
|
-
    
|
|
33
|
+
  
|
|
34
34
|
|
|
35
|
-
- 🤖 **LLM usage:** $
|
|
36
|
-
- 👤 **Human dev:** ~$
|
|
35
|
+
- 🤖 **LLM usage:** $4.6500 (31 commits)
|
|
36
|
+
- 👤 **Human dev:** ~$732 (7.3h @ $100/h, 30min dedup)
|
|
37
37
|
|
|
38
38
|
Generated on 2026-04-29 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)
|
|
39
39
|
|
|
40
40
|
---
|
|
41
41
|
|
|
42
|
-
    
|
|
43
43
|
|
|
44
44
|
**WUP (What's Up)** - Intelligent file watcher for regression testing in large projects.
|
|
45
45
|
|
|
@@ -74,16 +74,19 @@ pip install -e ".[dev]"
|
|
|
74
74
|
## Quick Start
|
|
75
75
|
|
|
76
76
|
```bash
|
|
77
|
-
# 1.
|
|
78
|
-
wup
|
|
77
|
+
# 1. Interactive configuration (recommended)
|
|
78
|
+
wup assistant
|
|
79
|
+
|
|
80
|
+
# 2. Or quick auto-setup
|
|
81
|
+
wup assistant --quick --template fastapi
|
|
79
82
|
|
|
80
|
-
#
|
|
83
|
+
# 3. Build dependency map (one-time setup)
|
|
81
84
|
wup map-deps ./my-project
|
|
82
85
|
|
|
83
|
-
#
|
|
86
|
+
# 4. Start watching for changes
|
|
84
87
|
wup watch ./my-project
|
|
85
88
|
|
|
86
|
-
#
|
|
89
|
+
# 5. Start with live dashboard
|
|
87
90
|
wup watch ./my-project --dashboard
|
|
88
91
|
```
|
|
89
92
|
|
|
@@ -186,6 +189,16 @@ Full regression: 15s test → 15% CPU spike
|
|
|
186
189
|
|
|
187
190
|
## Configuration
|
|
188
191
|
|
|
192
|
+
### Service Types
|
|
193
|
+
|
|
194
|
+
WUP supports three service types for coincidence detection and intelligent testing:
|
|
195
|
+
|
|
196
|
+
- **web** - HTTP/API services (FastAPI, Flask, Django, Express.js, etc.)
|
|
197
|
+
- **shell** - CLI tools, scripts, and command-line services
|
|
198
|
+
- **auto** - Automatic detection (default)
|
|
199
|
+
|
|
200
|
+
Coincidence detection allows WUP to identify related services. For example, if you have `users-web` and `users-shell`, WUP will detect they share the same domain and test both when relevant files change.
|
|
201
|
+
|
|
189
202
|
### wup.yaml Configuration File
|
|
190
203
|
|
|
191
204
|
WUP supports declarative configuration via `wup.yaml` (or `.wup.yaml`) in your project root. This allows you to define watch paths, service-specific settings, and test strategies.
|
|
@@ -196,6 +209,11 @@ Generate a default configuration:
|
|
|
196
209
|
wup init
|
|
197
210
|
```
|
|
198
211
|
|
|
212
|
+
The generated `wup.yaml` includes:
|
|
213
|
+
- **Metadata header**: Version, generation date, documentation links
|
|
214
|
+
- **Dependencies info**: WUP version and optional wupbro dashboard
|
|
215
|
+
- **Quick start guide**: Common commands to get started
|
|
216
|
+
|
|
199
217
|
Example `wup.yaml`:
|
|
200
218
|
|
|
201
219
|
```yaml
|
|
@@ -333,15 +351,15 @@ Visible in `wup status` as a "Visual DOM diffs" section.
|
|
|
333
351
|
|
|
334
352
|
If Playwright is not installed, the visual diff module logs a warning and skips scanning — it does **not** break the watcher.
|
|
335
353
|
|
|
336
|
-
## Web Dashboard (
|
|
354
|
+
## Web Dashboard (wupbro)
|
|
337
355
|
|
|
338
356
|
Optional FastAPI backend that receives events from WUP agents and renders a live dashboard.
|
|
339
357
|
|
|
340
358
|
### Run
|
|
341
359
|
|
|
342
360
|
```bash
|
|
343
|
-
pip install -e
|
|
344
|
-
|
|
361
|
+
pip install -e wupbro/
|
|
362
|
+
wupbro --reload --port 8000
|
|
345
363
|
```
|
|
346
364
|
|
|
347
365
|
Open <http://localhost:8000/> to see regressions, passes, anomalies, visual diffs, and health transitions in real time.
|
|
@@ -359,12 +377,12 @@ web:
|
|
|
359
377
|
Or via env:
|
|
360
378
|
|
|
361
379
|
```bash
|
|
362
|
-
export
|
|
380
|
+
export WUPBRO_ENDPOINT=http://localhost:8000
|
|
363
381
|
```
|
|
364
382
|
|
|
365
383
|
The agent fire-and-forgets `REGRESSION`, `PASS`, `ANOMALY`, `VISUAL_DIFF`, and `HEALTH_TRANSITION` events. Network errors never break the watcher (soft-fail).
|
|
366
384
|
|
|
367
|
-
See `
|
|
385
|
+
See `wupbro/README.md` for full API reference and driver endpoints (DOM diff, browserless, anomaly).
|
|
368
386
|
|
|
369
387
|
## Project Structure
|
|
370
388
|
|
|
@@ -379,12 +397,12 @@ wup/
|
|
|
379
397
|
│ ├── testql_discovery.py # TestQLEndpointDiscovery: scenario parsing
|
|
380
398
|
│ ├── testql_watcher.py # TestQLWatcher: scenario runner + health tracking
|
|
381
399
|
│ ├── visual_diff.py # VisualDiffer: Playwright DOM snapshot + diff engine
|
|
382
|
-
│ ├── web_client.py # WebClient: async HTTP event sink →
|
|
400
|
+
│ ├── web_client.py # WebClient: async HTTP event sink → wupbro
|
|
383
401
|
│ └── models/
|
|
384
402
|
│ ├── __init__.py
|
|
385
403
|
│ └── config.py # Dataclasses: WupConfig, VisualDiffConfig, WebConfig...
|
|
386
|
-
├──
|
|
387
|
-
│ ├──
|
|
404
|
+
├── wupbro/ # Optional FastAPI dashboard (separate package)
|
|
405
|
+
│ ├── wupbro/
|
|
388
406
|
│ │ ├── main.py # FastAPI app
|
|
389
407
|
│ │ ├── routers/ # events, drivers, dashboard
|
|
390
408
|
│ │ ├── storage.py # EventStore (in-memory + JSONL)
|
|
@@ -436,6 +454,18 @@ python3 examples/visual_diff_demo.py http://localhost:8100/health
|
|
|
436
454
|
|
|
437
455
|
# TestQL + visual diff integration
|
|
438
456
|
python3 examples/testql_integration.py /path/to/project
|
|
457
|
+
|
|
458
|
+
# Monorepo analysis (c2004-style large projects)
|
|
459
|
+
python3 examples/c2004_monorepo_demo.py /path/to/monorepo
|
|
460
|
+
|
|
461
|
+
# CI/CD integration patterns
|
|
462
|
+
python3 examples/ci_cd_integration.py
|
|
463
|
+
|
|
464
|
+
# Generate GitHub Actions workflow
|
|
465
|
+
python3 examples/ci_cd_integration.py --generate-github-actions
|
|
466
|
+
|
|
467
|
+
# Webhook notifications (Slack, Teams, Discord)
|
|
468
|
+
python3 examples/webhook_notifications.py
|
|
439
469
|
```
|
|
440
470
|
|
|
441
471
|
### Building & Publishing
|
|
@@ -444,6 +474,39 @@ python3 examples/testql_integration.py /path/to/project
|
|
|
444
474
|
python -m build
|
|
445
475
|
```
|
|
446
476
|
|
|
477
|
+
## Real-World Testing
|
|
478
|
+
|
|
479
|
+
WUP has been tested on production-scale projects:
|
|
480
|
+
|
|
481
|
+
- **c2004 Project** (maskservice/c2004): Large IoT platform with 21+ connect-* modules
|
|
482
|
+
- 29 services auto-detected by assistant
|
|
483
|
+
- 100+ YAML configuration files monitored
|
|
484
|
+
- Anomaly detection: 0.06s for 5 config files (~1ms/file)
|
|
485
|
+
- Framework: Custom Python/FastAPI hybrid
|
|
486
|
+
|
|
487
|
+
## Documentation
|
|
488
|
+
|
|
489
|
+
Comprehensive documentation is available in the `docs/` directory:
|
|
490
|
+
|
|
491
|
+
- **[Configuration Assistant](docs/WUP_ASSISTANT.md)** - Interactive setup guide for `wup.yaml`
|
|
492
|
+
- `wup assistant` - Interactive configuration wizard
|
|
493
|
+
- Auto-detects framework and services
|
|
494
|
+
- Intelligent suggestions and validation
|
|
495
|
+
|
|
496
|
+
- **[Anomaly Detection](docs/ANOMALY_DETECTION.md)** - Fast alternatives to Playwright
|
|
497
|
+
- Hash-based change detection (~1ms per file)
|
|
498
|
+
- YAML structure analysis
|
|
499
|
+
- Python AST diff for API changes
|
|
500
|
+
- Configure with `anomaly_detection:` in wup.yaml
|
|
501
|
+
|
|
502
|
+
- **[Browser Notifications](docs/NOTIFICATIONS.md)** - Real-time alerts in wupbro
|
|
503
|
+
- 7 notification types (regressions, status changes, recoveries)
|
|
504
|
+
- Configurable per-type with cooldown
|
|
505
|
+
- Server-Sent Events for instant delivery
|
|
506
|
+
- Browser Notifications API integration
|
|
507
|
+
|
|
508
|
+
- **[TestQL Integration](docs/TESTQL_INTEGRATION.md)** - TestQL scenario support
|
|
509
|
+
|
|
447
510
|
## License
|
|
448
511
|
|
|
449
512
|
Licensed under Apache-2.0.
|
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
|
|
4
4
|
## AI Cost Tracking
|
|
5
5
|
|
|
6
|
-
    
|
|
7
|
+
  
|
|
8
8
|
|
|
9
|
-
- 🤖 **LLM usage:** $
|
|
10
|
-
- 👤 **Human dev:** ~$
|
|
9
|
+
- 🤖 **LLM usage:** $4.6500 (31 commits)
|
|
10
|
+
- 👤 **Human dev:** ~$732 (7.3h @ $100/h, 30min dedup)
|
|
11
11
|
|
|
12
12
|
Generated on 2026-04-29 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
16
|
-
    
|
|
17
17
|
|
|
18
18
|
**WUP (What's Up)** - Intelligent file watcher for regression testing in large projects.
|
|
19
19
|
|
|
@@ -48,16 +48,19 @@ pip install -e ".[dev]"
|
|
|
48
48
|
## Quick Start
|
|
49
49
|
|
|
50
50
|
```bash
|
|
51
|
-
# 1.
|
|
52
|
-
wup
|
|
51
|
+
# 1. Interactive configuration (recommended)
|
|
52
|
+
wup assistant
|
|
53
|
+
|
|
54
|
+
# 2. Or quick auto-setup
|
|
55
|
+
wup assistant --quick --template fastapi
|
|
53
56
|
|
|
54
|
-
#
|
|
57
|
+
# 3. Build dependency map (one-time setup)
|
|
55
58
|
wup map-deps ./my-project
|
|
56
59
|
|
|
57
|
-
#
|
|
60
|
+
# 4. Start watching for changes
|
|
58
61
|
wup watch ./my-project
|
|
59
62
|
|
|
60
|
-
#
|
|
63
|
+
# 5. Start with live dashboard
|
|
61
64
|
wup watch ./my-project --dashboard
|
|
62
65
|
```
|
|
63
66
|
|
|
@@ -160,6 +163,16 @@ Full regression: 15s test → 15% CPU spike
|
|
|
160
163
|
|
|
161
164
|
## Configuration
|
|
162
165
|
|
|
166
|
+
### Service Types
|
|
167
|
+
|
|
168
|
+
WUP supports three service types for coincidence detection and intelligent testing:
|
|
169
|
+
|
|
170
|
+
- **web** - HTTP/API services (FastAPI, Flask, Django, Express.js, etc.)
|
|
171
|
+
- **shell** - CLI tools, scripts, and command-line services
|
|
172
|
+
- **auto** - Automatic detection (default)
|
|
173
|
+
|
|
174
|
+
Coincidence detection allows WUP to identify related services. For example, if you have `users-web` and `users-shell`, WUP will detect they share the same domain and test both when relevant files change.
|
|
175
|
+
|
|
163
176
|
### wup.yaml Configuration File
|
|
164
177
|
|
|
165
178
|
WUP supports declarative configuration via `wup.yaml` (or `.wup.yaml`) in your project root. This allows you to define watch paths, service-specific settings, and test strategies.
|
|
@@ -170,6 +183,11 @@ Generate a default configuration:
|
|
|
170
183
|
wup init
|
|
171
184
|
```
|
|
172
185
|
|
|
186
|
+
The generated `wup.yaml` includes:
|
|
187
|
+
- **Metadata header**: Version, generation date, documentation links
|
|
188
|
+
- **Dependencies info**: WUP version and optional wupbro dashboard
|
|
189
|
+
- **Quick start guide**: Common commands to get started
|
|
190
|
+
|
|
173
191
|
Example `wup.yaml`:
|
|
174
192
|
|
|
175
193
|
```yaml
|
|
@@ -307,15 +325,15 @@ Visible in `wup status` as a "Visual DOM diffs" section.
|
|
|
307
325
|
|
|
308
326
|
If Playwright is not installed, the visual diff module logs a warning and skips scanning — it does **not** break the watcher.
|
|
309
327
|
|
|
310
|
-
## Web Dashboard (
|
|
328
|
+
## Web Dashboard (wupbro)
|
|
311
329
|
|
|
312
330
|
Optional FastAPI backend that receives events from WUP agents and renders a live dashboard.
|
|
313
331
|
|
|
314
332
|
### Run
|
|
315
333
|
|
|
316
334
|
```bash
|
|
317
|
-
pip install -e
|
|
318
|
-
|
|
335
|
+
pip install -e wupbro/
|
|
336
|
+
wupbro --reload --port 8000
|
|
319
337
|
```
|
|
320
338
|
|
|
321
339
|
Open <http://localhost:8000/> to see regressions, passes, anomalies, visual diffs, and health transitions in real time.
|
|
@@ -333,12 +351,12 @@ web:
|
|
|
333
351
|
Or via env:
|
|
334
352
|
|
|
335
353
|
```bash
|
|
336
|
-
export
|
|
354
|
+
export WUPBRO_ENDPOINT=http://localhost:8000
|
|
337
355
|
```
|
|
338
356
|
|
|
339
357
|
The agent fire-and-forgets `REGRESSION`, `PASS`, `ANOMALY`, `VISUAL_DIFF`, and `HEALTH_TRANSITION` events. Network errors never break the watcher (soft-fail).
|
|
340
358
|
|
|
341
|
-
See `
|
|
359
|
+
See `wupbro/README.md` for full API reference and driver endpoints (DOM diff, browserless, anomaly).
|
|
342
360
|
|
|
343
361
|
## Project Structure
|
|
344
362
|
|
|
@@ -353,12 +371,12 @@ wup/
|
|
|
353
371
|
│ ├── testql_discovery.py # TestQLEndpointDiscovery: scenario parsing
|
|
354
372
|
│ ├── testql_watcher.py # TestQLWatcher: scenario runner + health tracking
|
|
355
373
|
│ ├── visual_diff.py # VisualDiffer: Playwright DOM snapshot + diff engine
|
|
356
|
-
│ ├── web_client.py # WebClient: async HTTP event sink →
|
|
374
|
+
│ ├── web_client.py # WebClient: async HTTP event sink → wupbro
|
|
357
375
|
│ └── models/
|
|
358
376
|
│ ├── __init__.py
|
|
359
377
|
│ └── config.py # Dataclasses: WupConfig, VisualDiffConfig, WebConfig...
|
|
360
|
-
├──
|
|
361
|
-
│ ├──
|
|
378
|
+
├── wupbro/ # Optional FastAPI dashboard (separate package)
|
|
379
|
+
│ ├── wupbro/
|
|
362
380
|
│ │ ├── main.py # FastAPI app
|
|
363
381
|
│ │ ├── routers/ # events, drivers, dashboard
|
|
364
382
|
│ │ ├── storage.py # EventStore (in-memory + JSONL)
|
|
@@ -410,6 +428,18 @@ python3 examples/visual_diff_demo.py http://localhost:8100/health
|
|
|
410
428
|
|
|
411
429
|
# TestQL + visual diff integration
|
|
412
430
|
python3 examples/testql_integration.py /path/to/project
|
|
431
|
+
|
|
432
|
+
# Monorepo analysis (c2004-style large projects)
|
|
433
|
+
python3 examples/c2004_monorepo_demo.py /path/to/monorepo
|
|
434
|
+
|
|
435
|
+
# CI/CD integration patterns
|
|
436
|
+
python3 examples/ci_cd_integration.py
|
|
437
|
+
|
|
438
|
+
# Generate GitHub Actions workflow
|
|
439
|
+
python3 examples/ci_cd_integration.py --generate-github-actions
|
|
440
|
+
|
|
441
|
+
# Webhook notifications (Slack, Teams, Discord)
|
|
442
|
+
python3 examples/webhook_notifications.py
|
|
413
443
|
```
|
|
414
444
|
|
|
415
445
|
### Building & Publishing
|
|
@@ -418,6 +448,39 @@ python3 examples/testql_integration.py /path/to/project
|
|
|
418
448
|
python -m build
|
|
419
449
|
```
|
|
420
450
|
|
|
451
|
+
## Real-World Testing
|
|
452
|
+
|
|
453
|
+
WUP has been tested on production-scale projects:
|
|
454
|
+
|
|
455
|
+
- **c2004 Project** (maskservice/c2004): Large IoT platform with 21+ connect-* modules
|
|
456
|
+
- 29 services auto-detected by assistant
|
|
457
|
+
- 100+ YAML configuration files monitored
|
|
458
|
+
- Anomaly detection: 0.06s for 5 config files (~1ms/file)
|
|
459
|
+
- Framework: Custom Python/FastAPI hybrid
|
|
460
|
+
|
|
461
|
+
## Documentation
|
|
462
|
+
|
|
463
|
+
Comprehensive documentation is available in the `docs/` directory:
|
|
464
|
+
|
|
465
|
+
- **[Configuration Assistant](docs/WUP_ASSISTANT.md)** - Interactive setup guide for `wup.yaml`
|
|
466
|
+
- `wup assistant` - Interactive configuration wizard
|
|
467
|
+
- Auto-detects framework and services
|
|
468
|
+
- Intelligent suggestions and validation
|
|
469
|
+
|
|
470
|
+
- **[Anomaly Detection](docs/ANOMALY_DETECTION.md)** - Fast alternatives to Playwright
|
|
471
|
+
- Hash-based change detection (~1ms per file)
|
|
472
|
+
- YAML structure analysis
|
|
473
|
+
- Python AST diff for API changes
|
|
474
|
+
- Configure with `anomaly_detection:` in wup.yaml
|
|
475
|
+
|
|
476
|
+
- **[Browser Notifications](docs/NOTIFICATIONS.md)** - Real-time alerts in wupbro
|
|
477
|
+
- 7 notification types (regressions, status changes, recoveries)
|
|
478
|
+
- Configurable per-type with cooldown
|
|
479
|
+
- Server-Sent Events for instant delivery
|
|
480
|
+
- Browser Notifications API integration
|
|
481
|
+
|
|
482
|
+
- **[TestQL Integration](docs/TESTQL_INTEGRATION.md)** - TestQL scenario support
|
|
483
|
+
|
|
421
484
|
## License
|
|
422
485
|
|
|
423
486
|
Licensed under Apache-2.0.
|
|
@@ -7,7 +7,7 @@ WUP monitors file changes and runs intelligent regression tests using a 3-layer
|
|
|
7
7
|
3. Detail Layer: Full tests with blame reports (only on failure)
|
|
8
8
|
"""
|
|
9
9
|
|
|
10
|
-
__version__ = "0.2.
|
|
10
|
+
__version__ = "0.2.20"
|
|
11
11
|
__author__ = "Tom Sapletta"
|
|
12
12
|
|
|
13
13
|
from .config import load_config, save_config, get_default_config
|