示例#1
0
class TestConnection(unittest.TestCase):

    def setUp(self):
        self.connection = Connection("neo4j", "password")
        self.connection.clear_database()

    def test_add_dummy_data(self):
        result = add_dummy_data(self.connection)
        self.assertEqual(result[0]['data'][0],  {'row': [[{'name': 'Bob', 'friendly': True}, {},
                                                          {'name': 'Alice'}, {},
                                                          {'name': 'Eve'}]]})

    def test_clear_database(self):
        add_dummy_data(self.connection)
        self.connection.clear_database()
        lookup_response = self.connection.post(Statement("MATCH (n) RETURN n LIMIT 100"))
        self.assertEqual(0, len(lookup_response[0]['data']))

    def test_wrong_syntax(self):
        self.assertRaises(ConnectionError, self.connection.post, Statement("CREATE (n) -> WHERE id(n)=5"))

    def test_post_multiple(self):
        add_dummy_data(self.connection)
        results = self.connection.post(Statement("MATCH (b {name: 'Bob'}) CREATE (n) -[:KNOWS]-> (b) return n"),
                                       Statement("MATCH (e {name: 'Eve'}) <-[r:KNOWS]- () DELETE e, r"))
        self.assertEqual(2, len(results))
        self.assertDictEqual({'data': [{'row': [{}]}], 'columns': ['n']}, results[0])
        self.assertDictEqual({'data': [], 'columns': []}, results[1])
        print(results)

    def test_find(self):
        add_dummy_data(self.connection)
        result = self.connection.find("PERSON")
        self.assertEqual(3, len(result))
        for person in result:
            self.assertIn(person[1]['name'], ["Alice", "Bob", "Eve"])

        result = self.connection.find("PERSON", {'name': "Eve"})
        self.assertEqual(1, len(result))
        self.assertEqual(result[0][1]['name'], "Eve")

        result = self.connection.find(match_params={'name': "Alice"})
        self.assertEqual(1, len(result))
        self.assertEqual(result[0][1]['name'], "Alice")

        result = self.connection.find(match_params={'name': 'Bob', 'friendly': True})
        self.assertEqual(1, len(result))
        self.assertEqual(result[0][1]['name'], "Bob")
        self.assertEqual(result[0][1]['friendly'], True)
示例#2
0
 def setUp(self):
     self.connection = Connection("neo4j", "password")
     self.connection.clear_database()