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): | + | 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=''' | schema=''' | ||
name: string @index(exact) . | name: string @index(exact) . | ||
Line 49: | Line 54: | ||
height | height | ||
}''' | }''' | ||
− | + | dgraph.addSchema(schema) | |
+ | # prepare a list of Pokemons to be added | ||
pokemonList=[{'name':'Pikachu', 'weight': 6, 'height': 0.4 }, | pokemonList=[{'name':'Pikachu', 'weight': 6, 'height': 0.4 }, | ||
{'name':'Arbok', 'weight': 65, 'height': 3.5 }, | {'name':'Arbok', 'weight': 65, 'height': 3.5 }, | ||
{'name':'Raichu', 'weight': 30, 'height': 0.8 }, | {'name':'Raichu', 'weight': 30, 'height': 0.8 }, | ||
{'name':'Sandan', 'weight': 12, 'height': 0.6 }] | {'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='''{ | graphQuery='''{ | ||
# list of pokemons | # list of pokemons | ||
Line 63: | Line 71: | ||
} | } | ||
}''' | }''' | ||
− | queryResult= | + | queryResult=dgraph.query(graphQuery) |
+ | # check the result | ||
self.assertTrue('pokemons' in queryResult) | self.assertTrue('pokemons' in queryResult) | ||
pokemons=queryResult['pokemons'] | pokemons=queryResult['pokemons'] | ||
self.assertEqual(4,len(pokemons)) | self.assertEqual(4,len(pokemons)) | ||
− | + | # close the database connection | |
− | + | dgraph.close() | |
</source> | </source> | ||
+ | |||
== Example test session == | == Example test session == | ||
see https://travis-ci.org/github/WolfgangFahl/DgraphAndWeaviateTest/jobs/715131236 | see https://travis-ci.org/github/WolfgangFahl/DgraphAndWeaviateTest/jobs/715131236 |
Revision as of 08:27, 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)) {
name
weight
height
}
}'''
queryResult=dgraph.query(graphQuery)
# check the result
self.assertTrue('pokemons' in queryResult)
pokemons=queryResult['pokemons']
self.assertEqual(4,len(pokemons))
# close the database connection
dgraph.close()
Example test session
see https://travis-ci.org/github/WolfgangFahl/DgraphAndWeaviateTest/jobs/715131236