Burun

2009-05-07 13 views
22

ile sqlachemy modeli test python biriminin bir örneğine ihtiyacım var Birisi bana burun kullanılarak oluşturulan sqlalchemy modeli için birim testleri yazabilirsiniz.Burun

Sadece basit bir örneğe ihtiyacım var.

Teşekkürler.

+3

Daha spesifik olun: Burun nasıl kurulduğuna dair yardıma ihtiyacınız var mı? veya model nasıl test edilir? – van

cevap

35

Sadece bir bellek içi SQLite veritabanı oluşturabilir ve oturumunuzu buna bağlayabilirsiniz.

Örnek:


from db import session # probably a contextbound sessionmaker 
from db import model 

from sqlalchemy import create_engine 

def setup(): 
    engine = create_engine('sqlite:///:memory:') 
    session.configure(bind=engine) 
    # You probably need to create some tables and 
    # load some test data, do so here. 

    # To create tables, you typically do: 
    model.metadata.create_all(engine) 

def teardown(): 
    session.remove() 


def test_something(): 
    instances = session.query(model.SomeObj).all() 
    eq_(0, len(instances)) 
    session.add(model.SomeObj()) 
    session.flush() 
    # ... 
+1

Harika cevap! Ben gerçekten tablolar oluşturmak için MetaData nesnesinde 'create_all' çağırmanız gerektiğini düşünüyorum. Ayrıca, db satıcısına özgü veri türleri kullanılıyorsa, DDL'lerin bazıları çalışmayabilir. – van

+0

İyi puanlar. Örneği, create_all'a çağrı göstermek için güncelledim. – codeape

+5

SQLLite sizin üretim veritabanınız değilse, bu korkunç bir cevaptır. Hiçbir zaman üretimde kullandığınızdan farklı bir veritabanı ile test etmeyin. Çok fazla farklılığa sahip olacaklar ve kendinizi bir felaket için ayarlıyorsunuz. –

2

Kontrol dışarı fixture projesi. Bunu test etmek için burun kullandık ve aynı zamanda test etmek için verileri tanımlayıcı bir şekilde tanımlamanın bir yolu da var, orada kullanmanız için bazı kapsamlı örnekler olacak! Ayrıca bkz. fixture documentation.