code: def test_semantic_model_join_validation_on_missing_entity(
      simple_semantic_manifest_lookup: SemanticManifestLookup,
  ) -> None:
      """Tests semantic model join validation where the entity is missing from one or both semantic models."""
      primary_listing_semantic_model = simple_semantic_manifest_lookup.semantic_model_lookup.get_by_reference(
          SemanticModelReference("listings_latest")
      )
      assert (
          primary_listing_semantic_model
      ), "Could not find semantic model `listings_latest` in the simple model!"
      no_listing_semantic_model = simple_semantic_manifest_lookup.semantic_model_lookup.get_by_reference(
          SemanticModelReference("id_verifications")
      )
      assert (
          no_listing_semantic_model
      ), "Could not find semantic model `id_verifications` in the simple model!"
      listing_entity_reference = EntityReference(element_name="listing")
      join_evaluator = SemanticModelJoinEvaluator(
          semantic_model_lookup=simple_semantic_manifest_lookup.semantic_model_lookup
      )
  
      assert not join_evaluator.is_valid_semantic_model_join(
          left_semantic_model_reference=no_listing_semantic_model.reference,
          right_semantic_model_reference=primary_listing_semantic_model.reference,
          on_entity_reference=listing_entity_reference,
      ), (
          "Found valid join on `listing` involving the `id_verifications` semantic model, which does not include the "
          "`listing` entity!"
      )
  
file_path: metricflow/metricflow/test/model/semantics/test_semantic_model_join_evaluator.py
imports: from __future__ import annotations
  from typing import Dict, Sequence
  from dbt_semantic_interfaces.enum_extension import assert_values_exhausted
  from dbt_semantic_interfaces.protocols.entity import EntityType
  from dbt_semantic_interfaces.references import EntityReference, SemanticModelReference
  from metricflow.model.semantic_manifest_lookup import SemanticManifestLookup
  from metricflow.model.semantics.semantic_model_join_evaluator import SemanticModelEntityJoin, SemanticModelEntityJoinType, SemanticModelJoinEvaluator, SemanticModelLink
  from metricflow.test.fixtures.model_fixtures import ConsistentIdObjectRepository
label_desc: Use image node_id 6 for calling a global function with example usage: test_semantic_model_join_validation_on_missing_entity(simple_semantic_manifest_lookup) without return types