python-tests

tarafından nvidia

NeMo Fabric için Python testleri; test yazarken bunu kullanın

npx skills add https://github.com/nvidia/nemo-fabric --skill python-tests

Python Test Style

  • Pytest is used to run tests.
  • Do not add @pytest.mark.asyncio to any test. Async tests are automatically detected and run by the async runner; the decorator is unnecessary clutter.
  • Do not add a -> None return type annotation to test functions. This is not a common convention in pytest and adds unnecessary verbosity.
  • When mocking a class, do not define a new class. Use unittest.mock.MagicMock or unittest.mock.AsyncMock, with the spec constructor argument when necessary.
  • The name of the mocked class should be prefixed with mock, not fake.
  • Prefer pytest fixtures over helper methods.
  • Do not repeat fixtures, if a fixture is needed in multiple test files, place it in a conftest.py file.
  • When creating a fixture follow this pattern:
    @pytest.fixture(name="<fixture_name>"[, scope="<scope>"])
    def <fixture_name>_fixture() -> <return_type>:
        ...
    
    Only specify the scope argument when the value is something other than "function".
  • Prefer pytest.mark.parametrize over creating individual tests for different input types.
  • If a fixture is needed for a test, but either does not return a value or the value is not used in the test, use the @pytest.mark.usefixtures decorator.
  • tests/conftest.py contains a restore_environ_fixture fixture that restores the environment variables to their original state after each test, it is defined with autouse=True so it is automatically applied to all tests. If you need to modify the environment variables in a test, do so using os.environ and the fixture will restore them after the test completes. There is no need to use monkeypatch.setenv to modify environment variables in tests.
  • Avoid defensive programming in tests. If a test fails, it should fail loudly and clearly, rather than silently passing due to defensive checks. For example
    data = results["data"]
    
    is preferred over
    data = results.get("data")
    
    Simply allow the resulting KeyError to be raised if the "data" key is not present in the results dictionary, as this will provide a clear indication of what went wrong in the test.

Common Commands

# Focused test loop
uv run pytest -k "<pattern>"

# Run all tests
uv run pytest

Do Not Write Tests For

  • Documentation.
  • Test helper code under tests/_utils/.
  • Package metadata or wheel installation behavior.

References

  • pyproject.toml
  • tests/conftest.py

nvidia tarafından daha fazla skill

compileiq-debug
nvidia
Bir şeyler yanlış olduğunda kullanın: Search() takılıyor, tüm değerlendirmeler INVALID_SCORE döndürüyor, puanlar iyileşmiyor, her yapılandırma aynı sayıyı döndürüyor, ptxas hataları…
create-github-pr
nvidia
gh CLI kullanarak GitHub pull request'leri oluşturun. Kullanıcı yeni bir PR oluşturmak, kodu incelemeye göndermek veya bir pull request açmak istediğinde kullanın. Tetikleyici anahtar kelimeler -…
nemoclaw-maintainer-cross-issue-sweep
nvidia
Diğer açık sorunları tarayarak, belirli bir PR'ın da düzeltebileceği veya yanlışlıkla bozabileceği sorunları bulur. Dosya:satır… ile bitişik düzeltme fırsatlarını ve çelişki risklerini çıktı olarak verir.
fhir-basics
nvidia
Ajanlara FHIR R4 API'lerinin nasıl çalıştığını, hangi kaynakların mevcut olduğunu, arama parametreleriyle nasıl sorgulanacağını ve tüm yanıt formatlarının nasıl doğru şekilde ayrıştırılacağını öğretir…
compileiq-validate-result
nvidia
Bir arama tamamlandıktan SONRA ve herhangi bir hızlandırma talep etmeden veya bir ACF göndermeden ÖNCE kullanın. dump_results CSV dosyasını yükler, en iyi K adayı (tek amaçlı) çıkarır…
changelog-audit
nvidia
Bir sürüm öncesinde Warp CHANGELOG.md dosyasını denetle: kayıp girdileri kurtar, kullanıcı etkisine göre sırala, girdi dilini iyileştir, satır kaydırma yap ve (sürüm dalı modunda) karşılaştırmayı artır…
maintain-dynamic-plugins
nvidia
NeMo Relay dinamik eklenti yükleyicilerini, manifestolarını, Rust yerel SDK'larını, gRPC işçi protokolünü, Python işçi SDK'sını, dokümantasyonu, testleri ve sürüm iş akışı kapsamını korur
dgx-diagnose
nvidia
Yaygın DGX Station GB300 sorunlarını teşhis edin — CUDA çökmeleri, yanlış GPU hedefleme, vLLM/SGLang konteyner hataları, MIG durumu sorunları, NVLink/Fabric Manager hataları,…