示例#1
0
    def test_order(self):
        seed = self.graph.vertex.create('test')
        seed.link('test', self.graph.vertex.create('test', value=5))
        seed.link('test', self.graph.vertex.create('test', value=4))
        seed.link('test', self.graph.vertex.create('test', value=1))

        query = gremlin.query(gremlin.outgoings, gremlin.end, gremlin.key('value'), gremlin.value)
        # the order is not guaranteed..
        self.assertEqual(set(query(self.graph, seed)), set([5, 4, 1]))

        query = gremlin.query(gremlin.outgoings, gremlin.end, gremlin.key('value'), gremlin.sort(), gremlin.value)
        self.assertEqual(list(query(self.graph, seed)), [1, 4, 5])
示例#2
0
    def test_order(self):
        seed = self.graph.vertex.create('test')
        seed.link('test', self.graph.vertex.create('test', value=5))
        seed.link('test', self.graph.vertex.create('test', value=4))
        seed.link('test', self.graph.vertex.create('test', value=1))

        query = gremlin.query(gremlin.outgoings, gremlin.end,
                              gremlin.key('value'), gremlin.value)
        # the order is not guaranteed..
        self.assertEqual(set(query(self.graph, seed)), set([5, 4, 1]))

        query = gremlin.query(gremlin.outgoings, gremlin.end,
                              gremlin.key('value'), gremlin.sort(),
                              gremlin.value)
        self.assertEqual(list(query(self.graph, seed)), [1, 4, 5])
示例#3
0
 def test_outgoings(self):
     seed = self.graph.vertex.create('test')
     other = self.graph.vertex.create('test')
     seed.link('test', other)
     other.link('test', self.graph.vertex.create('test'))
     other.link('test', self.graph.vertex.create('test'))
     query = gremlin.query(gremlin.outgoings, gremlin.end, gremlin.outgoings, gremlin.count)
     self.assertEqual(query(self.graph, seed), 2)
示例#4
0
 def test_limit(self):
     seed = self.graph.vertex.create('seed')
     seed.link('test', self.graph.vertex.create('one'))
     seed.link('test', self.graph.vertex.create('two'))
     seed.link('test', self.graph.vertex.create('one'))
     query = gremlin.query(gremlin.outgoings, gremlin.limit(2))
     count = len(list(query(self.graph, seed)))
     self.assertEqual(count, 2)
示例#5
0
 def test_where(self):
     seed = self.graph.vertex.create('seed')
     seed.link('test', self.graph.vertex.create('one'), ok=True)
     seed.link('test', self.graph.vertex.create('two'), ok=True)
     seed.link('test', self.graph.vertex.create('one'), ok=False)
     query = gremlin.query(gremlin.outgoings, gremlin.where(ok=True))
     count = len(list(query(self.graph, seed)))
     self.assertEqual(count, 2)
示例#6
0
 def test_where(self):
     seed = self.graph.vertex.create('seed')
     seed.link('test', self.graph.vertex.create('one'), ok=True)
     seed.link('test', self.graph.vertex.create('two'), ok=True)
     seed.link('test', self.graph.vertex.create('one'), ok=False)
     query = gremlin.query(gremlin.outgoings, gremlin.where(ok=True))
     count = len(list(query(self.graph, seed)))
     self.assertEqual(count, 2)
示例#7
0
 def test_limit(self):
     seed = self.graph.vertex.create('seed')
     seed.link('test', self.graph.vertex.create('one'))
     seed.link('test', self.graph.vertex.create('two'))
     seed.link('test', self.graph.vertex.create('one'))
     query = gremlin.query(gremlin.outgoings, gremlin.limit(2))
     count = len(list(query(self.graph, seed)))
     self.assertEqual(count, 2)
示例#8
0
 def test_unique(self):
     seed = self.graph.vertex.create('test')
     seed.link('test', self.graph.vertex.create('test', value=1))
     seed.link('test', self.graph.vertex.create('test', value=1))
     seed.link('test', self.graph.vertex.create('test', value=1))
     query = gremlin.query(gremlin.outgoings, gremlin.end, gremlin.key('value'), gremlin.unique, gremlin.value)
     results = list(query(self.graph, seed))
     self.assertEqual(results, [1])
示例#9
0
 def test_incomings_three(self):
     seed = self.graph.vertex.create('test')
     other = self.graph.vertex.create('test')
     seed.link('test', other)
     end = self.graph.vertex.create('test')
     other.link('test', end)
     query = gremlin.query(gremlin.incomings, gremlin.start, gremlin.incomings, gremlin.start, gremlin.get)
     self.assertEqual(query(self.graph, end), [seed])
示例#10
0
文件: load.py 项目: joehunt588/AjguDB
def get_or_create(graphdb, label, key, value):
    try:
        return gremlin.query(
            gremlin.select_vertices(**dict(key=value)),
            gremlin.limit(1),
            gremlin.get
        )(graphdb)[0]
    except IndexError:
        return graphdb.vertex.create(label, **dict(key=value))
