van.pg

软件截图:
van.pg
软件详细信息:
版本: 2.0
上传日期: 14 Apr 15
许可: 免费
人气: 66

Rating: 5.0/5 (Total Votes: 1)

van.pg是一个Python模块,可轻松创建PostgreSQL数据库(和集群)进行单元测试。
肮脏的数据库
测试数据库需要很长的时间来创建。一般来说,你需要小心一点,当你决定要删除/重新创建一个测试数据库夹具。
此外,还有似乎是在PostgreSQL里没有可靠的方法搞清楚,如果数据库致力于与否。
所以van.pg别无选择,只能把对你的责任通知,当一个数据库是肮脏的。如果不正确地进行,试验隔离将受到损害。这不是理想的,但我们可以做的最好的。
唯一的例外是,如果你坚持使用事务包(http://pypi.python.org/pypi/transaction)来管理数据库提交。在这种情况下,你可以要求资源被弄脏每当事务被提交。
与testresources集成
典型的方式来使用这些装置是通过testresources(http://pypi.python.org/pypi/testresources/):
 从>>>进口testresources ResourcedTestCase
 从>>>进口van.pg数据库管理器
  >>>进口psycopg2
  >>>高清init_db(DB):
  ...康恩= psycopg2.connect(主机= db.host,数据库= db.database)
  ... CUR = conn.cursor()
  ... cur.execute(“CREATE TABLE FOO(巴整数)”)
  ... conn.commit()
  ... conn.close()
  >>>类MyTest的(ResourcedTestCase):
  ...
  ...资源= [(“DB”,数据库管理器(initialize_sql = init_db))]
  ...
  ......高清的runTest(个体经营):
  ...康恩= psycopg2.connect(主机= self.db.host,数据库= self.db.database)
  ... CUR = conn.cursor()
  ... cur.execute(“(1)INSERT INTO foo的价值观;”)
  ... conn.commit()
  ... CUR = conn.cursor()
  ... cur.execute(“SELECT * FROM富”)
  ... self.assertEquals(cur.fetchall()[(1)])
  ...#注:必须关闭连接或删除数据库失败
  ... conn.close()
  ... self.db.dirtied()#我们改变了DB,所以它需要重新加载
实际运行测试:
 从>>>单元测试进口TextTestRunner
  >>>进口SYS
  >>>亚军= TextTestRunner(流= sys.stdout的)
  >>> runner.run(MyTest的())#文档测试:+省略号
&NBSP ;.
  ...
  OK
  ...
使用模板数据库
如果您需要重新创建同一个数据库多次,它可以更快地让PostgreSQL的复制数据库的模板数据库。你可以通过让一个DatabaseManager作为另一个模板做到这一点:
  >>> template_db =数据库管理器(initialize_sql = init_db)
  >>>类MyTest2(MyTest的):
  ...资源= [(“DB”,数据库管理器(模板= template_db))]
  >>> runner.run(MyTest2())#文档测试:+省略号
&NBSP ;.
  ...
  OK
  ...
交易整合
如果变元dirty_on_commit的关键字是真,因为弄脏以后每隔全成通过交易模块提交了一个数据库管理器将迎来数据库。这意味着每一个测试,弄脏数据库不必手动通知它。
  >>>男人=数据库管理器(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 =的/ tmp / pgcluster蟒蛇setup.py测试
警告:任何数据库开始TEST_DB目标数据库中有可能被丢弃。
关闭连接
小心妥善关闭所有连接到数据库,一旦您的测试是用它做。 PostgreSQL的不允许删除数据库同时也有打开的连接。这将导致van.pg试图删除测试数据库时出错。
编程方式创建一个集群
在一个较低的水平,你也可以通过编程操纵自己的PostgreSQL集群。
初始化集群:
 从>>>进口van.pg集群
  >>>集群=集群()
  >>> cluster.initdb()
它创建一个临时目录数据库:
  >>>进口OS
  >>> DBDIR = cluster.dbdir
 在>>> os.listdir'PG_VERSION“(DBDIR)
 真
启动它:
  >>> cluster.start()
创建/测试数据库:
  >>> DBNAME = cluster.createdb()
我们可以连接到数据库:
  >>>进口psycopg2
  >>>康恩= psycopg2.connect(数据库= DBNAME,主机= cluster.dbdir)
  >>> CUR = conn.cursor()
摆弄数据库,以确保我们可以做的基本知识:
  >>> cur.execute(“CREATE TABLE X(Y INT)”)
  >>> cur.execute(“INSERT INTO x值(1)”)
  >>> conn.commit()
  >>> cur.execute(“SELECT * FROM X”)
  >>> cur.fetchall()[0] [0]
  1
停止集群守护进程:
  >>> conn.close()
  >>> cluster.stop()
再次启动:
  >>> cluster.start()
  >>>康恩= psycopg2.connect(数据库= DBNAME,主机= cluster.dbdir)
  >>> CUR = conn.cursor()
  >>> cur.execute(“SELECT * FROM X”)
  >>> cur.fetchall()[0] [0]
  1
和清理:
  >>> conn.close()
  >>> cluster.cleanup()
  >>> cluster.dbdir是无
 真
  >>> os.path.exists(DBDIR)
 假
发展
发展发生在GitHub上:
  HTTP://github.com/jinty/van.pg

什么在此版本中是新的

  • 在支持Python的3​​.2。
  • 在降2.5 Python的支持。
  • 添加tox.ini用于对多个Python版本的测试。
  • 运行PostgreSQL的一个子进程,而不是作为一个守护进程(通过使用pg_ctl)。
  • 重新组织代码,以提高重用和测试覆盖率。

要求

  • 在Python中

类似的软件

expecter
expecter

20 Feb 15

CppUnit
CppUnit

17 Feb 15

SpeedTest
SpeedTest

12 May 15

显影剂的其他软件 Brian Sutherland

wesgi
wesgi

11 May 15

意见 van.pg

评论没有发现
添加评论
打开图片!