예제 #1
0
    def test_basic_b(self):
        graph = base_element.Graph("test")
        old_manager = ClassManager(graph)
        old_manager.insert_defined_class(definition_forms.test_b_definition_forms)

        manager = ClassManager(graph)

        Circuit = manager.get('Circuit')
        FruitFly = manager.get('FruitFly')
        Own = manager.get('Own')

        fly = FruitFly(id="No. 1", sex='male', age=3, location='Mars', lived=True)
        c = Circuit(name='circuit-1')
        own = Own(in_node=fly, out_node=c)
        print(fly)
        print(own)
        print(c)

        n = manager.model_to_node(fly)
        print(n)
        fly = manager.node_to_model(n)
        print(fly)

        n = manager.model_to_node(c)
        print(n)
        c = manager.node_to_model(n)
        print(c)

        e = manager.model_to_edge(own)
        print(e)
        own = manager.edge_to_model(e)
        print(own)
예제 #2
0
    def test_on_redis_graph(self):
        redis_graph = redisgraph.Graph('school', self.r)
        old_manager = ClassManager(redis_graph)
        old_manager.insert_defined_class(definition_forms.test_a_definition_forms)

        # get all the classes
        IntlStudent = old_manager.get("IntlStudent")
        Teacher = old_manager.get("Teacher")
        Teach = old_manager.get("Teach")
        print(Teacher.code)
        self.assertEqual(Teacher.code[0][2], 'a')
        self.assertEqual(Teacher.code[1]['banana'], 123)

        john = IntlStudent(name="John", age=23, school="Columbia", country="No country")
        kate = Teacher(name="Kate", age=18, subject="Computer Science")
        teach = Teach(in_node=kate, out_node=john)

        old_manager.model_to_node(john, auto_add=True)
        old_manager.model_to_node(kate, auto_add=True)
        old_manager.model_to_edge(teach, auto_add=True)
        redis_graph.flush()

        r = redis.Redis(host='localhost', port=6379, decode_responses=True)
        redis_graph = redisgraph.Graph('school', r)
        manager = ClassManager(redis_graph)

        results = redis_graph.query("""Match (p) return p""")
        nodes = [row[0] for row in results.result_set]
        models = [manager.node_to_model(node) for node in nodes]
        for model in models:
            print(model)

        results = redis_graph.query("""Match ()-[a]->() return a""")
        edges = [row[0] for row in results.result_set]
        models = [manager.edge_to_model(edge) for edge in edges]
        for model in models:
            print(model)

        redis_graph.delete()