コード例 #1
0
 def test_bind_tableref_starts_new_context(self, mock_ctx):
     with patch.object(StatementBinder, 'bind'):
         binder = StatementBinder(StatementBinderContext())
         tableref = MagicMock()
         tableref.is_table_atom.return_value = False
         tableref.is_join.return_value = False
         tableref.is_select.return_value = True
         binder._bind_tableref(tableref)
         self.assertEqual(mock_ctx.call_count, 1)
コード例 #2
0
 def test_bind_tableref_with_func_expr(self):
     with patch.object(StatementBinder, 'bind') as mock_binder:
         binder = StatementBinder(StatementBinderContext())
         tableref = MagicMock()
         tableref.is_table_atom.return_value = False
         tableref.is_select.return_value = False
         tableref.is_join.return_value = False
         binder._bind_tableref(tableref)
         mock_binder.assert_called_with(tableref.func_expr)
コード例 #3
0
 def test_bind_tableref_should_raise(self):
     with patch.object(StatementBinder, 'bind'):
         with self.assertRaises(ValueError):
             binder = StatementBinder(StatementBinderContext())
             tableref = MagicMock()
             tableref.is_select.return_value = False
             tableref.is_func_expr.return_value = False
             tableref.is_join.return_value = False
             tableref.is_table_atom.return_value = False
             binder._bind_tableref(tableref)
コード例 #4
0
 def test_bind_tableref_with_join(self):
     with patch.object(StatementBinder, 'bind') as mock_binder:
         binder = StatementBinder(StatementBinderContext())
         tableref = MagicMock()
         tableref.is_table_atom.return_value = False
         tableref.is_select.return_value = False
         tableref.is_join.return_value = True
         binder._bind_tableref(tableref)
         mock_binder.assert_any_call(tableref.join_node.left)
         mock_binder.assert_any_call(tableref.join_node.right)
コード例 #5
0
    def test_bind_tableref(self, mock_bind_tabe_info):
        with patch.object(StatementBinderContext, 'add_table_alias') as mock:
            binder = StatementBinder(StatementBinderContext())
            tableref = MagicMock()
            tableref.is_table_atom.return_value = True
            binder._bind_tableref(tableref)
            mock.assert_called_with(tableref.alias, tableref.table.table_name)
            mock_bind_tabe_info.assert_called_once_with(tableref.table)

        with patch.object(StatementBinder, 'bind') as mock_binder:
            with patch.object(StatementBinderContext,
                              'add_derived_table_alias') as mock_context:
                binder = StatementBinder(StatementBinderContext())
                tableref = MagicMock()
                tableref.is_table_atom.return_value = False
                tableref.is_select.return_value = True
                binder._bind_tableref(tableref)
                mock_context.assert_called_with(
                    tableref.alias, tableref.select_statement.target_list)
                mock_binder.assert_called_with(tableref.select_statement)