示例#11
0
 def test_incomings_three(self):
     seed = self.graph.vertex.create('test')
     other = self.graph.vertex.create('test')
     seed.link('test', other)
     end = self.graph.vertex.create('test')
     other.link('test', end)
     query = gremlin.query(gremlin.incomings, gremlin.start,
                           gremlin.incomings, gremlin.start, gremlin.get)
     self.assertEqual(query(self.graph, end), [seed])
示例#12
0
 def test_outgoings(self):
     seed = self.graph.vertex.create('test')
     other = self.graph.vertex.create('test')
     seed.link('test', other)
     other.link('test', self.graph.vertex.create('test'))
     other.link('test', self.graph.vertex.create('test'))
     query = gremlin.query(gremlin.outgoings, gremlin.end,
                           gremlin.outgoings, gremlin.count)
     self.assertEqual(query(self.graph, seed), 2)
示例#13
0
 def test_unique(self):
     seed = self.graph.vertex.create('test')
     seed.link('test', self.graph.vertex.create('test', value=1))
     seed.link('test', self.graph.vertex.create('test', value=1))
     seed.link('test', self.graph.vertex.create('test', value=1))
     query = gremlin.query(gremlin.outgoings, gremlin.end,
                           gremlin.key('value'), gremlin.unique,
                           gremlin.value)
     results = list(query(self.graph, seed))
     self.assertEqual(results, [1])
示例#14
0
 def test_path(self):
     seed = self.graph.vertex.create('test')
     other = self.graph.vertex.create('test')
     link = seed.link('test', other)
     query = gremlin.query(
         gremlin.incomings,
         gremlin.start,
         gremlin.path(2),
         gremlin.each(gremlin.get),
         gremlin.value,
     )
     path = next(query(self.graph, other))
     self.assertEqual(path, [seed, link, other])
示例#15
0
    def test_select_and_key_index_edges(self):
        self.graph.edge.key_index('key')

        start = self.graph.vertex.create('start')
        end = self.graph.vertex.create('end')

        start.link('link', end, key='two')
        start.link('link', end, key='two')
        start.link('link', end, key='one')

        query = gremlin.query(gremlin.select_edges(key='one'), gremlin.count)
        count = query(self.graph)
        self.assertEqual(count, 1)
示例#16
0
 def test_path(self):
     seed = self.graph.vertex.create('test')
     other = self.graph.vertex.create('test')
     link = seed.link('test', other)
     query = gremlin.query(
         gremlin.incomings,
         gremlin.start,
         gremlin.path(2),
         gremlin.each(gremlin.get),
         gremlin.value,
     )
     path = next(query(self.graph, other))
     self.assertEqual(path, [seed, link, other])
示例#17
0
    def test_select_and_key_index_vertices(self):
        self.graph.vertex.key_index('key')

        self.graph.vertex.create('seed', key='one')
        self.graph.vertex.create('seed', key='one')
        self.graph.vertex.create('seed', key='two')
        self.graph.vertex.create('seed', key='one')
        self.graph.vertex.create('seed', key='two')
        self.graph.vertex.create('seed', key='one')

        query = gremlin.query(gremlin.select_vertices(key='one'),
                              gremlin.count)
        count = query(self.graph)
        self.assertEqual(count, 4)
示例#18
0
    def test_select_and_key_index_edges(self):
        self.graph.edge.key_index('key')

        start = self.graph.vertex.create('start')
        end = self.graph.vertex.create('end')

        start.link('link', end, key='two')
        start.link('link', end, key='two')
        start.link('link', end, key='one')

        query = gremlin.query(
            gremlin.select_edges(key='one'),
            gremlin.count
        )
        count = query(self.graph)
        self.assertEqual(count, 1)
示例#19
0
    def test_select_and_key_index_vertices(self):
        self.graph.vertex.key_index('key')

        self.graph.vertex.create('seed', key='one')
        self.graph.vertex.create('seed', key='one')
        self.graph.vertex.create('seed', key='two')
        self.graph.vertex.create('seed', key='one')
        self.graph.vertex.create('seed', key='two')
        self.graph.vertex.create('seed', key='one')

        query = gremlin.query(
            gremlin.select_vertices(key='one'),
            gremlin.count
        )
        count = query(self.graph)
        self.assertEqual(count, 4)
示例#20
0
 def test_incomings(self):
     seed = self.graph.vertex.create('test')
     other = self.graph.vertex.create('test')
     link = seed.link('test', other)
     query = gremlin.query(gremlin.incomings, gremlin.get)
     self.assertEqual(query(self.graph, other), [link])
示例#21
0
 def test_incomings(self):
     seed = self.graph.vertex.create('test')
     other = self.graph.vertex.create('test')
     link = seed.link('test', other)
     query = gremlin.query(gremlin.incomings, gremlin.get)
     self.assertEqual(query(self.graph, other), [link])