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
راه معمول برای استفاده از این وسایل از طریق testresources (http://pypi.python.org/pypi/testresources/):
و nbsp؛ >>> از testresources وارد ResourcedTestCase
و nbsp؛ >>> از van.pg DatabaseManager واردات
و nbsp؛ >>> واردات psycopg2
و nbsp؛ >>> دف init_db (DB):
و nbsp؛ ... هدایت کردن = psycopg2.connect (میزبان = db.host، پایگاه داده = db.database)
و nbsp؛ ... فعلی = conn.cursor ()
و nbsp؛ ... cur.execute ("ایجاد جدول مواد غذایی (نوار عدد صحیح)؛")
و nbsp؛ ... conn.commit ()
و nbsp؛ ... conn.close ()
و nbsp؛ >>> کلاس MyTest (ResourcedTestCase):
& nbsp؛ در ...
& nbsp؛ در ... منابع = [('DB'، DatabaseManager (initialize_sql = init_db))]
& nbsp؛ در ...
و nbsp؛ ... دف runTest (خود):
و nbsp؛ ... هدایت کردن = psycopg2.connect (میزبان = self.db.host، پایگاه داده = self.db.database)
و nbsp؛ ... فعلی = conn.cursor ()
و nbsp؛ ... cur.execute ("(1) قرار دادن به ارزش غذ.")
و nbsp؛ ... conn.commit ()
و nbsp؛ ... فعلی = conn.cursor ()
و nbsp؛ ... cur.execute ("SELECT * FROM غذ")
و nbsp؛ ... self.assertEquals (cur.fetchall ()، [(1)])
و nbsp؛ ... # توجه: باید ارتباط نزدیک و یا حذف پایگاه داده با شکست مواجه
و nbsp؛ ... conn.close ()
و nbsp؛ ... self.db.dirtied () # ما تغییر DB، پس از آن نیاز دوباره بارگذاری
در واقع اجرای آزمون:
و nbsp؛ >>> از unittest TextTestRunner واردات
و nbsp؛ >>> سیستم واردات
و nbsp؛ >>> دونده = TextTestRunner (جریان = sys.stdout)
و nbsp؛ >>> runner.run (MyTest ()) # doctest: + حذف
و nbsp؛
& nbsp؛ در ...
& nbsp؛ از OK
& nbsp؛ در ...
با استفاده از پایگاه داده های قالب
اگر شما نیاز به از نو خلق همان پایگاه داده چند بار، می توان آن را سریع تر به اجازه PostgreSQL و کپی پایگاه داده از یک پایگاه داده الگو. شما می توانید این با داشتن یک DatabaseManager خدمت به عنوان الگو برای دیگر را انجام دهید:
و nbsp؛ >>> template_db = DatabaseManager (initialize_sql = init_db)
و nbsp؛ >>> MyTest2 کلاس (MyTest):
& nbsp؛ در ... منابع = [('DB'، DatabaseManager (الگو = template_db))]
و nbsp؛ >>> runner.run (MyTest2 ()) # doctest: + حذف
و nbsp؛
& nbsp؛ در ...
& nbsp؛ از OK
& nbsp؛ در ...
ادغام معامله
اگر کلمه کلیدی argumen dirty_on_commit درست است، DatabaseManager خواهد پایگاه داده خوانده شده را علامت به عنوان کثیف بعد از هر موفق متعهد از طریق ماژول معامله ساخته شده است. این به این معنی هر آزمون که خاک پایگاه داده اختصاص ندارد به صورت دستی آن را اطلاع دهید.
و nbsp؛ >>> مرد = DatabaseManager (dirty_on_commit = واقعی)
اگر شما استفاده از این ویژگی، شما نیاز به در معامله (http://pypi.python.org/pypi/transaction) بسته بندی خود را دارد.
با استفاده از پایگاه داده های موجود
به طور پیش فرض، van.pg یک خوشه PostgreSQL و جدید در یک دایرکتوری موقت ایجاد و راه اندازی یک شبح PostgreSQL و. این آثار اغلب از زمان است، اما بسیار سریع نیست.
اگر شما یک خوشه PostgreSQL و در حال اجرا، شما می توانید بگویید van.pg به استفاده از آن با تنظیم متغیر محیطی VAN_PG_HOST. به عنوان مثال، برای اجرای آزمون van.pg در برابر سرور PostgreSQL و محلی با آن سوکت در / TMP / pgcluster را انجام دهید:
VAN_PG_HOST آزمون setup.py = / TMP / pgcluster پایتون
هشدار: هر پایگاه داده با test_db در پایگاه داده مورد نظر شروع به احتمال زیاد به کاهش یافته است.
اتصالات اختتامیه
مراقب باشید به درستی همه اتصالات به پایگاه داده بسته یک بار آزمون خود را با آن انجام می شود. PostgreSQL و اجازه نمی دهد که حذف پایگاه های داده در حالی که اتصالات باز وجود دارد. این باعث خواهد شد van.pg به خطا هنگام تلاش برای رها کردن پایگاه داده تست.
Programatically ایجاد یک خوشه
در سطح پایین تر، شما همچنین می توانید برنامه نویسی دستکاری خوشه PostgreSQL و خود را.
مقداردهی اولیه خوشه:
و nbsp؛ >>> از van.pg خوشه واردات
و nbsp؛ >>> خوشه = خوشه ()
و nbsp؛ >>> cluster.initdb ()
که ایجاد یک پایگاه داده در یک دایرکتوری موقت:
و nbsp؛ >>> واردات سیستم عامل
و nbsp؛ >>> dbdir = cluster.dbdir
و nbsp؛ >>> 'PG_VERSION در os.listdir (dbdir)
و nbsp؛ واقعی
شروع آن:
و nbsp؛ >>> cluster.start ()
ایجاد / تست یک پایگاه داده:
و nbsp؛ >>> dbname = cluster.createdb ()
ما می توانیم به پایگاه داده متصل:
و nbsp؛ >>> واردات psycopg2
و nbsp؛ >>> هدایت کردن = psycopg2.connect (پایگاه داده = dbname، میزبان = cluster.dbdir)
و nbsp؛ >>> فعلی = conn.cursor ()
بازی کردن پایگاه داده مطمئن شوید ما می توانیم اصول اولیه را انجام دهید:
و nbsp؛ >>> cur.execute ("ایجاد جدول X (Y هوشمند)")
و nbsp؛ >>> cur.execute ("درج X ارزشهای (1)")
و nbsp؛ >>> conn.commit ()
و nbsp؛ >>> cur.execute ("SELECT * FROM X")
و nbsp؛ >>> cur.fetchall () [0] [0]
و nbsp؛ 1
توقف شبح خوشه:
و nbsp؛ >>> conn.close ()
و nbsp؛ >>> cluster.stop ()
شروع دوباره آن را:
و nbsp؛ >>> cluster.start ()
و nbsp؛ >>> هدایت کردن = psycopg2.connect (پایگاه داده = dbname، میزبان = cluster.dbdir)
و nbsp؛ >>> فعلی = conn.cursor ()
و nbsp؛ >>> cur.execute ("SELECT * FROM X")
و nbsp؛ >>> cur.fetchall () [0] [0]
و nbsp؛ 1
و پاکسازی:
و nbsp؛ >>> conn.close ()
و nbsp؛ >>> cluster.cleanup ()
و nbsp؛ >>> cluster.dbdir هیچ است
و nbsp؛ واقعی
و nbsp؛ >>> os.path.exists (dbdir)
و nbsp؛ کاذب
توسعه
توسعه می گیرد در گیتهاب:
& nbsp؛ از HTTP: //github.com/jinty/van.pg

چه در این نسخه جدید است:

پشتیبانی پایتون 3.2.
قطره پایتون پشتیبانی 2.5.
اضافه کردن tox.ini برای آزمایش در برابر نسخه های پایتون متعدد.
اجرای PostgreSQL و به عنوان یک فرزند و نه به عنوان یک شبح (از طریق pg_ctl).
سازماندهی مجدد کد برای بهبود استفاده مجدد و پوشش آزمون.

مورد نیاز:

پایتون

نرم افزار های مشابه

nose-json
nose-json

14 Apr 15

nosy
nosy

11 May 15

Ahven
Ahven

15 Apr 15

نرم افزار های دیگر از توسعه دهنده Brian Sutherland

wesgi
wesgi

11 May 15

نظرات به van.pg

نظر یافت نشد
اضافه کردن نظر
روشن کردن تصاویر!