code: def test_collaborative_filter_user_item_recommendation_light_fm_handler(
      self, mock_handler, lightfm_interaction_data
  ):
      self.set_handler(
          mock_handler,
          name="pg",
          tables={"df": lightfm_interaction_data},
      )
  
      # create project
      self.run_sql("create database proj")
  
      # create predictor
      self.run_sql(
          """
              create model proj.useritemtest
              from pg (select * from df)
              predict movieId
              using
                  engine='lightfm',
                  item_id='movieId',
                  user_id='userId',
                  recommendation_type='{recommender_type}',
                  threshold=4,
                  n_recommendations=10
                  """
      )
      self.wait_predictor("proj", "useritemtest")
  
      result_df = self.run_sql(
          """
              SELECT p.*
              FROM pg.df as t
              JOIN proj.useritemtest as p
              on p.movieId = t.movieId
              where p.recommender_type='user_item'
              """
      )
  
      # check that the result is the expected shape e.g. 10 recommendations per user  * 503 users
      assert result_df.shape == (5030, 3)
  
file_path: mindsdb/tests/unit/ml_handlers/test_lightfm.py
imports: import time
  from unittest.mock import patch
  import pandas
  from mindsdb_sql import parse_sql
  from unit.executor_test_base import BaseExecutorTest
label_desc: Use image node_id 3 for calling the TestLightFM obj's underlying member method code with example usage: obj.test_collaborative_filter_user_item_recommendation_light_fm_handler(mock_handler, lightfm_interaction_data) without return types