def Test_DAGStructureMultipleUsers(self):
     
     #tags for the first user...
     u1 = MyUser(user="******", key_name="Bill")
     u1.put()
     u2 = MyUser(user="******", key_name="Ted")
     u2.put()
     
     # Bill's tags
     t1 = TagVertex(parent = u1, key_name="Tag1")
     t1.ttlCount = 1
     t1.put()
     t2 = TagVertex(parent = u1, key_name="Tag2")
     t2.ttlCount = 2
     t2.put()
     t3 = TagVertex(parent = u1, key_name="Tag3")
     t3.ttlCount = 3
     t3.put()
     t4 = TagVertex(parent = u1, key_name="Tag4")
     t4.ttlCount = 4
     t4.put()
     t5 = TagVertex(parent = u1, key_name="Tag5")
     t5.ttlCount = 5
     t5.put()
     
     # Ted's tags
     tt1 = TagVertex(parent = u2, key_name="Tag1")
     tt1.ttlCount = 11
     tt1.put()
     tt2 = TagVertex(parent = u2, key_name="Tag2")
     tt2.ttlCount = 12
     tt2.put()
     tt3 = TagVertex(parent = u2, key_name="Tag3")
     tt3.ttlCount = 13
     tt3.put()
     tt4 = TagVertex(parent = u2, key_name="Tag4")
     tt4.ttlCount = 14
     tt4.put()
     tt5 = TagVertex(parent = u2, key_name="Tag5")
     tt5.ttlCount = 15
     tt5.put()
     
     #extract Bill's tags
     q1 = TagVertex.all()
     q1.ancestor(u1.key())
     results = q1.fetch(10)
     check.ok_(len(results) == 5)
     for v in results:
         check.ok_(v.ttlCount > 0 and v.ttlCount < 11)
     #endfor
     
     q2 = TagVertex.all()
     q2.ancestor(u2.key())
     results = q2.fetch(10)
     check.ok_(len(results) == 5)
     for v in results:
         check.ok_(v.ttlCount > 10 and v.ttlCount < 16)
    def Test_AddEdgesToStoreForOneTag(self):

        u1 = MyUser(None, "Bill")
        u1.put()
        u2 = MyUser(None, "Ted")
        u2.put()

        file = open("E:\\eclipse\\testworkspace\\zardoztestzone\\src\\DeliciousTagExplorer\\UnitTests\\shortTagDag\\shorttaglist.json", "r")
        dag = TagDAGBuilderClass()
        dag.StoreMasterTagList(u2, file.read())
        file.close()

        testVertexKey = db.Key.from_path("MyUser", "Ted", "TagVertex", "6mm")
        testVertex = db.get(testVertexKey)
        check.ok_(testVertex != None)
        check.ok_(testVertex.key().name() == "6mm")

        file = open("E:\\eclipse\\testworkspace\\zardoztestzone\\src\\DeliciousTagExplorer\\UnitTests\\shortTagDag\\6mmlinks_short.json", "r")
        dict = dag.AddEdgesForVertex(testVertex, file.read())
        file.close()

        check.ok_(dict.has_key("28mm") == True)
        check.ok_(dict.has_key("2mm") == True)
        check.ok_(dict.has_key("accessories") == True)
        check.ok_(dict.has_key("acrylic") == True)
        check.ok_(dict.has_key("activities") == True)
        check.ok_(dict.has_key("6mm") == False)

        check.ok_(len(testVertex.edges) == 5)
        otherVertices = testVertex.GetMyAdjacentVertices()
        check.ok_(len(otherVertices) == 5)
        check.ok_(otherVertices.has_key("28mm"))
        check.ok_(otherVertices.has_key("2mm"))
        check.ok_(otherVertices.has_key("accessories"))
        check.ok_(otherVertices.has_key("acrylic"))
        check.ok_(otherVertices.has_key("activities"))

        myEdges = testVertex.GetMyEdges()
        check.ok_(myEdges["28mm"].edgeCount == 11)
        check.ok_(myEdges["2mm"].edgeCount == 1)
        check.ok_(myEdges["accessories"].edgeCount == 4)
        check.ok_(myEdges["acrylic"].edgeCount == 5)
        check.ok_(myEdges["activities"].edgeCount == 6)

        otherVertex = dag.GetVertex(u2.key().name(), "28mm")
        myEdges = otherVertex.GetMyEdges()
        check.ok_(len(myEdges) == 0)
        check.ok_(otherVertex.key().name() == "28mm")
        theirEdges = otherVertex.GetAdjacentVerticesRecordedElsewhere()
        check.ok_(len(theirEdges) == 1)
        check.ok_(theirEdges.has_key("6mm"))

        # test no exceptions from an empty json string
        dict = dag.AddEdgesForVertex(testVertex, "")
        check.ok_(len(dict) == 0)

        #test no exceptions from a bad json string
        dict = dag.AddEdgesForVertex(testVertex, " not A { JSON string {{{")
        check.ok_(len(dict) == 0)
 def tearDown(self):
     allUsers = []
     userQuery = MyUser.all()
     for user in userQuery:
         allUsers.append(user.key())
     #end for
     db.delete(allUsers)
