code: def describe_validate_absence_of_columns():
      def it_raises_when_a_unallowed_column_is_present(spark):
          data = [("jose", 1), ("li", 2), ("luisa", 3)]
          source_df = spark.createDataFrame(data, ["name", "age"])
          with pytest.raises(
              quinn.DataFrameProhibitedColumnError
          ) as excinfo:
              quinn.validate_absence_of_columns(
                  source_df, ["age", "cool"]
              )
          assert (
              excinfo.value.args[0]
              == "The ['age'] columns are not allowed to be included in the DataFrame with the following columns ['name', 'age']"  # noqa
          )
  
      def it_does_nothing_when_no_unallowed_columns_are_present(spark):
          data = [("jose", 1), ("li", 2), ("luisa", 3)]
          source_df = spark.createDataFrame(data, ["name", "age"])
          quinn.validate_absence_of_columns(
              source_df, ["favorite_color"]
          )
  
file_path: quinn/tests/test_dataframe_validator.py
imports: import pytest
  from pyspark.sql.types import StructType, StructField, StringType, LongType
  import semver
  import quinn
  from tests.conftest import auto_inject_fixtures
label_desc: Use image node_id 3 for calling a global function with example usage: describe_validate_absence_of_columns() without return types