van.pg

Software screenshot:
van.pg
Software ətraflı:
Version: 2.0
Tarixi Upload: 14 Apr 15
Geliştirici: Brian Sutherland
Lisenziya: Pulsuz
Məşhurluq: 5

Rating: nan/5 (Total Votes: 0)

van.pg vahid test üçün PostgreSQL verilənlər bazası (və qruplar) asan yaradılması təmin edən Python modulu edir.
Dirty Verilənlər bazası
Test verilənlər bazası yaratmaq üçün uzun vaxt. Siz / silmək test bazası armatur yeniden üçün qərar zaman Ümumiyyətlə bir az diqqətli olmaq lazımdır.
Həmçinin, bir verilənlər bazası törədilmiş və ya deyil, əgər həyata figuring PostgreSQL heç bir sağlam yol var görünür.
Belə ki, van.pg bazası çirkli zaman bildirmek üçün sizə məsuliyyət yerləşdirmək, lakin heç bir seçimi var. Bu, düzgün həyata deyil, test təcrid güzəşt olunacaq. Biz nə edə ən yaxşı ideal deyil, lakin.
Siz ardıcıl bazası öhdəliyini idarə etmək üçün əməliyyat paketi (http://pypi.python.org/pypi/transaction) istifadə əgər bir istisna deyil. Bu halda siz bir əməliyyat törətdiyi zaman dirtied etmək qaynaq üçün xahiş edə bilər.
testresources ilə inteqrasiya
Bu qurğular istifadə üçün tipik yol (http://pypi.python.org/pypi/testresources/) testresources vasitəsilə:
& Nbsp; >>> testresources ResourcedTestCase idxal olan
& Nbsp; >>> van.pg idxal DatabaseManager dən
& Nbsp; >>> idxal psycopg2
& Nbsp; >>> def (db) init_db:
& Nbsp; ... Pak = psycopg2.connect (host = db.host, verilənlər bazası = db.database)
& Nbsp; ... cur = conn.cursor ()
& Nbsp; ... cur.execute ("TABLE foo (bar tam) yaratmaq;")
& Nbsp; ... conn.commit ()
& Nbsp; ... conn.close ()
& Nbsp; >>> sinif MyTest (ResourcedTestCase):
& Nbsp; ...
& Nbsp; ... resursları = [(db, DatabaseManager (initialize_sql = init_db))]
& Nbsp; ...
& Nbsp; ... def runTest (özünü):
& Nbsp; ... Pak = psycopg2.connect (host = self.db.host, verilənlər bazası = self.db.database)
& Nbsp; ... cur = conn.cursor ()
& Nbsp; ... cur.execute ("(1) foo dəyərlər INSERT INTO")
& Nbsp; ... conn.commit ()
& Nbsp; ... cur = conn.cursor ()
& Nbsp; ... cur.execute ("* foo SEÇİN")
& Nbsp; ... self.assertEquals (cur.fetchall (), [(1)])
& Nbsp; ... # Qeyd: əlaqələri yaxın və ya verilənlər bazası düşmə uğursuz lazımdır
& Nbsp; ... conn.close ()
& Nbsp; ... self.db.dirtied () biz DB dəyişib, belə ki, yenidən loading lazımdır
Əslində test run:
& Nbsp; >>> unittest idxal TextTestRunner dən
& Nbsp; >>> idxal sys
& Nbsp; >>> runner = TextTestRunner (stream = sys.stdout)
& Nbsp; >>> runner.run (MyTest ()) # doctest: + Ellips
& Nbsp ;.
& Nbsp; ...
OK; & nbsp
& Nbsp; ...
istifadə şablon verilənlər bazası
Eyni bazası dəfələrlə yeniden lazımdır, bu, PostgreSQL bir şablon bazası bazası surəti imkan daha sürətli ola bilər. Siz bir DatabaseManager başqa şablon kimi xidmət edərək bunu edə bilərsiniz:
& Nbsp; >>> template_db = DatabaseManager (initialize_sql = init_db)
& Nbsp; >>> sinif MyTest2 (MyTest):
& Nbsp; ... resursları = [(db, DatabaseManager (şablon = template_db))]
& Nbsp; >>> runner.run (MyTest2 ()) # doctest: + Ellips
& Nbsp ;.
& Nbsp; ...
OK; & nbsp
& Nbsp; ...
əməliyyat inteqrasiya
Dirty_on_commit argumen söz True deyil, bir DatabaseManager hər əməliyyat modulu vasitəsilə törətmək uğurlu sonra dirtied kimi verilənlər bazası qeyd edəcək. Bu özünüz xəbərdar yoxdur bazası dirties hər test deməkdir.
& Nbsp; >>> man = DatabaseManager (dirty_on_commit = True)
Bu funksiyanı istifadə etsəniz, əməliyyat (http://pypi.python.org/pypi/transaction) özünüzü paketi asılı lazımdır.
mövcud verilənlər bazası istifadə edərək,
Mənim cari olaraq, van.pg müvəqqəti kataloq yeni bir PostgreSQL klaster yaradır və PostgreSQL daemon başlayır. Bu ən zaman işləyir, lakin çox sürətli deyil.
Əgər siz artıq çalışan PostgreSQL çoxluq varsa, ətraf mühitin dəyişən VAN_PG_HOST yaradılması ilə istifadə etmək van.pg deyə bilərsiniz. Bunu / tmp / pgcluster da sockets var Məsələn, yerli PostgreSQL server qarşı van.pg nin test run:
VAN_PG_HOST = / tmp / pgcluster python setup.py test
XƏBƏRDARLIQ: hər hansı bir verilənlər bazası hədəf bazasında test_db ilə başlayan düşmüşdür bilər.
yekun Əlaqələri
Test ilə aparılır dəfə düzgün bazasında bütün əlaqələri bağlamaq üçün ehtiyatlı olun. Açıq əlaqələri var isə PostgreSQL verilənlər bazası düşmə imkan vermir. Bu test bazası düşmək üçün çalışırıq zaman səhv van.pg səbəb olacaq.
programatically yaradan klaster
Aşağı səviyyədə, siz də program öz PostgreSQL klaster manipulyasiya edə bilər.
Cluster başlamaq:
& Nbsp; >>> van.pg idxal Cluster dən
& Nbsp; >>> cluster = Cluster ()
& Nbsp; >>> cluster.initdb ()
Hansı müvəqqəti kataloq bir verilənlər bazası yaradır:
& Nbsp; >>> idxal os
& Nbsp; >>> dbdir = cluster.dbdir
& Nbsp; os.listdir da >>> PG_VERSION (dbdir)
& Nbsp; True
Başlayın:
& Nbsp; >>> cluster.start ()
Bir verilənlər bazası test / yarat:
& Nbsp; >>> dbname = cluster.createdb ()
Biz bazasında qoşula bilər:
& Nbsp; >>> idxal psycopg2
& Nbsp; >>> Pak = psycopg2.connect (verilənlər bazası = dbname, ev sahibi = cluster.dbdir)
& Nbsp; >>> cur = conn.cursor ()
Biz əsasları edə bilərsiniz əmin verilənlər bazası twiddle:
& Nbsp; >>> cur.execute (") TABLE x (y int YARATDILAR")
& Nbsp; >>> cur.execute ("(x dəyərlər INTO 1 INSERT)")
& Nbsp; >>> conn.commit ()
& Nbsp; >>> cur.execute ("* x SEÇİN")
& Nbsp; >>> cur.fetchall () [0] [0]
& Nbsp; 1
Çoxluq daemon Stop:
& Nbsp; >>> conn.close ()
& Nbsp; >>> cluster.stop ()
Yenidən başlamaq:
& Nbsp; >>> cluster.start ()
& Nbsp; >>> Pak = psycopg2.connect (verilənlər bazası = dbname, ev sahibi = cluster.dbdir)
& Nbsp; >>> cur = conn.cursor ()
& Nbsp; >>> cur.execute ("* x SEÇİN")
& Nbsp; >>> cur.fetchall () [0] [0]
& Nbsp; 1
Və təmizləmə:
& Nbsp; >>> conn.close ()
& Nbsp; >>> cluster.cleanup ()
& Nbsp; >>> cluster.dbdir None
& Nbsp; True
& Nbsp; >>> os.path.exists (dbdir)
& Nbsp; False
İnkişaf
İnkişaf GitHub yer tutur:
& Nbsp; http: //github.com/jinty/van.pg

Bu azad Yeni nədir:

  • Support Python 3.2.
  • Drop Python 2.5 dəstəkləyir.
  • Çox python versiyasını qarşı test üçün tox.ini əlavə edin.
  • Run PostgreSQL bir subprocess kimi daha çox (pg_ctl vasitəsilə) daemon kimi.
  • Re-təşkil təkrar və test əhatə yaxşılaşdırılması üçün kodu.

tələblər

  • Python

Oxşar proqram

disable-docstring
disable-docstring

11 May 15

TAU
TAU

20 Feb 15

cynic
cynic

14 Apr 15

Geliştirici digər proqram Brian Sutherland

wesgi
wesgi

11 May 15

Şərh van.pg

Şərhlər tapılmadı
Şərh əlavə
Images yandırın!