示例#4
0
 def tearDown(self):
     allUsers = []
     userQuery = MyUser.all()
     for user in userQuery:
         allUsers.append(user.key())
     #end for
     db.delete(allUsers)
 def tearDown(self):
     _current_session = None
     
     self.testbed.deactivate()
     
     allEdges = []
     edgeQuery = TagEdge.all()
     for edge in edgeQuery:
         allEdges.append(edge.key())
     #end for
     db.delete(allEdges)
     
     allTags = []
     tagQuery = TagVertex.all()
     for tag in tagQuery:
         allTags.append(tag.key())
     #end for
     db.delete(allTags)
     
     allUsers = []
     userQuery = MyUser.all()
     for user in userQuery:
         allUsers.append(user.key())
     #end for
     db.delete(allUsers)
示例#6
0
    def tearDown(self):
        _current_session = None

        self.testbed.deactivate()

        allEdges = []
        edgeQuery = TagEdge.all()
        for edge in edgeQuery:
            allEdges.append(edge.key())
        #end for
        db.delete(allEdges)

        allTags = []
        tagQuery = TagVertex.all()
        for tag in tagQuery:
            allTags.append(tag.key())
        #end for
        db.delete(allTags)

        allUsers = []
        userQuery = MyUser.all()
        for user in userQuery:
            allUsers.append(user.key())
        #end for
        db.delete(allUsers)
