van.pg

소프트웨어 스크린 샷:
van.pg
소프트웨어 정보:
버전: 2.0
업로드 날짜: 14 Apr 15
개발자: Brian Sutherland
라이센스: 무료
인기: 5

Rating: nan/5 (Total Votes: 0)

van.pg는 단위 테스트를 위해 PostgreSQL을 데이터베이스 (및 클러스터)를 쉽게 생성을 제공하는 파이썬 모듈이다.
더러운 데이터베이스
테스트 데이터베이스를 작성하는 데 시간이 오래 걸릴. 당신은 / 삭제 테스트 데이터베이스기구를 다시 결정할 때 일반적으로 당신은 약간의주의를 필요로합니다.
또한, 데이터베이스에 커밋되거나되지 않은 경우 파악하는 PostgreSQL을에 더 강력한 방법은없는 것으로 보인다.
그래서 van.pg는 데이터베이스가 더러운 때를 알리기 위해 당신의 책임을 배치하지만 선택의 여지가 없습니다. 이 올바르게 수행되지 않으면, 절연 시험이 손상 될 것이다. 그것은 우리가 할 수있는 최선의 이상적인 아니지만.
당신이 지속적으로 데이터베이스에 커밋 관리 트랜잭션 패키지 (http://pypi.python.org/pypi/transaction)를 사용하는 경우는 예외입니다. 이 경우 트랜잭션이 커밋 될 때마다 더러워 할 수있는 자원을 요청할 수 있습니다.
testresources과의 통합
이기구를 사용하는 일반적인 방법은 (http://pypi.python.org/pypi/testresources/) testresources를 통해입니다 :
& NBSP; >>> testresources는 ResourcedTestCase를 가져올에서
& NBSP; >>> van.pg 수입 DatabaseManager에서
& NBSP; >>> 수입 psycopg2
& NBSP; >>> 데프 (dB) init_db :
& NBSP; ... CONN = psycopg2.connect (호스트 = db.host, 데이터베이스 = db.database)
& NBSP; ... 똥개 = conn.cursor ()
& NBSP; ... cur.execute ( "TABLE foo는 (바 정수) CREATE;")
& NBSP; ... conn.commit ()
& NBSP; ... conn.close ()
& NBSP; >>> 클래스 MYTEST (ResourcedTestCase) :
& NBSP; ...
& NBSP; ... 자원 = [( 'DB', DatabaseManager (initialize_sql = init_db))]
& NBSP; ...
& NBSP; ... 데프 runTest (자기) :
& NBSP; ... CONN = psycopg2.connect (호스트 = self.db.host, 데이터베이스 = self.db.database)
& NBSP; ... 똥개 = conn.cursor ()
& NBSP; ... cur.execute는 ( "(1) foo는 값으로 INSERT;")
& NBSP; ... conn.commit ()
& NBSP; ... 똥개 = conn.cursor ()
& NBSP; ... cur.execute ( "* FROM foo을 선택")
& NBSP; ... self.assertEquals (cur.fetchall (), [(1)])
& NBSP; ... # 참고 : 연결을 닫거나 데이터베이스를 드롭하면 실패한다
& NBSP; ... conn.close ()
& NBSP; ... self.db.dirtied () # 우리는 DB를 변경, 그래서 다시 로딩이 필요
실제로 테스트를 실행합니다 :
& NBSP; >>> 유닛 테스트에 수입 TextTestRunner에서
& NBSP; >>> 수입 SYS
& NBSP; >>> 주자 = TextTestRunner (스트림 = sys.stdout)
& NBSP; >>> runner.run (MYTEST ()) # 1 doctest가 : + 줄임표
& NBSP ;.
& NBSP; ...
OK; & NBSP
& NBSP; ...
템플릿 데이터베이스를 사용하여
동일한 데이터베이스에 여러 번 다시해야하는 경우는 PostgreSQL의 템플릿 데이터베이스에서 데이터베이스를 복사 할 수 있도록 빠를 수 있습니다. 하나 DatabaseManager 다른의 템플릿 역할을하여이 작업을 수행 할 수 있습니다 :
& NBSP; >>> template_db = DatabaseManager (initialize_sql = init_db)
& NBSP; >>> 클래스 MyTest2 (MYTEST) :
& NBSP; ... 자원 = [( 'DB', DatabaseManager (템플릿 = template_db))]
& NBSP; >>> runner.run (MyTest2 ()) # 1 doctest가 : + 줄임표
& NBSP ;.
& NBSP; ...
OK; & NBSP
& NBSP; ...
트랜잭션 통합
dirty_on_commit argumen 키워드가 TRUE 인 경우, DatabaseManager 모든 트랜잭션 모듈을 통해 성공적인 커밋 후에 더러워로 데이터베이스를 표시한다. 이 수동으로 통보 할 필요가 없습니다 데이터베이스를 dirties 각 테스트를 의미한다.
& NBSP; >>> 남자 = DatabaseManager (dirty_on_commit = 참)
이 기능을 사용하는 경우에는 거래 (http://pypi.python.org/pypi/transaction) 자신을 패키지에 의존 할 필요가있다.
기존 데이터베이스를 사용하여
기본적으로 van.pg 임시 디렉토리에 새로운 PostgreSQL의 클러스터를 만들고 PostgreSQL의 데몬을 시작합니다. 이것은 대부분의 시간을 작동하지만, 매우 빠르게 없습니다.
당신이 이미 실행중인 PostgreSQL의 클러스터의 경우에는 환경 변수 VAN_PG_HOST을 설정하여 사용하는 van.pg 알 수 있습니다. 수행은 / tmp를 / pgcluster에 소켓을의와 예를 들어, 로컬 PostgreSQL 서버에 대해 van.pg의 테스트를 실행합니다 :
VAN_PG_HOST = / tmp를 / pgcluster 파이썬 setup.py 테스트
경고 : 모든 데이터베이스가 대상 데이터베이스에 test_db로 시작하는이 삭제 될 가능성이 있습니다.
결산 연결
테스트가 그것으로 완료되면 제대로 데이터베이스에 모든 연결을 닫습니다주의해야합니다. 열린 연결이 있지만 PostgreSQL은 데이터베이스를 삭제 할 수 없습니다. 이 테스트 데이터베이스를 삭제하려고 할 때 오류에 대한 van.pg의 원인이됩니다.
, 프로그램 클러스터를 생성
낮은 수준에서 프로그래밍 방식으로 자신의 PostgreSQL의 클러스터를 조작 할 수 있습니다.
클러스터를 초기화합니다 :
& NBSP; >>> van.pg 수입 클러스터에서
& NBSP; >>> 클러스터 = 클러스터 ()
& NBSP; >>> cluster.initdb ()
어느 임시 디렉토리에서 데이터베이스를 작성합니다
& NBSP; >>> 가져 오기 운영 체제
& NBSP; >>> DBDIR = cluster.dbdir
& NBSP; os.listdir에서 >>> 'PG_VERSION'(DBDIR)
& NBSP 트루 (True)
그것을 시작 :
& NBSP; >>> cluster.start ()
데이터베이스를 테스트 / 만들기 :
& NBSP; >>> DBNAME = cluster.createdb ()
우리는 데이터베이스에 연결할 수 있습니다 :
& NBSP; >>> 수입 psycopg2
& NBSP; >>> CONN = psycopg2.connect (데이터베이스 = DBNAME, 호스트 = cluster.dbdir)
& NBSP; >>> 똥개 = conn.cursor ()
우리는 기본을 할 수 있는지 확인하기 위해 데이터베이스를 만지작 거릴 :
& NBSP; >>> cur.execute ( ") 표 × (y를 INT 만들기")
& NBSP; >>> cur.execute는 ( "(X 값으로 1을 삽입)")
& NBSP; >>> conn.commit ()
& NBSP; >>> cur.execute ( "* X에서 선택")
& NBSP; >>> cur.fetchall () [0] [0]
& NBSP 1
클러스터 데몬을 중지
& NBSP; >>> conn.close ()
& NBSP; >>> cluster.stop ()
다시 시작 :
& NBSP; >>> cluster.start ()
& NBSP; >>> CONN = psycopg2.connect (데이터베이스 = DBNAME, 호스트 = cluster.dbdir)
& NBSP; >>> 똥개 = conn.cursor ()
& NBSP; >>> cur.execute ( "* X에서 선택")
& NBSP; >>> cur.fetchall () [0] [0]
& NBSP 1
그리고 정리 :
& NBSP; >>> conn.close ()
& NBSP; >>> cluster.cleanup ()
& NBSP; >>> cluster.dbdir은 없음입니다
& NBSP 트루 (True)
& NBSP; >>> os.path.exists (DBDIR)
& NBSP; 거짓
개발
개발 GitHub의에 일어난 :
& NBSP; HTTP : //github.com/jinty/van.pg

이 릴리스의 새로운 기능입니다 :

이 지원 파이썬 3.2.
드롭 파이썬 2.5을 지원합니다.
여러 파이썬 버전에 대한 테스트를 위해 tox.ini 추가합니다.
서브 프로세스가 아닌 (pg_ctl에 통해) 데몬으로 PostgreSQL을 실행합니다.
재사용 및 테스트 커버리지를 개선하기 위해 코드를 다시하는 것은-구성 할 수 있습니다.

이 요구 사항 :

이 파이썬

유사한 소프트웨어

LAVA Server
LAVA Server

20 Feb 15

nosango
nosango

11 May 15

PyModel
PyModel

11 May 15

ReviewBoard
ReviewBoard

19 Feb 15

개발자의 기타 소프트웨어 Brian Sutherland

wesgi
wesgi

11 May 15

코멘트 van.pg

댓글을 찾을 수 없습니다
코멘트를 추가
이미지를 켜십시오!