code: def test_dfs_empty_features():
      error_text = "No features can be generated from the specified primitives. Please make sure the primitives you are using are compatible with the variable types in your data."
      teams = pd.DataFrame(
          {"id": range(3), "name": ["Breakers", "Spirit", "Thorns"]}
      )
      games = pd.DataFrame(
          {
              "id": range(5),
              "home_team_id": [2, 2, 1, 0, 1],
              "away_team_id": [1, 0, 2, 1, 0],
              "home_team_score": [3, 0, 1, 0, 4],
              "away_team_score": [2, 1, 2, 0, 0],
          },
      )
      dataframes = {
          "teams": (teams, "id", None, {"name": "natural_language"}),
          "games": (games, "id"),
      }
      relationships = [("teams", "id", "games", "home_team_id")]
      with patch.object(
          DeepFeatureSynthesis, "build_features", return_value=[]
      ):
          features = dfs(
              dataframes,
              relationships,
              target_dataframe_name="teams",
              features_only=True,
          )
          assert features == []
      with pytest.raises(
          AssertionError, match=error_text
      ), patch.object(
          DeepFeatureSynthesis,
          "build_features",
          return_value=[],
      ):
          dfs(
              dataframes,
              relationships,
              target_dataframe_name="teams",
              features_only=False,
          )
  
imports: from unittest.mock import patch
  import composeml
  import numpy
  import pandas
  import pytest
  from packaging.version import parse
  from woodwork.column_schema import ColumnSchema
  from woodwork.logical_types import NaturalLanguage
  from featuretools.computational_backends.calculate_feature_matrix import FEATURE_CALCULATION_PERCENTAGE
  from featuretools.entityset import EntitySet, Timedelta
  from featuretools.exceptions import UnusedPrimitiveWarning
  from featuretools.primitives import GreaterThanScalar, Max, Mean, Min, Sum
  from featuretools.primitives.base import AggregationPrimitive, TransformPrimitive
  from featuretools.synthesis import dfs
  from featuretools.synthesis.deep_feature_synthesis import DeepFeatureSynthesis
  from featuretools.tests.testing_utils import to_pandas
  from featuretools.utils.gen_utils import Library, import_or_none, is_instance
label_desc: Use image node_id 2 for calling a global function with example usage: test_dfs_empty_features() without return types