Esempio n. 1
0
 def test_invalid_queries(self):
     for query in invalid_queries:
         try:
             with self.assertRaises(InvalidQuery):
                 restrict_query_to_sketch(query, 42)
         except AssertionError as e:
             raise self.failureException('%s for %s' % (e.message, query))
Esempio n. 2
0
 def test_edge_with_invalid_properties(self, _, query):
     patterns = ('()%s[%s{%s}]%s()' % (left, name, props, right)
                 for name in edge_names()
                 for left, right in edge_directions()
                 for props in invalid_properties())
     for input_pattern in patterns:
         with self.assertRaises(InvalidQuery):
             restrict_query_to_sketch(query % input_pattern, 42)
Esempio n. 3
0
 def test_node_with_invalid_properties(self, test_name, query):
     if 'pattern' in test_name:
         return
     patterns = ('(%s{%s})' % (name, props) for name in node_names()
                 for props in invalid_properties())
     for input_pattern in patterns:
         with self.assertRaises(InvalidQuery):
             restrict_query_to_sketch(query % input_pattern, 42)
Esempio n. 4
0
 def test_spaces_in_rel_pattern(self):
     queries_with_spaces_int_rel_pattern = [
         'MATCH () -    - ()',
         'MATCH () -- >()',
         'MATCH ()< --()',
         'MATCH ()<- -()',
         'MATCH ()<- - ()',
     ]
     for query in queries_with_spaces_int_rel_pattern:
         try:
             with self.assertRaises(InvalidQuery):
                 print restrict_query_to_sketch(query, 42)
         except AssertionError as e:
             raise self.failureException('%s for %s' % (e.message, query))
Esempio n. 5
0
 def transpile_part(part):
     if ' '.join(part.split()).strip() in ('UNION', 'UNION ALL'):
         return part.strip()
     part = restrict_query_to_sketch(part, sketch_id)
     part = append_return_clause(part)
     part = unwind_timestamps(part)
     return part.strip()
Esempio n. 6
0
 def test_node_without_properties(self, test_name, query):
     if 'pattern' in test_name:
         return
     patterns = (('(%s)' % name, '(%s{sketch_id: 42})' % name)
                 for name in node_names())
     for input_pattern, expected_pattern in patterns:
         output = restrict_query_to_sketch(query % input_pattern, 42)
         self.assertEqual(output, ((query % expected_pattern).replace(
             ', }', '}').replace(',  }', ' }')))
Esempio n. 7
0
 def test_edge_without_bracket(self, _, query):
     patterns = ((
         '()%s%s()' % (left, right),
         '({sketch_id: 42})%s[{sketch_id: 42}]%s({sketch_id: 42})' %
         (left, right),
     ) for left, right in edge_directions())
     for input_pattern, expected_pattern in patterns:
         output = restrict_query_to_sketch(query % input_pattern, 42)
         self.assertEqual(output, ((query % expected_pattern).replace(
             ', }', '}').replace(',  }', ' }')))
Esempio n. 8
0
 def test_edge_with_properties(self, _, query):
     patterns = (
         ('()%s[%s{%s}]%s()' % (left, name, props, right),
          '({sketch_id: 42})%s[%s{sketch_id: 42, %s}]%s({sketch_id: 42})' %
          (left, name, props, right)) for name in edge_names()
         for left, right in edge_directions()
         for props in valid_properties())
     for input_pattern, expected_pattern in patterns:
         output = restrict_query_to_sketch(query % input_pattern, 42)
         self.assertEqual(output, ((query % expected_pattern).replace(
             ', }', '}').replace(',  }', ' }')))