Example #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])
Example #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])
Example #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)
Example #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)
Example #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)
Example #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)
Example #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)
Example #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])
Example #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])
Example #10
0
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))
Example #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])
Example #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)
Example #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])
Example #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])
Example #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)
Example #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])
Example #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)
Example #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)
Example #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)
Example #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])
Example #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])