Example #1
0
    def testLinkList(self):

        DB = pyorient.OrientDB("localhost", 2424)
        DB.connect("root", "root")

        db_name = "test_tr"
        try:
            DB.db_drop(db_name)
        except pyorient.PyOrientCommandException as e:
            print(e)
            pass
        finally:
            db = DB.db_create(db_name, pyorient.DB_TYPE_GRAPH,
                              pyorient.STORAGE_TYPE_MEMORY)
            pass

        DB.command("insert into V set key1 = 'row0'")
        DB.command("insert into V set key1 = 'row1'")
        DB.command("insert into V set key1 = 'row2'")
        DB.command("insert into V set key1 = 'row3'")

        o1 = pyorient.OrientRecordLink("9:0")
        o2 = pyorient.OrientRecordLink("9:1")
        o3 = pyorient.OrientRecordLink("9:2")
        o4 = pyorient.OrientRecordLink("9:3")
        lList = [o1, o2, o3, o4]

        rec = DB.record_create(9, {'test': lList, 'key1': 'row4'})  # 9:4

        if self.client.version.major > 1:
            _rec = DB.record_load("#9:4")
            assert len(_rec.oRecordData['test']) == 4
            assert isinstance(_rec.oRecordData['test'][0],
                              pyorient.OrientRecordLink)
Example #2
0
 def storeRecommendationClusters(self, recommendationCluster, orientclient):
     menuitems = MenuItems()
     items = []
     cluster = {}
     dbClustorData = {}
     dbClustorData['@RecommendationCluster']=cluster
     newCluster = orientclient.record_create(-1, dbClustorData)
     clusterrid = newCluster._rid
     print("Storing recommendation cluster ")
     for recommendation in recommendationCluster['recommendation']:
         recItem = {}
         dbData = {}
         item = menuitems.loadMenuItemWithId(str(recommendation),orientclient)
         recItem['in'] = pyorient.OrientRecordLink(item._rid)
         recItem['out'] = pyorient.OrientRecordLink(clusterrid)
         dbData['@RecommendedItem'] = recItem
         newRecItem = orientclient.record_create(-1, dbData)
         items.append(pyorient.OrientRecordLink(newRecItem._rid))  
     recommendeditems = {}
     dbClustorUpdateData = {}
     recommendeditems['recommendeditems'] = items
     dbClustorUpdateData['@RecommendationCluster']= recommendeditems
     print("Updating {} for {} with version {}".format(dbClustorUpdateData, clusterrid, newCluster._version))
     orientclient.record_update(clusterrid, clusterrid, dbClustorUpdateData, newCluster._version)          
     print("Returning new recommendation cluster ")
     return newCluster       
Example #3
0
 def storeRecommendations(self, recommendations, orientclient):
     recommendationForStore = {}
     print("Storing recommendation clusters ")
     for recommendation in recommendations:
         newCluster = self.storeRecommendationClusters(recommendation, orientclient)
         recommendationForStore[str(recommendation['master_product_id'])]= pyorient.OrientRecordLink(newCluster._rid)
     return recommendationForStore
Example #4
0
 def getStoreMenuItems(self, recommendations, orientclient):
     menuitems = MenuItems()
     items = []
     for recommendation in recommendations:
         item = menuitems.loadMenuItemWithId(str(recommendation['master_product_id']),orientclient)
         items.append( pyorient.OrientRecordLink(item._rid))
     return items
Example #5
0
    def testLinkList(self):
        DB = pyorient.OrientDB("localhost", 2424)
        DB.connect("root", "root")

        db_name = "test_tr"
        try:
            DB.db_drop(db_name)

        except pyorient.PyOrientStorageException as e:
            print(e)

        finally:
            DB.db_create(db_name, pyorient.DB_TYPE_GRAPH,
                         pyorient.STORAGE_TYPE_MEMORY)

        DB.command("insert into V set key1 = 'row0'")
        DB.command("insert into V set key1 = 'row1'")
        DB.command("insert into V set key1 = 'row2'")
        DB.command("insert into V set key1 = 'row3'")

        # V is cluster 9 in OrientDB 2.2, in ODB 3.1+ it is cluster 10
        o1 = pyorient.OrientRecordLink("10:0")
        o2 = pyorient.OrientRecordLink("10:1")
        o3 = pyorient.OrientRecordLink("10:2")
        o4 = pyorient.OrientRecordLink("10:3")
        lList = [o1, o2, o3, o4]

        tx = DB.tx_commit()
        tx.begin()

        rec = DB.record_create(-1, {"@V": {
            'test': lList,
            'key1': 'row4'
        }})  # 10:4

        tx.attach(rec)
        tx.commit()

        # Removed major version check
        _rec = DB.record_load(rec._record_content._rid)
        assert len(_rec.oRecordData['test']) == 4
        assert isinstance(_rec.oRecordData['test'][0],
                          pyorient.OrientRecordLink)