Otomatik kullanılan (autouse) fixture’lar

Python'da Teste Giriş

Alexander Levin

Data Scientist

Autouse argümanı

  • Fixture’ın isteğe bağlı bir boolean argümanı
  • Fixture decorator’ına verilebilir
  • autouse=True iken fixture, istekten bağımsız çalışır
  • Gereksiz fixture çağrılarını azaltır
Python'da Teste Giriş

Ne zaman kullanılır

Tüm testler için belirli ortam hazırlıkları veya değişiklikler gerekiyorsa.

Örneğin, tüm testlerin:

  • Aynı veriyi kullanması
  • Aynı bağlantılara (veri, API vb.) sahip olması
  • Aynı ortam yapılandırmasına sahip olması
  • İzleme, günlükleme veya profilleme kullanması

Bu durumlar "autouse" argümanı ile ele alınmalıdır.

Python'da Teste Giriş

Autouse örneği

"Autouse" fixture örneği:

import pytest
import pandas as pd

# Autouse fixture
@pytest.fixture(autouse=True)
def set_pd_options():
    pd.set_option('display.max_columns', 5000)

# Test function
def test_pd_options():
    assert pd.get_option('display.max_columns') == 5000
Python'da Teste Giriş

Autouse: hatalı örnek

"Autouse" fixture’ın hatalı kullanımı:

import pytest
import pandas as pd

# Wrong autoused fixture
@pytest.fixture(autouse=True)
def wrong_fixture():
    return [1,2,3,4,5]

# Test function
def test_type():
    assert type(wrong_fixture) == list

Fixture’ın düzeltilmiş kullanımı:

import pytest
import pandas as pd

# Wrong autoused fixture
@pytest.fixture
def correct_fixture():
    return [1,2,3,4,5]

# Test function
def test_type(correct_fixture):
    assert type(correct_fixture) == list
Python'da Teste Giriş

Autouse örneği: çıktı

Örneğin çıktısı:

autouse örnek çıktısı

Python'da Teste Giriş

Özet

  • autouse tanımı: Fixture decorator’ının isteğe bağlı boolean argümanı
  • Kullanım: @pytest.fixture(autouse=True)
  • Avantaj: Gereksiz fixture çağrılarını azaltır; kodu basitleştirir
  • Özellik: autouse=True iken fixture, istek olmasa da çalışır
  • Ne zaman: Ortam hazırlıkları veya değişiklikleri gerektiğinde
  • Kullanım örnekleri:
    • Tüm testler için veriyi okuma ve hazırlama
    • Bağlantıları ve ortam parametrelerini yapılandırma
    • İzleyici, günlükleme veya profiler ekleme
Python'da Teste Giriş

Hadi pratik yapalım!

Python'da Teste Giriş

Preparing Video For Download...