Skip to content

Commit 0a84bf5

Browse files
authored
fix: show only user macro count in info (#1948)
1 parent e3c6d65 commit 0a84bf5

3 files changed

Lines changed: 48 additions & 24 deletions

File tree

sqlmesh/core/context.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
from sqlmesh.core.engine_adapter import EngineAdapter
6464
from sqlmesh.core.environment import Environment, EnvironmentNamingInfo
6565
from sqlmesh.core.loader import Loader, update_model_schemas
66-
from sqlmesh.core.macros import ExecutableOrMacro
66+
from sqlmesh.core.macros import ExecutableOrMacro, macro
6767
from sqlmesh.core.metric import Metric, rewrite
6868
from sqlmesh.core.model import Model
6969
from sqlmesh.core.notification_target import (
@@ -1409,7 +1409,7 @@ def create_external_models(self) -> None:
14091409
def print_info(self) -> None:
14101410
"""Prints information about connections, models, macros, etc. to the console."""
14111411
self.console.log_status_update(f"Models: {len(self.models)}")
1412-
self.console.log_status_update(f"Macros: {len(self._macros)}")
1412+
self.console.log_status_update(f"Macros: {len(self._macros) - len(macro.get_registry())}")
14131413

14141414
self._try_connection("data warehouse", self._engine_adapter)
14151415

tests/core/test_integration.py

Lines changed: 44 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1566,6 +1566,14 @@ def test_environment_suffix_target_table(init_and_plan_context: t.Callable):
15661566

15671567
def test_environment_catalog_mapping(init_and_plan_context: t.Callable):
15681568
environments_schemas = {"raw", "sushi"}
1569+
state_tables = {
1570+
"_versions",
1571+
"_seeds",
1572+
"_snapshots",
1573+
"_environments",
1574+
"_plan_dags",
1575+
"_intervals",
1576+
}
15691577

15701578
def get_prod_dev_views(metadata: DuckDBMetadata) -> t.Tuple[t.Set[exp.Table], t.Set[exp.Table]]:
15711579
views = metadata.qualified_views
@@ -1577,53 +1585,69 @@ def get_prod_dev_views(metadata: DuckDBMetadata) -> t.Tuple[t.Set[exp.Table], t.
15771585

15781586
def get_default_catalog_and_non_tables(
15791587
metadata: DuckDBMetadata, default_catalog: t.Optional[str]
1580-
) -> t.Tuple[t.Set[exp.Table], t.Set[exp.Table]]:
1588+
) -> t.Tuple[t.Set[exp.Table], t.Set[exp.Table], t.Set[exp.Table]]:
15811589
tables = metadata.qualified_tables
1582-
default_tables = {x for x in tables if x.catalog == default_catalog}
1590+
user_default_tables = {
1591+
x for x in tables if x.catalog == default_catalog and x.db != "sqlmesh"
1592+
}
1593+
state_default_tables = {
1594+
x for x in tables if x.catalog == default_catalog and x.db == "sqlmesh"
1595+
}
15831596
non_default_tables = {x for x in tables if x.catalog != default_catalog}
1584-
return default_tables, non_default_tables
1597+
return user_default_tables, state_default_tables, non_default_tables
15851598

15861599
context, plan = init_and_plan_context(
15871600
"examples/sushi", config="environment_catalog_mapping_config"
15881601
)
15891602
context.apply(plan)
15901603
metadata = DuckDBMetadata.from_context(context)
15911604
prod_views, dev_views = get_prod_dev_views(metadata)
1592-
default_tables, non_default_tables = get_default_catalog_and_non_tables(
1593-
metadata, context.default_catalog
1594-
)
1605+
(
1606+
user_default_tables,
1607+
state_default_tables,
1608+
non_default_tables,
1609+
) = get_default_catalog_and_non_tables(metadata, context.default_catalog)
15951610
assert len(prod_views) == 12
15961611
assert len(dev_views) == 0
1597-
assert len(default_tables) == 29
1598-
assert len(non_default_tables) == 0
1612+
assert len(user_default_tables) == 23
1613+
assert state_tables.issubset({x.name for x in state_default_tables})
15991614
apply_to_environment(context, "dev")
16001615
prod_views, dev_views = get_prod_dev_views(metadata)
1601-
default_tables, non_default_tables = get_default_catalog_and_non_tables(
1602-
metadata, context.default_catalog
1603-
)
1616+
(
1617+
user_default_tables,
1618+
state_default_tables,
1619+
non_default_tables,
1620+
) = get_default_catalog_and_non_tables(metadata, context.default_catalog)
16041621
assert len(prod_views) == 12
16051622
assert len(dev_views) == 12
1606-
assert len(default_tables) == 29
1623+
assert len(user_default_tables) == 23
16071624
assert len(non_default_tables) == 0
1625+
assert state_tables.issubset({x.name for x in state_default_tables})
16081626
apply_to_environment(context, "prodnot")
16091627
prod_views, dev_views = get_prod_dev_views(metadata)
1610-
default_tables, non_default_tables = get_default_catalog_and_non_tables(
1611-
metadata, context.default_catalog
1612-
)
1628+
(
1629+
user_default_tables,
1630+
state_default_tables,
1631+
non_default_tables,
1632+
) = get_default_catalog_and_non_tables(metadata, context.default_catalog)
16131633
assert len(prod_views) == 12
16141634
assert len(dev_views) == 24
1615-
assert len(default_tables) == 29
1635+
assert len(user_default_tables) == 23
16161636
assert len(non_default_tables) == 0
1637+
assert state_tables.issubset({x.name for x in state_default_tables})
16171638
context.invalidate_environment("dev")
16181639
context._run_janitor()
16191640
prod_views, dev_views = get_prod_dev_views(metadata)
1620-
default_tables, non_default_tables = get_default_catalog_and_non_tables(
1621-
metadata, context.default_catalog
1622-
)
1641+
(
1642+
user_default_tables,
1643+
state_default_tables,
1644+
non_default_tables,
1645+
) = get_default_catalog_and_non_tables(metadata, context.default_catalog)
16231646
assert len(prod_views) == 12
16241647
assert len(dev_views) == 12
1625-
assert len(default_tables) == 29
1648+
assert len(user_default_tables) == 23
16261649
assert len(non_default_tables) == 0
1650+
assert state_tables.issubset({x.name for x in state_default_tables})
16271651

16281652

16291653
@pytest.mark.parametrize(

tests/integrations/jupyter/test_magics.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -528,7 +528,7 @@ def test_info(notebook, sushi_context, convert_all_html_output_to_text, get_all_
528528
assert len(output.outputs) == 4
529529
assert convert_all_html_output_to_text(output) == [
530530
"Models: 14",
531-
"Macros: 23",
531+
"Macros: 4",
532532
"Data warehouse connection succeeded",
533533
"Test connection succeeded",
534534
]
@@ -557,7 +557,7 @@ def test_info(notebook, sushi_context, convert_all_html_output_to_text, get_all_
557557
h(
558558
"span",
559559
{"style": f"{NEUTRAL_STYLE}; font-weight: bold"},
560-
"23",
560+
"4",
561561
)
562562
),
563563
)

0 commit comments

Comments
 (0)