File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -57,18 +57,18 @@ def run_tests(
5757 ).create_engine_adapter (register_comments_override = False )
5858 testing_adapter_by_gateway [gateway ] = testing_engine_adapter
5959
60- tests .append (
61- ModelTest .create_test (
62- body = body ,
63- test_name = metadata .test_name ,
64- models = models ,
65- engine_adapter = testing_engine_adapter ,
66- dialect = dialect ,
67- path = metadata .path ,
68- default_catalog = default_catalog ,
69- preserve_fixtures = preserve_fixtures ,
70- )
60+ test = ModelTest .create_test (
61+ body = body ,
62+ test_name = metadata .test_name ,
63+ models = models ,
64+ engine_adapter = testing_engine_adapter ,
65+ dialect = dialect ,
66+ path = metadata .path ,
67+ default_catalog = default_catalog ,
68+ preserve_fixtures = preserve_fixtures ,
7169 )
70+ if test :
71+ tests .append (test )
7272
7373 result = t .cast (
7474 ModelTextTestResult ,
Original file line number Diff line number Diff line change @@ -310,7 +310,7 @@ def create_test(
310310 path : Path | None ,
311311 preserve_fixtures : bool = False ,
312312 default_catalog : str | None = None ,
313- ) -> ModelTest :
313+ ) -> t . Optional [ ModelTest ] :
314314 """Create a SqlModelTest or a PythonModelTest.
315315
316316 Args:
@@ -329,7 +329,8 @@ def create_test(
329329 name = normalize_model_name (name , default_catalog = default_catalog , dialect = dialect )
330330 model = models .get (name )
331331 if not model :
332- _raise_error (f"Model '{ name } ' was not found" , path )
332+ logger .warning (f"Model '{ name } ' was not found{ ' at ' + str (path ) if path else '' } " )
333+ return None
333334
334335 if isinstance (model , SqlModel ):
335336 test_type : t .Type [ModelTest ] = SqlModelTest
@@ -759,6 +760,8 @@ def generate_test(
759760 path = fixture_path ,
760761 default_catalog = model .default_catalog ,
761762 )
763+ if not test :
764+ return
762765
763766 test .setUp ()
764767
Original file line number Diff line number Diff line change 11from __future__ import annotations
22
3+ import logging
34import datetime
45import typing as t
56from pathlib import Path
6- from unittest .mock import call
7+ from unittest .mock import call , patch
78
89import pandas as pd
910import pytest
@@ -1760,6 +1761,29 @@ def test_complicated_recursive_cte() -> None:
17601761 )
17611762
17621763
1764+ def test_unknown_model_warns (mocker : MockerFixture ) -> None :
1765+ body = load_yaml (
1766+ """
1767+ model: unknown
1768+ outputs:
1769+ query:
1770+ - c: 1
1771+ """
1772+ )
1773+
1774+ logger = logging .getLogger ("sqlmesh.core.test.definition" )
1775+ with patch .object (logger , "warning" ) as mock_logger :
1776+ ModelTest .create_test (
1777+ body = body ,
1778+ test_name = "test_unknown_model" ,
1779+ models = {}, # type: ignore
1780+ engine_adapter = mocker .Mock (),
1781+ dialect = None ,
1782+ path = None ,
1783+ )
1784+ assert mock_logger .mock_calls == [call ("Model '\" unknown\" ' was not found" )]
1785+
1786+
17631787def test_test_generation (tmp_path : Path ) -> None :
17641788 init_example_project (tmp_path , dialect = "duckdb" )
17651789
You can’t perform that action at this time.
0 commit comments