def test_suggested_aliases_after_on(self, completer, text): position = len('SELECT u.name, o.id FROM users u JOIN orders o ON ') result = result_set(completer, text, position) self.assertSetEqual(result, set([ alias('u'), name_join('o.id = u.id'), name_join('o.email = u.email'), alias('o')]))
def test_suggested_tables_after_on(self, completer, text): position = len( 'SELECT users.name, orders.id FROM users JOIN orders ON ') result = result_set(completer, text, position) self.assertSetEqual(result, set([ name_join('orders.id = users.id'), name_join('orders.email = users.email'), alias('users'), alias('orders') ]))
def test_suggested_join_conditions(self, completer, text): result = result_set(completer, text) self.assertSetEqual( result, set([ alias('users'), alias('shipments'), name_join('shipments.id = users.id'), fk_join('shipments.user_id = users.id') ]))
def test_suggested_join_conditions_with_same_table_twice(self, completer, text): result = get_result(completer, text) self.assertListEqual(result, [ fk_join('u2.userid = u.id'), fk_join('u2.userid = users.id'), name_join('u2.userid = "Users".userid'), name_join('u2.username = "******".username'), alias('u'), alias('u2'), alias('users'), alias('"Users"') ])
def test_suggestions_after_on(self, completer, text): position = len( 'SELECT x.id, y.product_name FROM custom.products x JOIN custom.products y ON ' ) result = result_set(completer, text, position) self.assertSetEqual( result, set([ alias('x'), alias('y'), name_join('y.price = x.price'), name_join('y.product_name = x.product_name'), name_join('y.id = x.id') ]))
def test_suggested_tables_after_on_right_side(self, completer, text): position = len( 'SELECT users.name, orders.id FROM users JOIN orders ON orders.user_id = ') result = result_set(completer, text, position) self.assertSetEqual(result, set([alias('users'), alias('orders')]))
def test_suggested_join_conditions_with_invalid_table(self, completer, text_and_ref): text = text_and_ref[0] ref = text_and_ref[1] result = result_set(completer, text) self.assertSetEqual(result, set([alias('users'), alias(ref)]))
def test_cased_join_conditions(self, completer, text): result = result_set(completer, text) self.assertSetEqual(result, set( [alias('U'), alias('U2'), fk_join('U2.UserID = U.ID')] ))
def test_suggested_join_conditions(self, completer, text): result = result_set(completer, text) self.assertSetEqual(result, set([ alias('U'), alias('U2'), fk_join('U2.userid = U.id') ]))
def test_suggested_aliases_after_on_right_side(self, completer): text = 'SELECT x.id, y.product_name FROM custom.products x JOIN custom.products y ON x.id = ' result = result_set(completer, text) self.assertSetEqual(result, set([alias('x'), alias('y')]))