van.pg

Szoftver screenshot:
van.pg
Szoftver adatai:
Változat: 2.0
Feltöltés dátuma: 14 Apr 15
Fejlesztő: Brian Sutherland
Engedély: Ingyenes
Népszerűség: 66

Rating: 5.0/5 (Total Votes: 1)

van.pg egy Python modult, amely könnyen elvégezhető a PostgreSQL adatbázisok (és klaszterek) egység tesztelése.
Dirty Adatbázisok
Test adatbázisok hosszú időt vesz igénybe, hogy hozzon létre. Általában akkor kell egy kicsit óvatos, amikor úgy dönt, hogy törli / újra tesztadatbázisokra szerelvény.
Emellett úgy tűnik, hogy nem helytálló módon a PostgreSQL kitalálni, ha egy adatbázis elkötelezett volt-e vagy sem.
Tehát van.pg nincs más választása, hogy helyezze a felelősséget az, hogy értesítik, ha egy adatbázis piszkos. Ha ez nem történik meg megfelelően, teszt elkülönítés veszélybe kerül. Ez nem ideális, de a legjobb, amit tehetünk.
Egyetlen kivétel ez alól, ha következetesen használja a tranzakciós csomag (http://pypi.python.org/pypi/transaction) kezelésére adatbázis követ el. Ebben az esetben kérhet az erőforrás kell dirtied amikor a tranzakció véglegesítésre.
Integráció testresources
A tipikus módja, hogy használja a következő mérkőzések keresztül testresources (http://pypi.python.org/pypi/testresources/):
& Nbsp; >>> from testresources importálni ResourcedTestCase
& Nbsp; >>> from van.pg import DatabaseManager
& Nbsp; >>> import psycopg2
& Nbsp; >>> def init_db (db):
& Nbsp; ... kapcs = psycopg2.connect (host = db.host, database = db.database)
& Nbsp; ... akt = conn.cursor ()
& Nbsp; ... cur.execute ("CREATE TABLE ize (bar integer);")
& Nbsp; ... conn.commit ()
& Nbsp; ... conn.close ()
& Nbsp; >>> class MyTest (ResourcedTestCase):
& Nbsp; ...
& Nbsp; ... erőforrásokat = [('db', DatabaseManager (initialize_sql = init_db))]
& Nbsp; ...
& Nbsp; ... def runTest (self):
& Nbsp; ... kapcs = psycopg2.connect (host = self.db.host, database = self.db.database)
& Nbsp; ... akt = conn.cursor ()
& Nbsp; ... cur.execute ("INSERT INTO ize VALUES (1);")
& Nbsp; ... conn.commit ()
& Nbsp; ... akt = conn.cursor ()
& Nbsp; ... cur.execute ("SELECT * FROM foo")
& Nbsp; ... self.assertEquals (cur.fetchall (), [(1,)])
& Nbsp; ... # Megjegyzés: kell zárnia kapcsolatok vagy adatbázisok megszüntetése nem
& Nbsp; ... conn.close ()
& Nbsp; ... self.db.dirtied () # megváltoztattuk a DB, ezért kell újra loading
Igazából futtatni a tesztet:
& Nbsp; >>> from unittest import TextTestRunner
& Nbsp; >>> import sys
& Nbsp; >>> runner = TextTestRunner (stream = sys.stdout)
& Nbsp; >>> runner.run (MyTest ()) # doctest: + ellipszis
& Nbsp ;.
& Nbsp; ...
& Nbsp; OK
& Nbsp; ...
A lokális adatbázisok
Ha újra létre kell hoznia ugyanazon adatbázis többször, akkor gyorsabban hagyja PostgreSQL másolja az adatbázis egy sablon adatbázist. Megteheti ezt azáltal, hogy az egyik DatabaseManager szolgálhat a sablon egy másik:
& Nbsp; >>> template_db = DatabaseManager (initialize_sql = init_db)
& Nbsp; >>> class MyTest2 (MyTest):
& Nbsp; ... erőforrásokat = [('db', DatabaseManager (template = template_db))]
& Nbsp; >>> runner.run (MyTest2 ()) # doctest: + ellipszis
& Nbsp ;.
& Nbsp; ...
& Nbsp; OK
& Nbsp; ...
tranzakciós integrációs
Ha a kulcsszó argumen dirty_on_commit Igaz, a DatabaseManager lesz az adatbázis, mint dirtied után minden sikeres véglegesítés keresztül a tranzakciós modul. Ez azt jelenti, minden teszt, amely szennyezi az adatbázis nem kell manuálisan értesítik.
& Nbsp; >>> man = DatabaseManager (dirty_on_commit = True)
Ha használja ezt a funkciót, meg kell, hogy függ a tranzakció (http://pypi.python.org/pypi/transaction) csomagolást magát.
Meglévő adatbázis
Alapértelmezésben van.pg létrehoz egy új PostgreSQL klaszter egy ideiglenes könyvtárba, és elindítja a PostgreSQL démont. Ez működik a legtöbb időt, de nem túl gyors.
Ha van egy már futó PostgreSQL klaszter, meg tudod mondani van.pg használni beállításával a környezeti változó VAN_PG_HOST. Például, hogy fut van.pg tesztjei ellen a helyi PostgreSQL szervert ez aljzatok / tmp / pgcluster tenni:
VAN_PG_HOST = / tmp / pgcluster python setup.py teszt
FIGYELEM: az adatbázisait kezdve test_db a cél adatbázisban valószínűleg csökkent.
záró Connections
Legyen óvatos, hogy megfelelően zárja be az összes kapcsolatot az adatbázissal egyszer a tesztet mit kezdeni vele. PostgreSQL nem teszi lehetővé adatbázisok megszüntetése míg vannak nyitott kapcsolat. Ennek hatására van.pg, hogy hiba történt, hogy csökken a teszt adatbázist.
programozottan létrehozott egy fürtöt
Alacsonyabb szinten, akkor is programozottan manipulálni a saját PostgreSQL klaszter.
Formázza meg a Cluster:
& Nbsp; >>> from van.pg import Cluster
& Nbsp; >>> cluster = Cluster ()
& Nbsp; >>> cluster.initdb ()
Amely létrehoz egy adatbázist egy ideiglenes könyvtárba:
& Nbsp; >>> import os
& Nbsp; >>> dbdir = cluster.dbdir
& Nbsp; >>> "PG_VERSION" a os.listdir (dbdir)
& Nbsp; True
Indítsa el:
& Nbsp; >>> cluster.start ()
Hozzon létre / teszt adatbázist:
& Nbsp; >>> dbname = cluster.createdb ()
Mi lehet csatlakozni az adatbázishoz:
& Nbsp; >>> import psycopg2
& Nbsp; >>> kapcs = psycopg2.connect (database = adatbázisnévre, host = cluster.dbdir)
& Nbsp; >>> akt = conn.cursor ()
Babrál az adatbázis, hogy megbizonyosodjon arról, amit tehetünk az alapokat:
& Nbsp; >>> cur.execute ("CREATE TABLE x (y int)")
& Nbsp; >>> cur.execute ("INSERT INTO x értékeket (1)")
& Nbsp; >>> conn.commit ()
& Nbsp; >>> cur.execute ("SELECT * FROM x")
& Nbsp; >>> cur.fetchall () [0] [0]
& Nbsp; 1
Állítsa le a klaszter daemon:
& Nbsp; >>> conn.close ()
& Nbsp; >>> cluster.stop ()
Indítsa újra:
& Nbsp; >>> cluster.start ()
& Nbsp; >>> kapcs = psycopg2.connect (database = adatbázisnévre, host = cluster.dbdir)
& Nbsp; >>> akt = conn.cursor ()
& Nbsp; >>> cur.execute ("SELECT * FROM x")
& Nbsp; >>> cur.fetchall () [0] [0]
& Nbsp; 1
És razzia:
& Nbsp; >>> conn.close ()
& Nbsp; >>> cluster.cleanup ()
& Nbsp; >>> cluster.dbdir None
& Nbsp; True
& Nbsp; >>> os.path.exists (dbdir)
& Nbsp; False
Fejlesztési
A fejlesztés zajlik a GitHub:
& Nbsp; http: //github.com/jinty/van.pg

Mi az új ebben a kiadásban:

  • Támogatás Python 3.2.
  • Csepp Python 2.5 támogatással.
  • Add tox.ini tesztelésre ellen több python verzió.
  • Futtatás PostgreSQL alfolyamataként helyett démonként (via pg_ctl).
  • átszervezése kódot javítása újrafelhasználás és teszt lefedettség.

követelmények :

  • Python

Hasonló program

tl.testing
tl.testing

15 Apr 15

proboscis
proboscis

20 Feb 15

nose-exclude
nose-exclude

20 Feb 15

Más szoftver fejlesztő Brian Sutherland

wesgi
wesgi

11 May 15

Hozzászólások a van.pg

Hozzászólás nem található
Megjegyzés hozzáadása
Kapcsolja be a képeket!