Difference between revisions of "DgraphAndWeaviateTest"

From BITPlan Wiki
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
 
         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(4,len(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
 
         # 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