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을 실행합니다.
재사용 및 테스트 커버리지를 개선하기 위해 코드를 다시하는 것은-구성 할 수 있습니다.

이 요구 사항 :

이 파이썬

유사한 소프트웨어

nose-parameterized
nose-parameterized

14 Apr 15

DREAM Tool
DREAM Tool

3 Jun 15

NUnit
NUnit

19 Feb 15

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

wesgi
wesgi

11 May 15

코멘트 van.pg

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