code: def test_with_exog_vars(self, mock_handler):
      # create project
      self.run_sql("create database proj")
      df = create_mock_df()
      df["exog_var_1"] = 5 * df.index
      self.set_handler(mock_handler, name="pg", tables={"df": df})
  
      # now add more groups
      self.run_sql(
          """
             create model proj.model_exog_var
             from pg (select * from df)
             predict target_col
             order by time_col
             group by group_col, group_col_2, group_col_3
             window 6
             horizon 3
             using
               engine='neuralforecast',
               frequency='Q',
               train_time=0.01,
               exogenous_vars=['exog_var_1']
          """
      )
      self.wait_predictor("proj", "model_exog_var")
  
      result_df = self.run_sql(
          """
             SELECT p.*
             FROM pg.df as t
             JOIN proj.model_exog_var as p
             where t.group_col='b' AND t.time_col > LATEST
          """
      )
      assert list(round(result_df["target_col"])) == [42, 43, 44]
  
      describe_result = self.run_sql("describe proj.model_exog_var")
      assert describe_result["inputs"][0] == [
          "target_col",
          "time_col",
          ["group_col", "group_col_2", "group_col_3"],
          "exog_var_1",
      ]
  
      describe_features = self.run_sql(
          "describe proj.model_exog_var.features"
      )
      assert describe_features["exog_vars"][0] == ["exog_var_1"]
  
file_path: mindsdb/tests/unit/ml_handlers/test_neuralforecast.py
imports: import time
  import pytest
  from unittest.mock import patch
  import pandas
  from mindsdb_sql import parse_sql
  from tests.unit.ml_handlers.test_time_series_utils import create_mock_df
  from tests.unit.executor_test_base import BaseExecutorTest
label_desc: Use image node_id 4 for calling the TestNeuralForecast obj's underlying member method code with example usage: obj.test_with_exog_vars(mock_handler) without return types