2014-01-19 1 views
0

ming에서 새롭게 생성 된 모델을 테스트하고 싶지만 모의가 성공하지 못해 내가 무엇을 놓치고 있는지 확인하십시오.mings mim (메모리에있는 mongo)을 사용하여 mongodb 테스트

모델

from ming import Field, schema 
    from ming.declarative import Document 

    bind = create_datastore('test') 
    session = Session(bind) 

    class Post(Document): 
     class __mongometa__: 
      session = session 
      name = 'blog' 
     _id = Field(schema.ObjectId) 
     title = Field(str) 
     text = Field(str) 
     comments = Field([str]) 

테스트

from www.tests.files import intial_post 
    from www.models import Post 
    from www.views import post_view 
    from ming import create_datastore 
    import pytest 

    @pytest.fixture() 
    def no_requests(monkeypatch): 
     bind = create_datastore('mim://localhost:27017/test') 
     monkeypatch.setattr("www.model.bind", bind) 

    def test_blog_view(no_requests): 
     Post(intial_post).m.insert() 
     post_view() == Post().m.find_one() 

테스트는 통과하지만, 데이터가 monkeypatch 연결을 변경되지 않도록이 디스크에서 MongoDB의에서 오는 메모리에서 오지 않는다. 나는 가깝다고 느낄 수 있지만, 동시에 그것을 실현할 생각은하지 못합니다.

미리 감사드립니다.

답변

0

이 문제를 해결하려면 ming.Session에 메모리에 연결된 새 데이터 저장소를 패치하기 만하면됩니다.

from ming import create_datastore 
from ming import Session 


def no_requests(monkeypatch): 
    memory_datastore = create_datastore('mim://localhost:27017', database='test') 
    monkeypatch.setattr(Session, 'db', memory_database.db) 
관련 문제