示例#7
0
    def Test_ManageUsers(self):
        dbm = MyMetaDataManager()
        doIExist = dbm.HasUser("Bill")
        check.ok_(doIExist == False)

        dbm.NewUser("Bill")
        doIExist = dbm.HasUser("Bill")
        check.ok_(doIExist == True)

        u2 = MyUser(None, "Ted")
        doIExist = dbm.HasUser("Ted")
        check.ok_(doIExist == False)
        u2.put()
        doIExist = dbm.HasUser("Ted")
        check.ok_(doIExist == True)
        u3 = dbm.GetUser("Ted")
        check.ok_(u3 is not None)
        check.ok_(u3.key() == u2.key())
 def Test_ManageUsers(self):
     dbm = MyMetaDataManager()
     doIExist = dbm.HasUser("Bill")
     check.ok_(doIExist == False)
     
     dbm.NewUser("Bill")
     doIExist = dbm.HasUser("Bill")
     check.ok_(doIExist == True)
     
     u2 = MyUser(None, "Ted")
     doIExist = dbm.HasUser("Ted")
     check.ok_(doIExist == False)
     u2.put()
     doIExist = dbm.HasUser("Ted")
     check.ok_(doIExist == True)
     u3 = dbm.GetUser("Ted")
     check.ok_(u3 is not None)
     check.ok_(u3.key() == u2.key())
    def setUp(self):

        #check that the db contents really have been deleted
        tagQuery = TagVertex.all()
        tags = tagQuery.fetch(100)
        check.ok_(len(tags) == 0)
        edgeQuery = TagEdge.all()
        edges = edgeQuery.fetch(100)
        check.ok_(len(edges) == 0)
        userQuery = MyUser.all()
        users = userQuery.fetch(100)
        check.ok_(len(users) == 0)
    def Test_EdgeAndVertexAccessors(self):

        u1 = MyUser(None, "Bill")
        u1.put()

        file = open("E:\\eclipse\\testworkspace\\zardoztestzone\\src\\DeliciousTagExplorer\\UnitTests\\shortTagDag\\shorttaglist.json", "r")
        dag = TagDAGBuilderClass()
        dag.StoreMasterTagList(u1, file.read())
        file.close()

        testVertexKey = db.Key.from_path("MyUser", u1.key().name(), "TagVertex", "6mm")
        testVertex = db.get(testVertexKey)
        check.ok_(testVertex != None)
        check.ok_(testVertex.key().name() == "6mm")

        file = open("E:\\eclipse\\testworkspace\\zardoztestzone\\src\\DeliciousTagExplorer\\UnitTests\\shortTagDag\\6mmlinks_short.json", "r")
        dict = dag.AddEdgesForVertex(testVertex, file.read())
        file.close()

        testVertex = dag.GetVertex(u1.key().name(), "acrylic")
        check.ok_(testVertex != None)
        check.ok_(testVertex.key().name() == "acrylic")
        check.ok_(testVertex.ttlCount == 14)

        testVertex = dag.GetVertex("Bill", "6mm")
        check.ok_(testVertex != None)
        check.ok_(testVertex.key().name() == "6mm")
        check.ok_(testVertex.ttlCount == 29)
 def tearDown(self):
     allEdges = []
     edgeQuery = TagEdge.all()
     for edge in edgeQuery:
         allEdges.append(edge.key())
     #end for
     db.delete(allEdges)
     
     allTags = []
     tagQuery = TagVertex.all()
     for tag in tagQuery:
         allTags.append(tag.key())
     #end for
     db.delete(allTags)
     
     allUsers = []
     userQuery = MyUser.all()
     for user in userQuery:
         allUsers.append(user.key())
     #end for
     db.delete(allUsers)
    def Test_GetAdjacentVertices_SmallDag_MultipleUsers(self):

        u1 = MyUser(None, "Bill")
        u1.put()
        u2 = MyUser(None, "Ted")
        u2.put()

        dag = TagDAGBuilderClass()
        file = open("E:\\eclipse\\testworkspace\\zardoztestzone\\src\\DeliciousTagExplorer\\UnitTests\\shortTagDag\\shorttaglist.json", "r")
        dag.StoreMasterTagList(u1, file.read())
        file.close()
        aVertexKey = db.Key.from_path("MyUser", "Bill", "TagVertex", "6mm")
        aVertex = db.get(aVertexKey)
        check.ok_(aVertex.key().name() == "6mm")
        file = open("E:\\eclipse\\testworkspace\\zardoztestzone\\src\\DeliciousTagExplorer\\UnitTests\\shortTagDag\\6mmlinks_short.json", "r")
        dag.AddEdgesForVertex(aVertex, file.read())
        file.close()
        aVertexKey = db.Key.from_path("MyUser", "Bill", "TagVertex", "2mm")
        aVertex = db.get(aVertexKey)
        check.ok_(aVertex.key().name() == "2mm")
        file = open("E:\\eclipse\\testworkspace\\zardoztestzone\\src\\DeliciousTagExplorer\\UnitTests\\shortTagDag\\2mmlinks_short.json", "r")
        dag.AddEdgesForVertex(aVertex, file.read())
        file.close()
        aVertexKey = db.Key.from_path("MyUser", "Bill", "TagVertex", "28mm")
        aVertex = db.get(aVertexKey)
        check.ok_(aVertex.key().name() == "28mm")
        file = open("E:\\eclipse\\testworkspace\\zardoztestzone\\src\\DeliciousTagExplorer\\UnitTests\\shortTagDag\\28mmlinks_short.json", "r")
        dag.AddEdgesForVertex(aVertex, file.read())
        file.close()
        aVertexKey = db.Key.from_path("MyUser", "Bill", "TagVertex", "acrylic")
        aVertex = db.get(aVertexKey)
        check.ok_(aVertex.key().name() == "acrylic")
        file = open("E:\\eclipse\\testworkspace\\zardoztestzone\\src\\DeliciousTagExplorer\\UnitTests\\shortTagDag\\acryliclinks_short.json", "r")
        dag.AddEdgesForVertex(aVertex, file.read())
        file.close()
        aVertexKey = db.Key.from_path("MyUser", "Bill", "TagVertex", "activities")
        aVertex = db.get(aVertexKey)
        check.ok_(aVertex.key().name() == "activities")
        file = open("E:\\eclipse\\testworkspace\\zardoztestzone\\src\\DeliciousTagExplorer\\UnitTests\\shortTagDag\\activitieslinks_short.json", "r")
        dag.AddEdgesForVertex(aVertex, file.read())
        file.close()
        aVertexKey = db.Key.from_path("MyUser", "Bill", "TagVertex", "accessories")
        aVertex = db.get(aVertexKey)
        check.ok_(aVertex.key().name() == "accessories")
        file = open("E:\\eclipse\\testworkspace\\zardoztestzone\\src\\DeliciousTagExplorer\\UnitTests\\shortTagDag\\accessorieslinks_short.json", "r")
        dag.AddEdgesForVertex(aVertex, file.read())
        file.close()

        #add *some* of the same tags and edges for the second user
        file = open("E:\\eclipse\\testworkspace\\zardoztestzone\\src\\DeliciousTagExplorer\\UnitTests\\shortTagDag\\shorttaglist.json", "r")
        dag.StoreMasterTagList(u2, file.read())
        file.close()
        aVertexKey = db.Key.from_path("MyUser", "Ted", "TagVertex", "6mm")
        aVertex = db.get(aVertexKey)
        check.ok_(aVertex.key().name() == "6mm")
        file = open("E:\\eclipse\\testworkspace\\zardoztestzone\\src\\DeliciousTagExplorer\\UnitTests\\shortTagDag\\6mmlinks_short.json", "r")
        dag.AddEdgesForVertex(aVertex, file.read())
        file.close()

        #actionscript has no links

        # walk to depth 1 - should just get the parent tag
        vertexDict = dag.GetDAGSubset("Bill", "6mm", 1)
        check.ok_(len(vertexDict) == 1)
        check.ok_(vertexDict.has_key("6mm") == True)
        check.ok_(vertexDict.has_key("28mm") == False)
        check.ok_(vertexDict.has_key("2mm") == False)
        check.ok_(vertexDict.has_key("activities") == False)
        check.ok_(vertexDict.has_key("acrylic") == False)
        check.ok_(vertexDict.has_key("accessories") == False)
        check.ok_(vertexDict.has_key("actionscript") == False)

        vertexDict = dag.GetDAGSubset("Bill", "acrylic", 1)
        check.ok_(len(vertexDict) == 1)
        check.ok_(vertexDict.has_key("6mm") == False)
        check.ok_(vertexDict.has_key("28mm") == False)
        check.ok_(vertexDict.has_key("2mm") == False)
        check.ok_(vertexDict.has_key("activities") == False)
        check.ok_(vertexDict.has_key("acrylic") == True)
        check.ok_(vertexDict.has_key("accessories") == False)
        check.ok_(vertexDict.has_key("actionscript") == False)

        vertexDict = dag.GetDAGSubset("Bill", "actionscript", 1)
        check.ok_(len(vertexDict) == 1)
        check.ok_(vertexDict.has_key("6mm") == False)
        check.ok_(vertexDict.has_key("28mm") == False)
        check.ok_(vertexDict.has_key("2mm") == False)
        check.ok_(vertexDict.has_key("activities") == False)
        check.ok_(vertexDict.has_key("acrylic") == False)
        check.ok_(vertexDict.has_key("accessories") == False)
        check.ok_(vertexDict.has_key("actionscript") == True)

        # walk to depth 2 - should get 6 tags
        vertexDict = dag.GetDAGSubset("Bill", "6mm", 2)
        check.ok_(len(vertexDict) == 6)
        check.ok_(vertexDict.has_key("6mm") == True)
        check.ok_(vertexDict.has_key("28mm") == True)
        check.ok_(vertexDict.has_key("2mm") == True)
        check.ok_(vertexDict.has_key("activities") == True)
        check.ok_(vertexDict.has_key("acrylic") == True)
        check.ok_(vertexDict.has_key("accessories") == True)
        check.ok_(vertexDict.has_key("actionscript") == False)

        # walk to depth 2 - should get 3 tags
        vertexDict = dag.GetDAGSubset("Bill", "activities", 2)
        check.ok_(len(vertexDict) == 3)
        check.ok_(vertexDict.has_key("6mm") == True)
        check.ok_(vertexDict.has_key("28mm") == False)
        check.ok_(vertexDict.has_key("2mm") == True)
        check.ok_(vertexDict.has_key("activities") == True)
        check.ok_(vertexDict.has_key("acrylic") == False)
        check.ok_(vertexDict.has_key("accessories") == False)
        check.ok_(vertexDict.has_key("actionscript") == False)
    def Test_AddEdgesToStoreForMultipleTags(self):

        u1 = MyUser(None, "Bill")
        u1.put()
        u2 = MyUser(None, "Ted")
        u2.put()

        dag = TagDAGBuilderClass()
        file = open("E:\\eclipse\\testworkspace\\zardoztestzone\\src\\DeliciousTagExplorer\\UnitTests\\shortTagDag\\shorttaglist.json", "r")
        dag.StoreMasterTagList(u2, file.read())
        file.close()

        aVertexKey = db.Key.from_path("MyUser", u2.key().name(), "TagVertex", "6mm")
        aVertex = db.get(aVertexKey)
        check.ok_(aVertex.key().name() == "6mm")
        file = open("E:\\eclipse\\testworkspace\\zardoztestzone\\src\\DeliciousTagExplorer\\UnitTests\\shortTagDag\\6mmlinks_short.json", "r")
        dag.AddEdgesForVertex(aVertex, file.read())
        file.close()

        aVertexKey = db.Key.from_path("MyUser", u2.key().name(), "TagVertex", "2mm")
        aVertex = db.get(aVertexKey)
        check.ok_(aVertex.key().name() == "2mm")
        file = open("E:\\eclipse\\testworkspace\\zardoztestzone\\src\\DeliciousTagExplorer\\UnitTests\\shortTagDag\\2mmlinks_short.json", "r")
        dag.AddEdgesForVertex(aVertex, file.read())
        file.close()

        aVertexKey = db.Key.from_path("MyUser", u2.key().name(), "TagVertex", "28mm")
        aVertex = db.get(aVertexKey)
        check.ok_(aVertex.key().name() == "28mm")
        file = open("E:\\eclipse\\testworkspace\\zardoztestzone\\src\\DeliciousTagExplorer\\UnitTests\\shortTagDag\\28mmlinks_short.json", "r")
        dag.AddEdgesForVertex(aVertex, file.read())
        file.close()

        #"28mm":62, "2mm":1, "6mm":29, "accessories":52, "acrylic":14, "actionscript":1, "activities":3

        k = db.Key.from_path("MyUser", u2.key().name(), "TagVertex", "28mm")
        testVertex = db.get(k)
        check.ok_(len(testVertex.edges) == 0)

        k = db.Key.from_path("MyUser", u2.key().name(), "TagVertex", "2mm")
        testVertex = db.get(k)
        check.ok_(len(testVertex.edges) == 2)

        k = db.Key.from_path("MyUser", u2.key().name(), "TagVertex", "6mm")
        testVertex = db.get(k)
        check.ok_(len(testVertex.edges) == 5)

        k = db.Key.from_path("MyUser", u2.key().name(), "TagVertex", "accessories")
        testVertex = db.get(k)
        
        check.ok_(len(testVertex.edges) == 0)
        k = db.Key.from_path("MyUser", u2.key().name(), "TagVertex", "acrylic")
        testVertex = db.get(k)
        
        check.ok_(len(testVertex.edges) == 0)
        k = db.Key.from_path("MyUser", u2.key().name(), "TagVertex", "actionscript")
        testVertex = db.get(k)
        
        check.ok_(len(testVertex.edges) == 0)
        k = db.Key.from_path("MyUser", u2.key().name(), "TagVertex", "activities")
        testVertex = db.get(k)
        check.ok_(len(testVertex.edges) == 0)
    def Test_AddMasterTagsToDataStore(self):

        u1 = MyUser(None, "Bill")
        u1.put()
        u2 = MyUser(None, "Ted")
        u2.put()

        file = open("E:\\eclipse\\testworkspace\\zardoztestzone\\src\\DeliciousTagExplorer\\UnitTests\\shortTagDag\\shorttaglist.json", "r")
        dag = TagDAGBuilderClass()
        dict = dag.StoreMasterTagList(u1, file.read())
        file.close()
        
        # add an extra vertex to represent the second user's data
        tv = TagVertex(u2, "wild thing")
        tv.put()

        # check that the returned dictionary is complete
        check.ok_(dict.has_key("28mm") == True)
        check.ok_(dict.has_key("2mm") == True)
        check.ok_(dict.has_key("6mm") == True)
        check.ok_(dict.has_key("accessories") == True)
        check.ok_(dict.has_key("actionscript") == True)
        check.ok_(dict.has_key("activities") == True)
        check.ok_(dict.has_key("d'oh!") == False)
        check.ok_(dict.has_key("wild thing") == False)
        
        #check that the complete set of vertices is correct
        dict2 = {}
        alist = dag.GetCompleteVertexSet()
        for tag in alist:
            dict2[tag.key().name()] = tag.ttlCount
        #endfor    
        check.ok_(dict2.has_key("28mm") == True)
        check.ok_(dict2.has_key("2mm") == True)
        check.ok_(dict2.has_key("6mm") == True)
        check.ok_(dict2.has_key("accessories") == True)
        check.ok_(dict2.has_key("actionscript") == True)
        check.ok_(dict2.has_key("activities") == True)
        check.ok_(dict2.has_key("d'oh!") == False)
        check.ok_(dict2.has_key("wild thing") == True)
        
        #check we can get a set of vertices for each user
        dict3 = {}
        alist = dag.GetCompleteVertexSetForNamedUser("Bill")
        for tag in alist:
            dict3[tag.key().name()] = tag.ttlCount
        #endfor    
        check.ok_(dict3.has_key("28mm") == True)
        check.ok_(dict3.has_key("2mm") == True)
        check.ok_(dict3.has_key("6mm") == True)
        check.ok_(dict3.has_key("accessories") == True)
        check.ok_(dict3.has_key("actionscript") == True)
        check.ok_(dict3.has_key("activities") == True)
        check.ok_(dict3.has_key("d'oh!") == False)
        check.ok_(dict3.has_key("wild thing") == False)

        dict4 = {}
        alist = dag.GetCompleteVertexSetForNamedUser("Ted")
        for tag in alist:
            dict4[tag.key().name()] = tag.ttlCount
        #endfor    
        check.ok_(dict4.has_key("28mm") == False)
        check.ok_(dict4.has_key("2mm") == False)
        check.ok_(dict4.has_key("6mm") == False)
        check.ok_(dict4.has_key("accessories") == False)
        check.ok_(dict4.has_key("actionscript") == False)
        check.ok_(dict4.has_key("activities") == False)
        check.ok_(dict4.has_key("d'oh!") == False)
        check.ok_(dict4.has_key("wild thing") == True)

        testVertexKey = db.Key.from_path("MyUser", "Bill", "TagVertex", "28mm")
        testVertex = db.get(testVertexKey)
        check.ok_(testVertex.key().name() == "28mm")
        check.ok_(testVertex.ttlCount == 62)
        check.ok_(testVertex.parent().key() == u1.key())

        testVertexKey = db.Key.from_path("MyUser", "Bill", "TagVertex", "2mm")
        testVertex = db.get(testVertexKey)
        check.ok_(testVertex.key().name() == "2mm")
        check.ok_(testVertex.ttlCount == 1)

        testVertexKey = db.Key.from_path("MyUser", "Bill", "TagVertex", "6mm")
        testVertex = db.get(testVertexKey)
        check.ok_(testVertex.key().name() == "6mm")
        check.ok_(testVertex.ttlCount == 29)

        testVertexKey = db.Key.from_path("MyUser", "Bill", "TagVertex", "accessories")
        testVertex = db.get(testVertexKey)
        check.ok_(testVertex.key().name() == "accessories")
        check.ok_(testVertex.ttlCount == 52)

        testVertexKey = db.Key.from_path("MyUser", "Bill", "TagVertex", "actionscript")
        testVertex = db.get(testVertexKey)
        check.ok_(testVertex.key().name() == "actionscript")
        check.ok_(testVertex.ttlCount == 1)

        testVertexKey = db.Key.from_path("MyUser", "Bill", "TagVertex", "activities")
        testVertex = db.get(testVertexKey)
        check.ok_(testVertex.key().name() == "activities")
        check.ok_(testVertex.ttlCount == 3)

        #try to get an existing tag with the wrong user
        testVertexKey = db.Key.from_path("MyUser", "Ted", "TagVertex", "activities")
        testVertex = db.get(testVertexKey)
        check.ok_(testVertex == None)

        #try to get a tag that does not exist
        testVertexKey = db.Key.from_path("MyUser", "Bill", "TagVertex", "d'oh!")
        testVertex = db.get(testVertexKey)
        check.ok_(testVertex == None)

        # test that an empty tag string does not cause an exception
        dict = dag.StoreMasterTagList(u2, "")
        check.ok_(len(dict) == 0)
        s = None
        dict = dag.StoreMasterTagList(u2, s)
        check.ok_(len(dict) == 0)
