Neo4j Python 单元测试中的非永久性数据库

2024-04-25 21:48:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试为一个python项目创建单元测试,该项目将与Neo4j图形数据库接口。在

目前,我正在实现嵌入式图形数据库,但如果我选择将其部署到web应用程序,则可能会迁移到REST接口。 我已经安装了嵌入式neo4jproject的v1.9rc2,通过pip安装在虚拟环境中。在

这里提到了一个java类org.neo4j.test.TestGraphDatabaseFactoryhere,这听起来非常符合我的想法。我目前正在读写一个文件中的数据库,这是可以的,但我有麻烦在没有包括调用shutil.rmtree的ech测试后正确清理。。。还是应该这样做?在

另一种可能的方法是通过myTestCasesetUptearDown方法为每个测试创建并关闭数据库。在

>>> import neo4j
>>> print neo4j.__version__
'1.9.c2'

Tags: pip项目方法restweb数据库应用程序图形
2条回答

最佳实践是使用setUp/tearDown为每个测试分别创建和关闭数据库—正如您所提到的那样。在

旁注:1.9rc2已经过时了,考虑升级到最新的稳定版本,因为从那以后有几个错误被修复了。在

这是他们在pythonneo4j官方驱动程序中这样做的,考虑到它的来源,它可能应该被认为是“一个很好的例子”。在

class ServerTestCase(TestCase):
""" Base class for test cases that use a remote server.
"""

known_hosts = KNOWN_HOSTS
known_hosts_backup = known_hosts + ".backup"

def setUp(self):
    if isfile(self.known_hosts):
        if isfile(self.known_hosts_backup):
            remove(self.known_hosts_backup)
        rename(self.known_hosts, self.known_hosts_backup)

def tearDown(self):
    if isfile(self.known_hosts_backup):
        if isfile(self.known_hosts):
            remove(self.known_hosts)
        rename(self.known_hosts_backup, self.known_hosts)

这是完整的源文件:https://github.com/neo4j/neo4j-python-driver/blob/1.1/test/util.py

相关问题 更多 >