

Also from Kynth Studios


Also from Kynth Studios


Also from Kynth Studios
12345678# Testing Standards910## Overview1112mtg-utils uses pytest for testing with a 100% coverage requirement. This document outlines the testing standards and practices for the project.1314---1516## Test Structure1718```19tests/20├── conftest.py # Shared fixtures and configurations21├── test_main.py # CLI entry point tests22├── test_config.py # Configuration loading tests23├── test_console.py # Console output tests24├── test_moxfield_api.py # API integration tests25├── test_compare_decks.py # Deck comparison tests26├── test_list_decks.py # List decks tests27├── test_readers.py # File reading utilities tests28├── test_commands/ # Command-specific tests29│ ├── test_check_missing_cards.py30│ └── test_update_card_library.py31└── test_utils/ # Utility module tests32 ├── test_cards.py33 ├── test_config.py34 ├── test_moxfield_api.py35 └── test_readers.py36```3738---3940## Test Types4142### Unit Tests4344- Pure logic tests, no file I/O or network mocking45- Mark with `@pytest.mark.unit`46- Focus on isolated function/class behavior4748### Integration Tests4950- CLI runner + filesystem + mocks51- Mark with `@pytest.mark.integration`52- Test end-to-end workflows5354---5556## Coverage Requirements5758- **Target**: 100% coverage59- Configured in `pyproject.toml`:60- When checking for coverage always run entire test suite6162```toml63[tool.coverage.report]64fail_under = 10065exclude_lines = [66 "pragma: no cover",67 "if __name__ == .__main__.:",68]69```7071---7273## Writing Good Tests7475### Use Fixtures7677Utilize `conftest.py` fixtures to avoid duplication:7879```python80def test_something(repo):81 cfg = repo(binder_id="abc", decks={"my_deck": {"id": "x", "file": "card_library/decks/my_deck.txt"}})82```8384### Mock External Dependencies8586Use `monkeypatch` or `unittest.mock` for API calls:8788```python89from unittest.mock import patch9091@patch("requests.get")92def test_api_call(mock_get):9394```
One repository carrying more than one format is the comparison this product exists for: does anyone actually write different content in each file, or is one a copy of the other?
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| gasbasd/mtg-utils.clinerules/05-cli-workflows.md · 0 | Cline rules | setuparch | 54/100 | 8 days ago | |
| gasbasd/mtg-utils.clinerules/01-project-overview.md · 0 | Cline rules | setuptestlint-formatarch | 89/100 | 8 days ago | |
| gasbasd/mtg-utils.clinerules/02-coding-standards.md · 0 | Cline rules | lint-formatstyletypesdependencies+1 | 77/100 | 8 days ago | |
| gasbasd/mtg-utils.clinerules/04-security-practices.md · 0 | Cline rules | setupstylesecuritydo-not | 61/100 | 8 days ago | |
| gasbasd/mtg-utils.clinerules/06-version-control.md · 0 | Cline rules | testlint-formatstyletypes+4 | 62/100 | 8 days ago | |
| gasbasd/mtg-utils.clinerules/memory-bank.md · 0 | Cline rules | archperformancedocs | 58/100 | 8 days ago | |
| gasbasd/mtg-utils.github/copilot-instructions.md · 0 | Copilot instructions | setupbuildtestlint-format+3 | 89/100 | 8 days ago |
Same format, overlapping stack, ranked by quality.
| Repository | Format | Stack | Covers | Score | Changed |
|---|---|---|---|---|---|
| enuno/unifi-mcp-server.clinerules · 226 | Cline rules | setuptestlint-formatstyle+10 | 96/100 | today | |
| u9401066/zotero-keeper.clinerules/50-pubmed-project.md · 6 | Cline rules | testlint-formatstylearch+1 | 94/100 | 14 days ago | |
| u9401066/pubmed-search-mcp.clinerules/50-pubmed-project.md · 25 | Cline rules | testlint-formatstylearch+1 | 94/100 | 14 days ago | |
| u9401066/zotero-keepervscode-extension/resources/repo-assets/pubmed-search-mcp/.clinerules/50-pubmed-project.md · 6 | Cline rules | testlint-formatstylearch+1 | 94/100 | 14 days ago | |
| ryok/python-boilerplate.clinerules/common-commands.md · 0 | Cline rules | setupbuildtestlint-format+3 | 90/100 | 13 days ago | |
| gasbasd/mtg-utils.clinerules/01-project-overview.md · 0 | Cline rules | setuptestlint-formatarch | 89/100 | 8 days ago | |
| u9401066/pubmed-search-mcp.clinerules/60-pubmed-python.md · 25 | Cline rules | setuptestlint-formatstyle+2 | 86/100 | 14 days ago | |
| u9401066/pubmed-search-mcp.clinerules/00-project.md · 25 | Cline rules | testlint-formatstylearch+1 | 86/100 | 14 days ago |
A badge carrying the measured quality of the strongest agent config file in this repository, out of 100. It reads from this index every time somebody loads your page, so it changes when the measurement changes and there is nothing to keep up to date. Free, no account, and the value is not something you or we can set by hand.
[](https://rulestack.kynth.studio/configs/gasbasd-mtg-utils-clinerules-03-testing-standards)Would rather not hotlink us? Every badge is also served in shields.io’s endpoint schema, so shields renders the image and your readers never talk to our domain:
Published by Toolproof, the masthead over this index and eight others. The method behind the number is at toolproof.kynth.studio/methodology, and the whole thing is readable as JSON with no key at /api.