Difference between revisions of "DgraphAndWeaviateTest"
Jump to navigation
Jump to search
Line 37: | Line 37: | ||
== Example unit test == | == Example unit test == | ||
<source lang='python'> | <source lang='python'> | ||
− | + | def testDgraph(self): | |
''' | ''' | ||
test basic Dgraph operation | test basic Dgraph operation | ||
Line 65: | Line 65: | ||
graphQuery='''{ | graphQuery='''{ | ||
# list of pokemons | # list of pokemons | ||
− | pokemons(func: has(name)) { | + | pokemons(func: has(name), orderasc: name) { |
name | name | ||
weight | weight | ||
Line 75: | Line 75: | ||
self.assertTrue('pokemons' in queryResult) | self.assertTrue('pokemons' in queryResult) | ||
pokemons=queryResult['pokemons'] | pokemons=queryResult['pokemons'] | ||
− | self.assertEqual( | + | self.assertEqual(len(pokemonList),len(pokemons)) |
+ | sortindex=[1,0,2,3] | ||
+ | for index,pokemon in enumerate(pokemons): | ||
+ | expected=pokemonList[sortindex[index]] | ||
+ | self.assertEquals(expected,pokemon) | ||
# close the database connection | # close the database connection | ||
dgraph.close() | dgraph.close() |
Revision as of 08:36, 11 August 2020
OsProject
OsProject | |
---|---|
edit | |
id | DgraphAndWeaviateTest |
state | |
owner | Wolfgang Fahl |
title | DgraphAndWeaviateTest |
url | https://github.com/WolfgangFahl/DgraphAndWeaviateTest |
version | 0.0.1 |
description | |
date | 2020/08/05 |
since | |
until |
This is sample project to test Python based access to Dgraph and Weaviate
Installation
https://github.com/WolfgangFahl/DgraphAndWeaviateTest
cd DgraphAndWeaviateTest
scripts/install
Dgraph Installation
docker based pull:
scripts/dgraph -p
Dgraph start
docker based start of
- alpha
- ratel
- zero
scripts/dgraph
Dgraph stop
scripts/dgraph -k
Example unit test
def testDgraph(self):
'''
test basic Dgraph operation
'''
dgraph=Dgraph(debug=True)
# drop all data and schemas
dgraph.drop_all()
# create a schema for Pokemons
schema='''
name: string @index(exact) .
weight: float .
height: float .
type Pokemon {
name
weight
height
}'''
dgraph.addSchema(schema)
# prepare a list of Pokemons to be added
pokemonList=[{'name':'Pikachu', 'weight': 6, 'height': 0.4 },
{'name':'Arbok', 'weight': 65, 'height': 3.5 },
{'name':'Raichu', 'weight': 30, 'height': 0.8 },
{'name':'Sandan', 'weight': 12, 'height': 0.6 }]
# add the list in a single transaction
dgraph.addData(obj=pokemonList)
# retrieve the data via GraphQL+ query
graphQuery='''{
# list of pokemons
pokemons(func: has(name), orderasc: name) {
name
weight
height
}
}'''
queryResult=dgraph.query(graphQuery)
# check the result
self.assertTrue('pokemons' in queryResult)
pokemons=queryResult['pokemons']
self.assertEqual(len(pokemonList),len(pokemons))
sortindex=[1,0,2,3]
for index,pokemon in enumerate(pokemons):
expected=pokemonList[sortindex[index]]
self.assertEquals(expected,pokemon)
# close the database connection
dgraph.close()
Example test session
see https://travis-ci.org/github/WolfgangFahl/DgraphAndWeaviateTest/jobs/715131236