def test_where_and_or(): person = Node('Person', name='Ali', age=Property(value=29, type=int), hair_color='red', var='n') expected_match = [ 'MATCH (n:`Person`)', ' WHERE n.name = {n_name}', ] match = Match(person.bind('name')) assert str(match) == '\n'.join(expected_match) assert len(match.params) == 1 assert 'n_name' in match.params assert match.params['n_name'] == 'Ali' match.where(person['age']) == 29 expected_match.append(' AND n.age = {n_age}') assert str(match) == '\n'.join(expected_match) assert len(match.params) == 2 assert 'n_name' in match.params assert match.params['n_name'] == 'Ali' assert 'n_age' in match.params assert match.params['n_age'] == 29 match = Match(person.bind('name')) match.where(person['age'], or_=True) == 29 expected_match.pop() expected_match.append(' OR n.age = {n_age}') assert str(match) == '\n'.join(expected_match) assert len(match.params) == 2 assert 'n_name' in match.params assert match.params['n_name'] == 'Ali' assert 'n_age' in match.params assert match.params['n_age'] == 29
def test_where_and_set(): person = Node('Person', name='Ali', age=Property(value=29, type=int), hair_color='red', var='n') expected_match = [ 'MATCH (n:`Person`)', ' WHERE n.name = {n_name}', ] match = Match(person.bind('name')) assert str(match) == '\n'.join(expected_match) assert len(match.params) == 1 assert 'n_name' in match.params assert match.params['n_name'] == 'Ali' expected_match = [ 'MATCH (n:`Person`)', ' WHERE n.name = {n_name} AND n.age = {n_age}', ] match = Match(person.bind('name', 'age')) try: assert str(match) == '\n'.join(expected_match) except AssertionError: expected_match.pop() expected_match.append( ' WHERE n.age = {n_age}' ' AND n.name = {n_name}' ) assert str(match) == '\n'.join(expected_match) assert len(match.params) == 2 assert 'n_name' in match.params assert match.params['n_name'] == 'Ali' assert 'n_age' in match.params assert match.params['n_age'] == 29 match.set(person['age'] == 30) expected_match.append(' SET n.age = {param0}') assert str(match) == '\n'.join(expected_match) assert len(match.params) == 3 assert 'n_name' in match.params assert match.params['n_name'] == 'Ali' assert 'n_age' in match.params assert match.params['n_age'] == 29 assert 'param0' in match.params assert match.params['param0'] == 30 match.set(person['name'] == 'Alison') expected_match.append(' SET n.name = {param1}') assert str(match) == '\n'.join(expected_match) assert len(match.params) == 4 assert 'n_name' in match.params assert match.params['n_name'] == 'Ali' assert 'n_age' in match.params assert match.params['n_age'] == 29 assert 'param0' in match.params assert match.params['param0'] == 30 assert 'param1' in match.params assert match.params['param1'] == 'Alison'