示例#15
0
 def setUp(self):
     #check that the db contents really have been deleted
     userQuery = MyUser.all()
     users = userQuery.fetch(100)
     check.ok_(len(users) == 0)
    def Test_DAGStructure_VertexEdgeSetQueries(self):

        #multiple users so we can test this feature
        u1 = MyUser(user="******", key_name="Bill")
        u1.put()
        u2 = MyUser(user="******", key_name="Ted")
        u2.put()

        #first insert all known tags
        t1 = TagVertex(u1, "Tag1")
        t1.ttlCount = 1
        t1.put()
        t2 = TagVertex(u1, "Tag2")
        t2.ttlCount = 2
        t2.put()
        t3 = TagVertex(u1, "Tag3")
        t3.ttlCount = 3
        t3.put()
        t4 = TagVertex(u1, "Tag4")
        t4.ttlCount = 4
        t4.put()
        t5 = TagVertex(u1, "Tag5")
        t5.ttlCount = 5
        t5.put()
        t6 = TagVertex(u1, "Tag6")
        t6.ttlCount = 6
        t6.put()
        t1.AddEdge(t2, 11)
        t1.AddEdge(t3, 12)
        t2.AddEdge(t3, 13)
        t2.AddEdge(t4, 14)
        t2.AddEdge(t6, 15)
        t3.AddEdge(t4, 16)
        
        #some duplicate tags for the second user
        #(just noise - the calls here work from vertex references
        #and so should never see these 'other' tags
        t22 = TagVertex(u2, "Tag2")
        t22.ttlCount = 22
        t22.put()
        t33 = TagVertex(u2, "Tag3")
        t33.ttlCount = 33
        t33.put()
        t44 = TagVertex(u2, "Tag4")
        t44.ttlCount = 44
        t44.put()
        t22.AddEdge(t33, 13)
        t22.AddEdge(t44, 14)
        t33.AddEdge(t44, 16)

        # test getting the set of outgoing edges
        myEdges = t2.GetMyEdges()
        check.ok_(myEdges != None)
        check.ok_(len(myEdges) == 3)
        check.ok_(myEdges.has_key("Tag3"))
        check.ok_(myEdges.has_key("Tag4"))
        check.ok_(myEdges.has_key("Tag6"))
        check.ok_(myEdges["Tag3"].edgeCount == 13)
        check.ok_(myEdges["Tag4"].edgeCount == 14)
        check.ok_(myEdges["Tag6"].edgeCount == 15)
        
        #get the set of connected vertices recorded in a vertex
        myConectees = t3.GetMyAdjacentVertices()
        check.ok_(myConectees != None)
        check.ok_(len(myConectees) == 1)
        check.ok_(myConectees.has_key("Tag4"))
        
        #test getting the set of incoming edges
        otherConectees = t3.GetAdjacentVerticesRecordedElsewhere()
        check.ok_(otherConectees != None)
        check.ok_(len(otherConectees) == 2)
        check.ok_(otherConectees.has_key("Tag1"))
        check.ok_(otherConectees.has_key("Tag2"))

        #get the total set of connected vertices
        connectees = t3.GetAllAdjacentVertices()
        check.ok_(connectees != None)
        check.ok_(len(connectees) == 3)
        check.ok_(connectees.has_key("Tag1"))
        check.ok_(connectees.has_key("Tag2"))
        check.ok_(connectees.has_key("Tag4"))
 def setUp(self):
     #check that the db contents really have been deleted
     userQuery = MyUser.all()
     users = userQuery.fetch(100)
     check.ok_(len(users) == 0)