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):
         cg=Dgraph(debug=True)
+
         '''
         cg.drop_all()
+
        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
 
}'''
 
}'''
         cg.addSchema(schema)
+
         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 }]
         cg.addData(obj=pokemonList)
+
         # 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=cg.query(graphQuery)
+
         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))
         cg.close()
+
         # close the database connection
        pass
+
        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 09: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