如何为neo4j单元测试创建和使用新数据库?

xggvc2p6  于 2021-09-08  发布在  Java
关注(0)|答案(1)|浏览(373)

对于django rest项目,我需要在neo4j数据库上执行单元测试,以确保输出的数据格式正确。但是,我必须在不同于实际数据库的测试数据库上执行这些单元测试。当前,settings.py的排列方式是views.py将访问默认数据库。如何让单元测试在不更改settings.py的情况下访问测试数据库?

p5fdfcr1

p5fdfcr11#

我不使用setting.py来标识我的neo4j数据库。我为neo4j调用了一些函数,它们加载或查询数据库。数据库是整个python代码中使用的一个变量,因此可以轻松地对其进行更改并传播到所有下游代码。
以下是几个功能:

from neo4j import GraphDatabase
from pandas import DataFrame

neo4jdriver=GraphDatabase.driver(Neo4Server, auth=(Neo4UserName,Neo4Pswd),database='neo4j')
neo4jsession = neo4jdriver.session(database='neo4j')

def CypherToPandas(Q, database):
    driver=GraphDatabase.driver(Neo4Server, auth=(Neo4UserName,Neo4Pswd),database=database )  #"neo4j"))  #AzureLib.Neo4Pswd))
    with driver.session(database=database) as cyphersession:
        rslt = cyphersession.run(Q)
        df = DataFrame(rslt.data())
        cyphersession.close()
        driver.close()
        return df

def CypherToText(Q, database):
    driver=GraphDatabase.driver(Neo4Server, auth=(Neo4UserName,Neo4Pswd),database=database )  #"neo4j"))  #AzureLib.Neo4Pswd))
    with driver.session(database=database) as cyphersession:
        rslt = cyphersession.run(Q)
        r = rslt.data()
        cyphersession.close()
        driver.close()
        return r

相关问题