code: def wait_predictor(self, project, name, filter=None):
      # wait
      done = False
      for attempt in range(200):
          sql = f"select * from {project}.models_versions where name='{name}'"
          if filter is not None:
              for k, v in filter.items():
                  sql += f" and {k}='{v}'"
          ret = self.run_sql(sql)
          if not ret.empty:
              if ret["STATUS"][0] == "complete":
                  done = True
                  break
              elif ret["STATUS"][0] == "error":
                  break
          time.sleep(0.5)
      if not done:
          raise RuntimeError("predictor didn't created")
  
imports: from unittest.mock import patch
  import datetime
  import time
  import pytest
  import pandas
  from mindsdb_sql import parse_sql
  from .executor_test_base import BaseExecutorDummyML
label_desc: Use image node_id 1 for calling the TestProjectStructure obj's underlying member method code with example usage: obj.wait_predictor(project, name, filter) without return types